Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Von Bedeutung
Dieses Feature befindet sich in der Public Preview.
AI-Runtime integriert sich nativ in MLflow zur Nachverfolgung von Experimenten und enthält einen integrierten GPU-Ressourcenbereich zur Überwachung der Auslastung, des Arbeitsspeichers und der Temperatur. Verwenden Sie MLflow, um Metriken und Ausführungen zu protokollieren, die Trainingsausgabe im Notebook und in der MLflow-Benutzeroberfläche anzuzeigen, Modell-Checkpoints in Volumes im Unity Catalog zu speichern und den GPU-Zustand zu überwachen, während Ihr Code ausgeführt wird.
MLflow-Integration
AI-Runtime integriert sich nativ in MLflow für die Experimentnachverfolgung, Modellprotokollierung und Metrikvisualisierung.
Setupempfehlungen:
Aktualisieren Sie MLflow auf Version 3.7 oder höher, und folgen Sie den Deep Learning-Workflowmustern.
Autologging für PyTorch Lightning aktivieren:
import mlflow mlflow.pytorch.autolog()Passen Sie Ihren MLflow-Laufnamen an, indem Sie den Modellschulungscode innerhalb des
mlflow.start_run()API-Bereichs einschließen. Dadurch können Sie den Namen der Ausführung steuern und einen Neustart aus einer vorherigen Ausführung ausführen. Sie können den Ausführungsnamen mithilfe desrun_nameParameters inmlflow.start_run(run_name="your-custom-name")oder in Drittanbieterbibliotheken anpassen, die MLflow unterstützen (z. B. Hugging Face Transformers). Andernfalls lautetjobTaskRun-xxxxxder Standardlaufname .from transformers import TrainingArguments args = TrainingArguments( report_to="mlflow", run_name="llama7b-sft-lr3e5", # <-- MLflow run name logging_steps=50, )Bei Verwendung der Serverless GPU-API wird bei jedem Aufruf von
.distributed()automatisch ein MLflow-Experimentlauf erstellt. Wird der Aufruf innerhalb einer aktiven MLflow-Ausführung durchgeführt, wird stattdessen eine verschachtelte untergeordneter Ausführung unter der aktiven übergeordneten Ausführung erstellt.import mlflow with mlflow.start_run() as outer_run: ... run_train.distributed() # creates a nested child run under outer_runUm das verwendete
.distributed()Experiment anzupassen, rufen Siemlflow.set_experiment()vor dem Aufrufen.distributed()auf, oder legen Sie dieMLFLOW_EXPERIMENT_NAMEUmgebungsvariable fest. Der Standardname des Experiments lautet/Users/{WORKSPACE_USER}/{notebook-name}. Verwenden Sie immer absolute Pfade.import mlflow mlflow.set_experiment("/Users/<username>/my-experiment") run_train.distributed()Alternatively:
import os os.environ["MLFLOW_EXPERIMENT_NAME"] = "/Users/<username>/my-experiment"Um eine vorherige MLflow-Ausführung fortzusetzen, verwenden Sie
mlflow.start_run(run_id="<previous-run-id>").Um einen vorherigen MLflow-Lauf mit
.distributed()wiederaufzunehmen, setzen SieMLFLOW_RUN_ID, bevor Sie es aufrufen:os.environ["MLFLOW_RUN_ID"] = "<previous-run-id>" run_train.distributed()Legen Sie den Parameter
stepinMLFlowLoggerauf angemessene Batchnummern fest. MLflow hat eine Grenze von 10 Millionen Metrikschritten, sodass das Protokollieren aller einzelnen Batches bei großen Schulungsläufen diesen Grenzwert erreichen kann. Sie Ressourceneinschränkungen.
Anzeigen von Protokollen
- Notebook-Ausgabe: Standardausgabe und Fehler von dem Schulungscode werden in der Ausgabe der Notebook-Zelle angezeigt.
- MLflow-Protokolle: Die Benutzeroberfläche des MLflow-Experiments zeigt Schulungsmetriken, Parameter und Artefakte an.
Modellprüfpunkterstellung
Für verteiltes Training speichern Sie den Modell- und Optimiererstatus in Unity-Catalog-Volumes mithilfe der Torch Distributed Checkpoint (DCP) API sowie den Backends und serverless_gpu.data.UCVolumeReader Speicherserverless_gpu.data.UCVolumeWriter. Speichere asynchron, damit das Training weiterläuft, während der Checkpoint hochlädt, und Checkpoint oft genug, um den Verlust von Arbeit nach einer Unterbrechung zu begrenzen. Da ein Modell-Checkpoint die Position der Datenpipeline nicht erfasst, kontrolliere auch deine Datenpipeline, damit ein fortgesetzter Lauf mit den korrekten Daten fortgesetzt wird.
Für das vollständige Checkpointing-Muster siehe Verbesserung der Trainingsleistung und -resilienz auf der KI-Laufzeit.
Überwachen von GPU-Ressourcen
Verwenden Sie den GPU-Ressourcenbereich , um die GPU-Integrität und -Auslastung zu überwachen, während Ihr Code auf AI-Runtime ausgeführt wird. Der Bereich unterstützt Workloads mit einem einzelnen Knoten sowie mit mehreren Knoten.
Um den Seitenbereich zu öffnen, verbinden Sie Ihr Notebook mit der AI Runtime und klicken Sie dann im rechten Seitenbereich auf GPU-Ressourcen
Im Bereich werden die folgenden Metriken für jede GPU angezeigt:
- Prozentuale GPU-Auslastung
- GPU-Speicherauslastung
- Temperatur
Der Bereich ruft die Metriken alle 10 Sekunden ab und speichert bis zu 2 Stunden Verlauf. Klicken Sie auf Aktualisieren Sie , um die neuesten Werte sofort abzurufen. Nach 5 Minuten Inaktivität wird der Bereich pausiert; öffnen Sie ihn erneut, um die Überwachung fortzusetzen.
Zusammenarbeit mit mehreren Benutzern
- Um sicherzustellen, dass alle Benutzer auf freigegebenen Code zugreifen können (z. B. Hilfsmodule oder Umgebungs-YAML-Dateien), speichern Sie sie in
/Workspace/Sharedanstelle von benutzerspezifischen Ordnern wie/Workspace/Users/<your_email>/. - Verwenden Sie für Code, der sich in der aktiven Entwicklung befindet, Git-Ordner in benutzerspezifischen Ordnern
/Workspace/Users/<your_email>/und pushen Sie zu Remote-Git-Repos. Auf diese Weise können mehrere Benutzer über einen benutzerspezifischen Klon und eine Verzweigung verfügen, während weiterhin ein Git-Remote-Repository für die Versionssteuerung verwendet wird. Schauen Sie sich bewährte Methoden für die Verwendung von Git auf Databricks an. - Mitarbeiter können Notebooks freigeben und kommentieren .