Versuch am ersten Tag

Bringen Sie das Modell erst zum Laufen,
und verlängern Sie dann das Experiment.

Diese Checkliste richtet sich an alle, die gerade OsxNode M4-16 gebucht haben: Verbinden Sie sich zuerst mit Ihrem exklusiv genutzten Mac, prüfen Sie Python und MLX und testen Sie mit einer kurzen Ausgabe, wie viel Arbeitsspeicher noch verfügbar ist. Das aktuelle Modell bietet einen M4, 16 GB Unified Memory und eine 256-GB-SSD.

Halten Sie vor der ersten Verbindung Ihre Bestellnummer bereit und exportieren Sie Ihre Ergebnisse vor Ablauf der Mietzeit. Eine erfolgreiche Verbindung bedeutet nicht, dass beliebig große Modelle in 16 GB Unified Memory passen.

Zustellung prüfen

Vom Instanzfeld zum macOS-Desktop

Nach bestätigter Zahlung wird die Instanz noch am selben Tag bereitgestellt. Die Bereitstellung ist abgeschlossen, sobald in der Konsole der Knoten und die Zugangsdaten angezeigt werden. Wenn die Zahlung erfolgt ist, aber noch keine Zugangsdaten vorliegen, prüfen Sie zuerst die betreffende Bestellung und buchen Sie nicht erneut.

  1. 01

    Anmelden und Knoten prüfen

    Melden Sie sich mit der E-Mail-Adresse Ihrer Bestellung in der Konsole an. Öffnen Sie die Instanz- oder Abonnementdetails und prüfen Sie Bestellnummer, Knotenname und Ablaufzeit. Der Knotenname muss Ihrer Auswahl bei der Buchung entsprechen. Verbindungsadresse, Benutzername und Port finden Sie in den Details der jeweiligen Instanz.

  2. 02

    Remote-Desktop öffnen

    Klicken Sie im Feld oder in den Details des betreffenden Knotens auf „Remote-Desktop öffnen“ und melden Sie sich mit den von der Konsole bereitgestellten Zugangsdaten bei macOS an. Erlauben Sie der Browserseite, die Verbindung ordnungsgemäß herzustellen. Die öffentliche Hilfeseite ist kein Zugang zum Remote-Desktop.

  3. 03

    Startpasswort ändern

    Ändern Sie nach der ersten Anmeldung in den Systemeinstellungen unter „Benutzer & Gruppen“ das Startpasswort des verwendeten Kontos und speichern Sie es in Ihrem Passwortmanager. Prüfen Sie zuerst, ob das neue Passwort funktioniert, und beenden Sie dann die bestehende Verbindung. Senden Sie Passwörter weder im ursprünglichen noch im geänderten Zustand über ein Support-Ticket.

Während der Mietzeit wird jeder physische Mac ausschließlich einer Person zugewiesen; es handelt sich nicht um eine virtuelle Maschine. Das Schließen des Browsers beendet nur die aktuelle Ansicht, nicht die Mietzeit. Aufgaben, die weiterlaufen sollen, richten Sie wie unten beschrieben in einer separaten Sitzung ein.

Umgebung einrichten

Abhängigkeiten isolieren, dann MLX installieren

Führen Sie die folgenden Befehle im Terminal des Remote-Macs aus, nicht auf Ihrem eigenen Computer. Eine separate virtuelle Umgebung hält die Python-Pakete dieses Experiments von anderen Aufgaben getrennt. Installieren Sie nichts global in die System-Python-Umgebung.

Architektur und Homebrew prüfen

uname -m
command -v brew
brew --version

Erwartete Architektur: arm64. Die letzten beiden Befehle sollten den Homebrew-Pfad und die Version ausgeben. Wenn brew nicht gefunden wird, installieren Sie es zuerst anhand der offiziellen Homebrew-Anleitung. Fügen Sie keine Installationsskripte unbekannter Herkunft ins Terminal ein.

Python-Umgebung für dieses Experiment einrichten

