1. Die Referenz und das erwartete Ergebnis definieren
Beginnen Sie mit dem, was Sie wiederholen möchten: dieselben Kategorien erzeugen, ähnliche Werte erhalten oder einen Trainingsverlauf fortsetzen. Behalten Sie einen kleinen Satz von Eingaben, der die wichtigen Schritte durchläuft, und ein Beispiel einer gültigen Ausgabe. Eine Installation, die ohne Fehler endet, beantwortet diese Frage noch nicht.
Betrachten wir einen didaktischen Fall: Ihre Anwendung erzeugt Embeddings für eine identifizierte Stichprobe. In der Referenzumgebung müssen Sie die Form der Ausgaben, ihren Typ, das Fehlen nicht-endlicher Werte und das nützliche fachliche Kriterium erfassen. Wenn Sie Werte vergleichen, wählen Sie eine für Ihren Anwendungsfall begründete Toleranz. Ein universeller numerischer Schwellenwert wird hier nicht vorgegeben.
Weisen Sie dem Code, den Daten und den Gewichten eine Revision zu. Ein Name wie „letztes-modell“ kann sich ändern, ohne dass das Programm es anzeigt. Ordnen Sie außerdem die Parameter und die Vorverarbeitung der Referenz zu. Dieser Ordner ermöglicht festzustellen, ob eine Abweichung von der Software, den Eingaben oder den Ausführungsbedingungen stammt.
Scrollen Sie durch die Tabelle, um alle Spalten zu lesen.| Element | Beizubehalten | Kontrolle nach der Rekonstruktion |
|---|---|---|
| Code und Parameter | Revision, eventuelle Änderungen, Konfiguration | Derselbe Einstiegspunkt und dieselben Optionen. |
| Daten und Gewichte | Version oder Fingerabdruck, Herkunft und Zugriffsrechte | Dieselbe Stichprobe und derselbe erwartete Inhalt. |
| Python und Pakete | Versionen, Vorgehensweise und Installationsquellen | Korrekter Interpreter und konsistente Abhängigkeiten. |
| System und Backend | OS, Architektur, Treiber, CUDA oder ROCm | Sichtbares Gerät und minimal erfolgreiche Berechnung. |
| Ergebnis | Format und Abnahmekriterien | Struktur, dann Qualität oder vorgesehene Toleranz. |
2. Die Systemkette von den Python-Paketen trennen
Prüfen Sie gemeinsam die Karte, das System, den Treiber, Python und die Bibliotheken. Eine virtuelle Umgebung organisiert die Python-Pakete; sie ersetzt nicht den Systemtreiber. Ebenso genügt die Referenz eines Images nicht, um den tatsächlichen GPU-Zugriff von seinem Host aus zu beschreiben. Für eine kompilierte Erweiterung halten Sie die erforderlichen Kompilierwerkzeuge und -bibliotheken fest.
Wählen Sie die PyTorch-Distribution anhand der Berechnungsplattform Ihres Projekts. Unter ROCm verwendet PyTorch die Aufrufe torch.cuda und die Geräte namens cuda weiter: Der Name der Schnittstelle erlaubt keine Identifikation von NVIDIA. Erfassen Sie torch.version.cuda und torch.version.hip getrennt. Eine für eine bestimmte Kette geschriebene Erweiterung verdient ihre eigene Kontrolle.
Bewahren Sie das Verfahren auf, das die Installation tatsächlich ermöglicht hat, einschließlich der Herkunft der Pakete. Vermeiden Sie, einen kürzlich online gefundenen Befehl mit einer alten Abhängigkeitsdatei zu vermischen, ohne deren Kompatibilität zu prüfen. Die konsultierte Dokumentation kann sich ändern; notieren Sie die verwendeten Versionen in Ihrem eigenen Ordner.
3. Eine Rekonstruktion schreiben statt den installierten Ordner kopieren
Erstellen Sie eine neue Umgebung mit dem gewählten Python. Verwenden Sie anschließend ausdrücklich dessen Interpreter, um das Projekt zu installieren und zu starten. Unter Linux ist das beispielsweise .venv-rebuild/bin/python; unter Windows .venv-rebuild\Scripts\python.exe. Sie müssen nicht von einer vorherigen Aktivierung abhängen. Die Python-Dokumentation legt dar, dass eine virtuelle Umgebung neu erstellt werden muss, wenn sie ihren Speicherort ändert.
pip freeze liefert ein Inventar der installierten Pakete, keine berechnete Lock-Datei. Bewahren Sie es als Beobachtung auf. Die Rekonstruktionsdatei muss außerdem die für Ihre PyTorch-Variante erforderlichen Indizes oder Dateien und die kompatiblen Versionen ausdrücklich angeben. Lesen Sie Pfade oder URLs, die ein Inventar enthalten könnte, vor dem Teilen erneut durch.
Die folgenden Befehle veranschaulichen eine anzupassende Linux-Rekonstruktion; sie stellen keinen ausgeführten Test Ihres Projekts dar. Die Datei requirements-rebuild.txt muss bereits Ihre Umgebung beschreiben, einschließlich der korrekten Wahl von PyTorch. Ersetzen Sie sie nicht durch eine Liste vermeintlich universeller Versionen.
python -m venv .venv-rebuild
.venv-rebuild/bin/python -m pip --version
.venv-rebuild/bin/python -m pip install -r requirements-rebuild.txt
.venv-rebuild/bin/python -m pip check
.venv-rebuild/bin/python -m pip freeze --all > installed-after.txt4. Den Vertrag der Abhängigkeiten vor der Berechnung prüfen
python -m pip check, mit dem richtigen Interpreter ausgeführt, sucht nach fehlenden oder inkompatiblen installierten Abhängigkeiten gemäß ihren Metadaten. Ein Ergebnis ohne Konflikt ist keine Validierung des Treibers, der nativen Erweiterungen oder der Qualität der Anwendung. Halten Sie diesen Schritt daher kurz und fahren Sie mit einer Berechnungskontrolle fort.
Um die Rekonstruktion strenger zu machen, können Sie die Versionen festlegen und die Fingerabdrücke der zugelassenen Distributionen aufbewahren. Diese Entscheidung erfordert die Pflege der vollständigen Liste, die zu Ihrer Plattform passt. Ein Archiv kompilierter Wheels kann vom Betriebssystem und der Architektur abhängen; es ist keine Garantie für Portabilität zwischen zwei verschiedenen Maschinen.
Vergleichen Sie in unserem Embeddings-Beispiel das rekonstruierte Inventar mit der Referenz, bevor Sie das Modell oder seine Parameter ändern. Wenn eine Abweichung beabsichtigt ist, notieren Sie sie und behandeln Sie den neuen Lauf als Variante. Andernfalls korrigieren Sie die Rekonstruktion; das Ändern mehrerer Ebenen gleichzeitig macht die Diagnose ungenauer.
5. Von der minimalen Prüfung zur Anwendung übergehen
Ermitteln Sie im Interpreter des Projekts Python, PyTorch und das Backend und prüfen Sie dann das Gerät und eine kleine Berechnung. Brechen Sie diesen Schritt ab, wenn die erwartete GPU nicht erreichbar ist; ein CPU-Ausweichlauf würde den Vergleich verfälschen. Die Kernodeck-Diagnose liefert einen interpretierbaren Bericht und unterscheidet die tatsächlich durchlaufenen Schritte.
Verwenden Sie nach dieser erfolgreichen Prüfung Ihr kleines Anwendungsbeispiel. Prüfen Sie bei Embeddings die Anzahl der Ausgaben, ihre Dimensionen, ihre Übereinstimmung mit den Identifikatoren und das gewählte Kriterium. Laden Sie die Dateien aus dem Ausgabeordner neu. Eine erfolgreiche Matrixberechnung belegt nicht, dass die Vorverarbeitung oder eine Erweiterung des Projekts funktioniert.
Wenn der Test beim Lesen der Daten, beim Transfer oder während einer bestimmten Operation abstürzt, behalten Sie den Schritt und den ersten Fehler. Die allgemeine Rekonstruktion ist möglicherweise korrekt; die Blockade kann zum Datenlader oder zu einem bestimmten Operator gehören. Richten Sie die Diagnose dann auf diese Ebene aus.
6. Rekonstruktion und numerische Identität unterscheiden
Dieselben Abhängigkeiten wiederzufinden garantiert keine identischen Ergebnisse zwischen Hardware, Plattformen oder PyTorch-Versionen. Das Festlegen eines Seeds deckt nicht alle Variationsquellen ab. Dokumentieren Sie die verwendeten Generatoren, die Datentransformationen und die relevanten Einstellungen für Präzision oder Determinismus.
Legen Sie das Vergleichskriterium fest, bevor Sie die Abweichung betrachten: exakte Struktur, numerische Toleranz oder Stabilität einer Metrik. Bestimmte deterministische Einstellungen können Operationen ablehnen oder die Rechenkosten verändern. Das angestrebte Ergebnis ist eine verständliche Schlussfolgerung unter den angegebenen Bedingungen, nicht das Versprechen von Identität auf jeder Maschine.
Für die Fortsetzung eines Trainings reichen die Versionen nicht aus: Es müssen auch der Berechnungszustand und der Fortschritt wiederhergestellt werden. Der Wiederaufnahmeordner prüft diese Frage separat. Seine CPU-Übung und seine Toleranz werden nicht automatisch zu den Bedingungen Ihres Modells.
7. Mit einem Ordner abschließen, den ein anderer Lauf nutzen kann
Der endgültige Ordner vereint die Prozedur, das beobachtete Inventar, die Konfiguration, die Datenreferenzen und die Ergebnisse der Prüfung. Fügen Sie die genaue Reihenfolge hinzu: rekonstruieren, diagnostizieren, das Beispiel ausführen, die Ausgabe erneut lesen. Bewahren Sie die Zugänge getrennt auf und geben Sie nur an, wie sie bereitgestellt werden.
Wiederholen Sie diese Reihenfolge in einem sauberen Ordner, bevor Sie die Umgebung als übertragbar betrachten. Die Prüfung muss erfolgreich sein, ohne eine Variable aus einem alten Notebook abzurufen oder eine vergessene Datei zu suchen. Wenn eine Änderung nötig ist, korrigieren Sie die Prozedur und geben Sie der Referenz eine neue Identität. Sie erhalten eine nutzbare Grundlage für Ihren nächsten Rechenzeitraum.