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.
Dieser Artikel enthält Empfehlungen für bewährte Methoden für die Verwendung der serverlosen GPU-Berechnung in Ihren Notizbüchern und Aufträgen.
Anhand dieser Empfehlungen verbessern Sie die Produktivität, Kosteneffizienz und Zuverlässigkeit Ihrer Workloads auf Azure Databricks.
Verwenden der richtigen Berechnung
- Verwenden Sie serverlose GPU-Compute. Diese Option wird mit torch, cuda und torchvision optimiert für Kompatibilität geliefert. Genaue Paketversionen hängen von den Umgebungsversionen ab.
- Wählen Sie Ihren Beschleuniger im Seitenbereich der Umgebung aus.
- Verwenden Sie für remote verteilte Schulungsworkloads eine A10-GPU, die der Client ist, um später einen Auftrag an die Remote-H100 zu senden.
- Zum Ausführen großer interaktiver Aufträge im Notizbuch selbst können Sie Ihr Notizbuch an H100 anfügen, was 1 Knoten (8 H100 GPUs) einnimmt.
- Um GPUs zu vermeiden, können Sie Ihr Notizbuch an einen CPU-Cluster für einige Vorgänge wie git clone anschließen und einen Spark Dataframe in Mosaic Data Shard (MDS)-Format konvertieren.
MLflow-Empfehlungen
Verwenden Sie für einen optimalen ML-Entwicklungszyklus MLflow 3 auf Databricks. Befolgen Sie diese Tipps:
Aktualisieren Sie den MLflow Ihrer Umgebung auf Version 3.6 oder höher, und folgen Sie dem MLflow Deep Learning Flow im MLflow 3 Deep Learning-Workflow.
Stellen Sie den Parameter
stepinMLFlowLoggerauf eine angemessene Anzahl von Batches ein. MLflow hat eine Grenze von 10 Millionen Metrikschritten, die protokolliert werden können. Sie Ressourceneinschränkungen.Aktivieren Sie
mlflow.pytorch.autolog(), wenn Pytorch Lightning als Trainer verwendet wird.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, )Die serverlose GPU-API startet ein MLflow-Experiment, um Systemmetriken zu protokollieren. Standardmäßig wird der Name
/Users/{WORKSPACE_USER}/{get_notebook_name()}verwendet, es sei denn, der Benutzer überschreibt ihn mit der UmgebungsvariableMLFLOW_EXPERIMENT_NAME.- Verwenden Sie beim Festlegen der Umgebungsvariablen
MLFLOW_EXPERIMENT_NAMEeinen absoluten Pfad. Beispiel/Users/<username>/my-experiment: - Der Experimentname darf nicht den vorhandenen Ordnernamen enthalten. Wenn es sich z. B.
my-experimentum einen vorhandenen Ordner handelt, tritt beim obigen Beispiel ein Fehler auf.
import os from serverless_gpu import distributed os.environ['MLFLOW_EXPERIMENT_NAME'] = '/Users/{WORKSPACE_USER}/my_experiment' @distributed(gpus=num_gpus, gpu_type=gpu_type, remote=True) def run_train(): # my training code- Verwenden Sie beim Festlegen der Umgebungsvariablen
Um die Schulung aus einer vorherigen Ausführung fortzusetzen, geben Sie die MLFLOW_RUN_ID aus der vorherigen Ausführung wie folgt an.
import os os.environ[‘MLFLOW_RUN_ID’] = <previous_run_id> run_train.distributed()
Zusammenarbeit mit mehreren Benutzern
- Um sicherzustellen, dass alle Benutzer auf freigegebenen Code zugreifen können (z. B. Hilfsmodule, Environment.yaml), erstellen Sie Git-Ordner in
/Workspace/Reposoder/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, aber weiterhin ein Git-Remote-Repository für die Versionssteuerung verwenden. Schauen Sie sich bewährte Methoden für die Verwendung von Git auf Databricks an. - Mitarbeiter können Notizbücher freigeben und kommentieren .