brew install python@3.11
mkdir -p "$HOME/experiments/mlx-first"
cd "$HOME/experiments/mlx-first"
python3.11 -m venv .venv
source .venv/bin/activate
python -m pip install --upgrade pip
python -m pip install mlx mlx-lm
python -c 'import platform; import mlx.core as mx; from importlib.metadata import version; print(platform.machine()); print("mlx", version("mlx")); print("mlx-lm", version("mlx-lm")); print(mx.array([1, 2, 3]) + 1)'

Nach erfolgreicher Installation sollte der Prüfbefehl Folgendes ausgeben: arm64, die installierten Versionen beider Pakete und ein Array mit dem Wert [2, 3, 4] . Die Versionsnummern ändern sich je nach Installationszeitpunkt. Eine bestimmte Versionszeichenfolge allein ist daher kein verlässliches Erfolgskriterium.

Abhängigkeiten für die spätere Wiederherstellung festhalten

python --version
python -m pip freeze > requirements.txt
python -m pip check

Wenn keine Abhängigkeitskonflikte vorliegen, gibt der letzte Befehl üblicherweise Folgendes aus: No broken requirements found.. Öffnen Sie das Terminal erneut, wechseln Sie zuerst in das Experimentverzeichnis und führen Sie source .venv/bin/activateaus, bevor Sie die Inferenz starten. Übertragen Sie nicht nur das Verzeichnis der virtuellen Umgebung, sondern sichern Sie auch die Abhängigkeitsliste und Ihre Skripte.

Speicher im Blick

Verfügbaren Speicher mit einem kurzen Inferenzlauf prüfen

Die 16 GB Unified Memory werden gemeinsam von CPU, GPU und System genutzt und stehen nicht vollständig dem Modell zur Verfügung. Zusätzlich zu den Gewichten beanspruchen auch der Kontext-Cache, die Laufzeitumgebung und andere Apps Speicher. Selbst Modelle mit gleicher Parameterzahl können je nach Quantisierung und Kontextlänge unterschiedliche Spitzenwerte erreichen.

Dateipfad vor dem Download prüfen

Prüfen Sie vorab die Dateigröße des Modells, die Lizenzbedingungen und den verfügbaren Speicherplatz. Gewichte und Datensätze, die Sie wiederholt verwenden, sollten Sie auf einem zusätzlich gebuchten Laufwerk ablegen. Prüfen Sie den tatsächlichen Bereitstellungspfad im Finder oder Festplattendienstprogramm.

Mehr SSD-Speicher erhöht nicht die 16 GB Unified Memory. Wenn Sie kein zusätzliches Laufwerk gebucht haben, verwenden Sie ein Verzeichnis auf dem Hauptlaufwerk und begrenzen Sie den Cache. Übernehmen Sie keinen nicht vorhandenen Laufwerksnamen unverändert.

Speicherauslastung beim Laden beobachten

Öffnen Sie die Aktivitätsanzeige unter „Speicher“ und beobachten Sie sowohl den Speicherdruck als auch die Swap-Nutzung. Beenden Sie zunächst nicht benötigte GUI-Apps, begrenzen Sie die Ausgabelänge und vergrößern Sie den Kontext schrittweise. Notieren Sie Modellname, Quantisierungsbitbreite und Befehlsparameter.

Steigt der Speicherdruck in den gelben Bereich, starten Sie keine weiteren parallelen Aufgaben. Verkürzen Sie den Kontext oder wechseln Sie zu einem stärker quantisierten, kleineren Modell. Bei anhaltendem Paging oder beendeten Prozessen sollten Sie denselben Auftrag nicht unverändert erneut laden.

Zuerst einen kurzen Text generieren

cd "$HOME/experiments/mlx-first"
source .venv/bin/activate
export HF_HOME="$HOME/model-cache"
mkdir -p "$HF_HOME"
df -h "$HF_HOME"
python -m mlx_lm.generate \
  --model mlx-community/Qwen2.5-3B-Instruct-4bit \
  --prompt "Erkläre Unified Memory in drei Sätzen." \
  --max-tokens 128

Beim ersten Ausführen des Befehls wird das angegebene Modell heruntergeladen. Bei Erfolg erscheint der generierte Text; manche Versionen zeigen zusätzlich Statistiken zur Generierung an. Das Beispiel macht keine Zusage zur Downloadzeit oder zu Tokens/s. Wenn Sie ein zusätzliches Laufwerk verwenden, setzen Sie HF_HOME auf ein vorhandenes, beschreibbares Verzeichnis auf diesem Laufwerk und verwenden Sie in späteren Sitzungen denselben Pfad.

Testen Sie zunächst die Inferenz mit einem 3B-Modell in 4-Bit oder einem 7B-Modell in 4-Bit mit kurzem Kontext, bevor Sie größere Aufgaben angehen. 13B-Modelle und größer mit 8-Bit werden auf unserer 16-GB-Klasse nicht empfohlen. Für LoRA-Finetuning benötigen Sie zusätzlich Speicher für Trainingszustände und Aktivierungen. Eine erfolgreiche Inferenz bedeutet nicht, dass das Training ebenfalls funktioniert.

Eingabe und Ausgabe

Daten übertragen, Ergebnisse zurückholen

SSH eignet sich zum Ausführen von Befehlen, scp für einzelne Kopiervorgänge und rsync für wiederholte Synchronisierungen sowie die Fortsetzung unterbrochener Übertragungen. Prüfen Sie in der Konsole zuerst, ob SSH aktiviert ist und welche Verbindungsdaten gelten. Ein verfügbarer Browser-Desktop bedeutet nicht, dass SSH bereits eingerichtet ist.

Verbindungsdaten im lokalen Terminal eingeben

read -r -p "SSH user: " REMOTE_USER
read -r -p "SSH host: " REMOTE_HOST
read -r -p "SSH port: " SSH_PORT
ssh -p "$SSH_PORT" "$REMOTE_USER@$REMOTE_HOST" \
  'mkdir -p ~/experiments/data ~/experiments/results'
scp -P "$SSH_PORT" ./dataset.jsonl \
  "$REMOTE_USER@$REMOTE_HOST:~/experiments/data/"
rsync -avP -e "ssh -p $SSH_PORT" ./data/ \
  "$REMOTE_USER@$REMOTE_HOST:~/experiments/data/"
rsync -avP -e "ssh -p $SSH_PORT" \
  "$REMOTE_USER@$REMOTE_HOST:~/experiments/results/" ./results/

Diese Befehle sind für Bash geschrieben und müssen in einer lokalen Bash-Shell ausgeführt werden. Tragen Sie Host, Benutzer und Port aus den Instanzdetails ein. Prüfen Sie beim ersten Verbindungsaufbau den Host-Fingerprint. Umgehen Sie Warnungen nicht durch Deaktivieren der Fingerprint-Prüfung. Im rsync-Beispiel ist die Löschoption nicht aktiviert. Der Schrägstrich am Ende des Quellverzeichnisses bedeutet, dass dessen Inhalt synchronisiert wird.

Große Dateien aufteilen und prüfen

Bei instabiler Netzwerkverbindung können Sie ein großes Archiv in 1.024-MB-Teile aufteilen und diese einzeln übertragen. Das Aufteilen dient nur der Übertragung: Es komprimiert die Originaldatei nicht und verringert auch nicht den benötigten Speicherplatz am Ende.

shasum -a 256 dataset.tar
split -b 1024m dataset.tar dataset.part-
cat dataset.part-* > dataset-restored.tar
shasum -a 256 dataset-restored.tar

Teilen Sie die Datei am Quellort auf und setzen Sie sie am Zielort wieder zusammen. Entpacken Sie das Archiv erst, nachdem die beiden SHA-256-Prüfsummen übereinstimmen. Wenn Archiv und alle Einzelteile gleichzeitig vorhanden sind, benötigen Sie Platz für beide Datensätze.

Lange Aufgaben in einer separaten Sitzung ausführen

Installieren Sie tmux auf dem Remote-Mac und starten Sie eine Sitzung, in der Sie den Inferenzbefehl ausführen. Mit Ctrl+B und anschließend D lösen Sie die Sitzung und können sich später wieder verbinden.

brew install tmux
tmux new -s mlx
tmux attach -t mlx

Starten Sie die Aufgabe zuerst in einer neuen Sitzung. Führen Sie attach erst nach der erneuten Verbindung aus. tmux übersteht eine SSH-Unterbrechung, lässt Aufgaben aber nicht weiterlaufen, wenn die Instanz abgeschaltet oder neu gestartet wird oder die Mietzeit endet.

Mietzeit im Blick

Verlängerung und Datenexport vor Ablauf planen

Macs können tage-, wochen-, monats- oder quartalsweise im Voraus gemietet werden. Wird die Mietzeit nicht verlängert, wird die Instanz bei Ablauf automatisch abgeschaltet; weitere Kosten entstehen nicht. Verwenden Sie die in der Konsole angezeigte Ablaufzeit als Grundlage für Ihre Aufgaben- und Datensicherungsplanung. Ob der Desktop im Browser noch angezeigt wird, sagt nichts über den Mietstatus aus.

  1. 01

    Für weitere Experimente rechtzeitig verlängern

    Öffnen Sie vor Ablauf das betreffende Abonnement in der Konsole, prüfen Sie die verfügbaren Verlängerungsoptionen und schließen Sie die Zahlung ab. Prüfen Sie anschließend die neue Ablaufzeit. Als Zahlungsmethoden stehen ausschließlich USDT-TRC20 sowie Visa, Mastercard und Amex über Stripe zur Verfügung. Abgerechnet wird in US-Dollar. Welche Zahlungsoptionen tatsächlich verfügbar sind, sehen Sie in der Konsole.

  2. 02

    Vor dem Ablauf sichern und prüfen

    Exportieren Sie Datensätze, Experiment-Skripte, Abhängigkeitslisten, Protokolle und Ergebnisdateien vor Ablauf und prüfen Sie, ob sie sich lokal öffnen lassen. Überprüfen Sie bei wichtigen Archiven die Prüfsumme. Das Schließen des Remote-Desktops synchronisiert Ihre Ergebnisse nicht. Dateien, die lokal nicht sichtbar sind, gelten nicht als gesichert.

  3. 03

    Abschaltung ist keine Datenspeicherung

    Nach Ablauf wird der Dienst beendet. Sobald der Knoten zurückgenommen wurde, durchläuft er vor der erneuten Zuweisung an eine andere Person einen Prozess zum Löschen der Laufwerke und zur Neuinstallation des Systems. Wir garantieren weder einen Zeitraum, in dem Daten nach der Abschaltung noch verfügbar sind, noch eine Wiederherstellung nach dem Löschen. Falls für Ihre Bestellung ausdrücklich andere Regelungen zur Datenverarbeitung vereinbart wurden, gelten die Bestellangaben und die Bestätigung im Support-Ticket.

Wir garantieren nicht pauschal, dass Daten nach der Abschaltung noch eine bestimmte Anzahl von Stunden verfügbar sind. Wenn Sie nicht sicher sind, ob die Sicherung abgeschlossen ist, fragen Sie während der Mietzeit über ein Support-Ticket nach. Mieten Sie den Mac nach Ablauf nicht erneut in der Annahme, dadurch die Daten auf dem ursprünglichen Laufwerk wiederzufinden.

Instanzdetails verstehen

Was diese Begriffe für Ihre Experimente bedeuten

Kapazität, Verbindungsart und Abrechnungszeitraum sind unterschiedliche Faktoren. Nur wenn Sie sie auseinanderhalten, können Sie feststellen, ob ein Problem an der Modellgröße, dem Netzwerkzugang oder dem Mietstatus liegt.

Physischer Standort
Region, in der sich der physische Rechner befindet, auf dem der Cloud-Mac bereitgestellt wird. Verbindungsdaten finden Sie in den Details der jeweiligen Instanz.
Exklusive Nutzung
Während der Mietzeit wird ein physischer Mac nur einer Person zugewiesen. Unified Memory und GPU-Kerne werden nicht mit anderen Mietern geteilt.
Unified Memory
Gemeinsam von CPU und GPU genutzter Arbeitsspeicher. Bei uns stehen 16 GB zur Verfügung, die sich System, Modell und Laufzeitumgebung teilen.
VNC
Verbindungsart zur Anzeige und Steuerung eines Remote-Desktops. VNC überträgt Bild und Eingaben, ersetzt aber keine Dateiübertragung per SSH.
Bildschirmfreigabe
Zugriff auf den Remote-macOS-Desktop über einen kompatiblen Client. Verbindungsadresse und Zugangsdaten erhalten Sie in der Konsole.
self-hosted runner
Ein CI-Prozess, den Sie selbst auf dem gemieteten Rechner bereitstellen. Wird die Instanz bei Ablauf der Mietzeit abgeschaltet, können auch Build-Aufgaben nicht weiterlaufen.
Quantisierungsbitbreite
Anzahl der Bits zur Darstellung der Modellgewichte. Sie beeinflusst deren Größe und die Ausgabequalität. Eine geringere Bitbreite bedeutet nicht, dass der benötigte Arbeitsspeicher im selben Verhältnis sinkt.
Speicherdruck
In der Aktivitätsanzeige angezeigter Indikator für die Speicherauslastung. Steigt er in den gelben Bereich, sollten Sie parallele Aufgaben, Kontext oder Modellgröße reduzieren, statt nur auf den angezeigten freien Speicher zu achten.
Zustand festhalten

Fehler anhand der Symptome eingrenzen

Sichern Sie zuerst den Fehlertext und den Zeitpunkt des Auftretens, bevor Sie etwas ändern. Starten Sie nicht wiederholt auf Verdacht neu: Dabei können ungesicherte Experimente unterbrochen werden und wichtige Informationen zur Ursachenanalyse verloren gehen.

Remote-Desktop verbunden, aber der Bildschirm bleibt schwarz

Mögliche Ursachen sind eine unvollständige Browserverbindung, ein fehlerhafter Desktop-Sitzungsstatus oder ein derzeit nicht erreichbarer Knoten. Ein schwarzer Bildschirm allein beweist nicht, dass der Rechner abgeschaltet ist.

  1. Prüfen Sie in der Konsole den Instanzstatus und die Ablaufzeit und vergewissern Sie sich, dass die Bestellung noch läuft.
  2. Schließen Sie die aktuelle Verbindungsseite und öffnen Sie den Desktop erneut über die Details derselben Instanz. Deaktivieren Sie vorübergehend Browser-Erweiterungen, die die Verbindung der Seite blockieren könnten.
  3. Wenn SSH eingerichtet ist, prüfen Sie damit, ob der Rechner noch erreichbar ist. Ändern Sie die Netzwerkeinstellungen nicht wiederholt zu Testzwecken.
  4. Wenn Sie weiterhin keinen Zugriff haben, notieren Sie den Zeitpunkt des schwarzen Bildschirms, die Browserversion und ob SSH erreichbar ist, und reichen Sie ein Support-Ticket ein. Weisen Sie auf ungesicherte Aufgaben hin und führen Sie nicht sofort eine Stromaktion aus.
Eingegebene Zeichen stimmen nicht mit den Tasten überein

Abweichende Einstellungen für lokale Eingabemethode, macOS-Eingabequelle und Tastaturbelegung des Clients können zu falschen Zeichen führen. Dafür muss die Instanz normalerweise nicht erneut gebucht werden.

  1. Testen Sie Buchstaben, Ziffern und Sonderzeichen zuerst in einem gewöhnlichen Texteditor auf dem Remote-Mac. Probieren Sie keine Zeichen in einem Passwortfeld aus.
  2. Prüfen Sie die Eingabequelle in der macOS-Menüleiste sowie die Tastatur- und Eingabemethodeneinstellungen.
  3. Wenn Tastenkombinationen nicht funktionieren, prüfen Sie die Tastaturbelegung des Verbindungsclients und insbesondere die Zuordnung von Command, Option und Control.
  4. Beschreiben Sie in Ihrer Support-Anfrage, welche Taste Sie gedrückt haben und was angezeigt wurde. Senden Sie keine echten Passwörter oder privaten Schlüssel als Testtext.
Beim Laden des Modells erscheint „Killed“ oder der Prozess wird beendet

Speichermangel ist eine mögliche Ursache. Prüfen Sie aber auch den Speicherplatz, die Vollständigkeit der Modelldateien und mögliche Abhängigkeitsfehler. Eine einzelne Zeile mit einer Abbruchmeldung ersetzt kein vollständiges Protokoll.

  1. Sichern Sie den vollständigen Befehl, den letzten Teil der Fehlermeldung, den Modellnamen, die Quantisierungsbitbreite und die Kontexteinstellungen.
  2. Prüfen Sie Speicherdruck und Swap-Nutzung in der Aktivitätsanzeige. Beenden Sie andere speicherintensive Aufgaben und testen Sie mit einer kürzeren Ausgabe und einem kleineren Modell.
  3. Prüfen Sie mit df -h das Laufwerk, auf dem der Cache liegt, und vergewissern Sie sich, dass der Download nicht wegen fehlenden Speicherplatzes abgebrochen wurde.
  4. Führen Sie in der aktivierten virtuellen Umgebung python -m pip checkaus. Schlägt auch ein kleines Modell fehl, reichen Sie den Fehler zusammen mit den Versionsangaben Ihrer Umgebung über ein Support-Ticket ein.
Fehler nachvollziehbar machen

Ein Support-Ticket mit diesen vier Angaben

Bei Problemen mit einer bereits gebuchten Instanz reichen Sie das Support-Ticket am besten nach der Anmeldung über die Konsole ein, damit es Ihrer Bestellung zugeordnet werden kann. Wenn Sie vor der Buchung eine Beratung benötigen oder sich nicht anmelden können, finden Sie auf der Kontaktseite die E-Mail-Adresse. Der Support ist erreichbar unter support@osxnode.com.

Bestellung und Knoten

Geben Sie Bestellnummer, Knotenname und aktuellen Instanzstatus an. Bei Fragen zu Verlängerung oder Zahlung ergänzen Sie Zahlungsmethode und Zahlungsstatus. Senden Sie keine vollständige Kartennummer, kein Anmeldepasswort und keinen privaten SSH-Schlüssel.

Zeitpunkt und Zeitzone

Nennen Sie den Beginn des Problems, ob es weiterhin besteht und welche Zeitzone gilt. Schreiben Sie nicht nur „gerade eben“. Wenn Sie eine Verfügbarkeitsgutschrift beantragen möchten, geben Sie den Ausfallzeitraum und den Knotennamen innerhalb des betreffenden Abrechnungszeitraums an.

Vorgang und Fehler

Beschreiben Sie die Voraussetzungen, die Schritte zur Reproduktion sowie das erwartete und das tatsächliche Ergebnis. Fügen Sie bei MLX-Problemen die Modellkennung, Quantisierungsbitbreite, den ausgeführten Befehl und die Abhängigkeitsversionen hinzu. Entfernen Sie vertrauliche Angaben aus Pfaden.

Bereits durchgeführte Prüfungen

Führen Sie die Ergebnisse von Browser-Neuverbindung, SSH-Erreichbarkeit, Speicherdruck und verfügbarem Speicherplatz auf. Geben Sie an, ob Aufgaben laufen oder noch nicht gesichert wurden, damit unnötige Unterbrechungen vermieden werden.

Beschreiben Sie, an welchem Schritt Sie nicht weiterkommen, und fügen Sie die dazugehörigen Aufzeichnungen bei.

Verknüpfen Sie im Support-Ticket die Instanz mit Zeitpunkt und Fehlermeldung. Wenn Sie noch nicht wissen, ob ein Modell für 16 GB geeignet ist, nennen Sie bei Ihrer Anfrage Modellgröße und Quantisierungsbitbreite.