Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
AI Runtime integruje się z MLflow, oferując narzędzia do śledzenia eksperymentów, obserwowalności i debugowania. MLflow zapewnia jedno miejsce dla parametrów, metryk, metryk systemu GPU, logów i artefaktów przebiegu, niezależnie od tego, czy tworzysz w notatniku, przesyłasz obciążenie za pomocą interfejsu wiersza poleceń databricks air, czy planujesz zadanie.
Co oferuje MLflow
Eksperyment MLflow grupuje powiązane uruchomienia treningowe, a każdy z nich dostarcza trwały zapis konfiguracji treningowej i wyników.
- Metryki i parametry: Zapisz stratę treningową, metryki oceny, tempo uczenia się i hiperparametry, a następnie porównaj je w różnych przebiegach.
- Metryki systemowe: Zobacz wykorzystanie GPU, CPU i pamięci dla zarządzanych uruchomień na karcie Metryki systemowe.
- Widok dziennika: Zobacz dane wyjściowe sterownika dla obciążenia powiązanego z zadaniem na zakładce Logi uruchomienia. Zobacz Zobacz logi w zakładce MLflow Logs.
- Artefakty i modele: Przechowuj pliki modeli, konfiguracje i inne wyjścia wraz z uruchomieniem. Użyj woluminu katalogu Unity dla dużych lub trwałych artefaktów.
- Udostępnianie i współpraca: Udziel dostępu do eksperymentu, aby inni użytkownicy przestrzeni roboczej mogli oglądać i porównywać jego przebiegi. Zobacz Organizowanie przebiegów trenowania przy użyciu eksperymentów MLflow.
- Integracje frameworków: Korzystaj z integracji MLflow z Hugging Face Transformers, PyTorch Lightning i innymi wspieranymi bibliotekami.
Dla obciążeń opartych na zadaniach, takich jak obciążenia przesyłane za pomocą databricks air run, uruchomienie zadania Azure Databricks uzupełnia MLflow poprzez rejestrowanie statusu wykonywania, zasobów obliczeniowych, prób i danych wyjściowych sterownika.
Jak powstają uruchomienia MLflow
To, jak uruchamiasz lub dołączasz do uruchomienia MLflow, zależy od tego, jak uruchamiasz zadanie:
| Jak uruchamiasz obciążenie | Jak zaczyna się uruchomienie MLflow | Jak wybrać ten eksperyment |
|---|---|---|
Databricks CLI (databricks air run) |
Każda próba automatycznie generuje uruchomienie. | Ustaw experiment_name w pliku YAML obciążenia. |
Notebook z Databricks AI Runtime SDK (.distributed()) |
Każde wywołanie automatycznie tworzy uruchomienie. | Wywołaj mlflow.set_experiment() przed .distributed(), lub ustaw MLFLOW_EXPERIMENT_NAME. |
| Kod uruchamiany bezpośrednio w dołączonym notebooku | Żaden run nie jest tworzony automatycznie. Używanie mlflow.start_run() lub autologowanie. |
Wywołaj mlflow.set_experiment() w notesie. |
Zaplanowano ai_runtime_task |
Zadanie automatycznie tworzy uruchomienie. | Ustaw experiment w konfiguracji zadania. Zobacz zadanie AI Runtime. |
Po uruchomieniu lub dołączeniu do właściwego uruchomienia Twojego kodu użyj MLflow tracking API do zapisywania niestandardowych danych treningowych. W przypadku wspieranych frameworków można używać autologowania zamiast dodawania pojedynczych wywołań logowania. O wzorcach uczenia głębokiego zobacz przepływ pracy deep learning w MLflow 3.
Stosuj następujące praktyki podczas konfiguracji śledzenia MLflow:
- Ustaw
stepna sensowną wartość, taką jak globalna partia lub epoka. Loguj w odstępach czasu zamiast przy każdej partii. MLflow ogranicza liczbę kroków metrycznych na uruchomienie. Zobacz Limity zasobów. - Do treningu rozproszonego rejestruj metrykę tylko od rangi 0, tak aby każda wartość była rejestrowana raz.
- Dla workflow notatników używaj absolutnych ścieżek eksperymentów, takich jak
/Users/<username>/my-experimentlub/Workspace/Shared/<team>/my-experiment. Umieść eksperymenty, które chcesz udostępnić, w folderze współdzielonym w przestrzeni roboczej. - Przechowywaj duże, trwałe punkty kontrolne w woluminie Unity Catalog. Wzorce checkpointingu znajdziesz w artykule Improve training performance and resiliency on AI Runtime.
Note
Użyj MLflow 3.7 lub nowszej wersji w przykładach na tej stronie.
Monitoruj obciążenia CLI Databricks
Gdy przesyłasz obciążenie z databricks air run, AI Runtime tworzy uruchomienie zadania Azure Databricks dla szczegółów wykonania oraz uruchomienie MLflow dla danych eksperymentalnych. Oryginalne zgłoszenie i jego powtórki dzielą jedno wykonanie zadania, podczas gdy każda próba tworzy osobne uruchomienie MLflow w tym samym eksperymencie, aby można było porównać próby.
Metryki systemowe GPU, CPU i pamięci są automatycznie rejestrowane dla każdego zarządzanego uruchomienia i pojawiają się na karcie MLflow System metrics.
Skonfiguruj i rejestruj uruchomienie w logach
Użyj pliku YAML obciążenia, aby wybrać eksperyment i opcjonalnie skonfigurować nazwę uruchomienia oraz lokalizację artefaktu. Poniższy przykład pokazuje potrzebne pola MLflow:
experiment_name: my-training
mlflow_run_name: baseline-lr3e5
mlflow_artifact_location: /Volumes/main/default/mlflow-artifacts/my-training
Wymagania dotyczące pól, wartości domyślne i obsługiwane wartości można znaleźć w dokumentacji referencyjnej Workload YAML.
AI Runtime udostępnia zarządzany identyfikator uruchomienia przez MLFLOW_RUN_ID. Aby zarejestrować własne parametry, metryki i artefakty do tego uruchomienia, otwórz je ponownie za pomocą MLflow tracking API:
import os
import mlflow
# Log from rank 0 only because all nodes share the same MLFLOW_RUN_ID.
if os.environ.get("RANK", "0") == "0":
with mlflow.start_run(run_id=os.environ["MLFLOW_RUN_ID"]):
mlflow.log_param("learning_rate", 3e-4)
for step, loss in enumerate(training_losses):
mlflow.log_metric("train_loss", loss, step=step)
Znajdź uruchomienia i logi
Logi są dostępne zarówno w Databricks CLI, jak i na stronie uruchomienia MLflow. Użyj następujących poleceń, aby znaleźć zadania robocze, podejrzeć zadanie robocze oraz wyświetlać strumieniowo lub pobierać logi:
databricks air list --all-status
databricks air get <job-run-id>
databricks air logs <job-run-id>
databricks air logs <job-run-id> --node 2
databricks air logs <job-run-id> --download-to ./logs/
Śledź obciążenia notesów
Z notatnika możesz uruchamiać kod bezpośrednio w dołączonej sesji lub prowadzić trening rozproszony za pomocą dekoratora @distributed z pakietu Databricks AI Runtime SDK.
Uruchamiaj kod bezpośrednio w notatniku
Kod uruchamiany bezpośrednio w dołączonym notebooku nie tworzy automatycznie przebiegu MLflow. Wybierz eksperyment, a następnie rozpocznij uruchomienie lub włącz autologowanie:
import mlflow
mlflow.set_experiment("/Users/<username>/my-experiment")
with mlflow.start_run(run_name="baseline"):
train()
Aby włączyć autologowanie PyTorch Lightning, użyj następującego wzoru:
mlflow.pytorch.autolog()
with mlflow.start_run(run_name="lightning-baseline"):
trainer.fit(model, datamodule=datamodule)
Dla Hugging Face Transformers skonfiguruj TrainingArguments w następujący sposób:
from transformers import TrainingArguments
args = TrainingArguments(
output_dir="/Volumes/<catalog>/<schema>/<volume>/checkpoints",
report_to="mlflow",
run_name="llama7b-sft-lr3e5",
logging_steps=50,
)
Użyj SDK Runtime Databricks AI
Do rozproszonego treningu z notatnika użyj dekoratora @distributed z Databricks AI Runtime SDK (databricks-sdk-air). SDK jest dostępne w przestrzeni nazw databricks.air w środowisku GPU w wersji 6 i wyższej lub jako serverless_gpu w środowisku GPU w wersji 5 i niższej.
from databricks.air import distributed
@distributed()
def train():
# Training code
...
train.distributed()
Każde .distributed() wywołanie automatycznie uruchamia MLflow. Domyślny eksperyment to /Users/{WORKSPACE_USER}/{notebook-name}. Aby wybrać inny eksperyment, ustaw go przed wywołaniem .distributed():
mlflow.set_experiment("/Users/<username>/my-experiment")
train.distributed()
Gdy wywołujesz .distributed() wewnątrz aktywnego runu, AI Runtime tworzy zagnieżdżony podrzędny run:
with mlflow.start_run() as parent_run:
train.distributed()
Aby wznowić poprzedni przebieg, ustaw MLFLOW_RUN_ID przed .distributed():
import os
os.environ["MLFLOW_RUN_ID"] = "<previous-run-id>"
train.distributed()
Użyj linku uruchomienia w wyjściu komórki lub panelu Experiment notebooka, aby otworzyć przebieg MLflow.
Zobacz logi
- Wyjście z notebooku: Standardowe wyjście i błędy z kodu treningowego pojawiają się na wyjściu komórki notebooku.
-
Logi MLflow: Dla obciążeń notatników opartych na zadaniach, takich jak
.distributed(remote=True)wywołania, zakładka MLflow Logs wyświetla wyniki z powiązanego wykonania zadania.
Monitoruj zasoby GPU na żywo
Panel zasobów GPU notebooka pokazuje na żywo wykorzystanie GPU, pamięć i temperaturę dla obciążeń jedno- i wielowęzłowych. Użyj zakładki MLflow Metryki systemowe, gdy potrzebujesz trwałego rekordu powiązanego z przebiegiem.
Aby otworzyć panel, podłącz notebook do AI Runtime, a następnie kliknij Zasoby GPU w prawym panelu bocznym.
Panel odświeża metryki co 10 sekund i przechowuje historię z ostatnich 2 godzin. Kliknij Odśwież aby pobrać najnowsze wartości. Po 5 minutach bezczynności panel się zatrzymuje. Otwórz go ponownie, aby wznowić monitoring.
Zobacz logi w zakładce MLflow Logs
Zakładka Logs na stronie uruchomienia MLflow pokazuje dane wyjściowe obciążenia AI Runtime opartego na zadaniach. Aby ją otworzyć, przejdź do strony przebiegu i kliknij Logs.
W przypadku nowych przebiegów zakładka Logi zastępuje wycofane pliki logów, wcześniej przechowywane na karcie Artefakty danego przebiegu. Utworzone wcześniej przebiegi przechowują swoje pliki logów na zakładce Artefakty .
Z zakładki Logi możesz:
- Szukaj: Pokazuj tylko linie zawierające dane hasło wyszukiwania.
- Filtruj według węzła, poziomu dziennika i zakresu czasu: Wybierz jeden węzeł z wielowęzłowego obciążenia, pokaż tylko informacje, ostrzeżenia lub linie błędu, albo zawęź widok do określonego zakresu czasu.
- Śledź uruchomione obciążenie robocze: Podczas działania nowe dane wyjściowe pojawiają się na bieżąco. Przewiń w górę, aby wstrzymać śledzenie.
- Kopiuj i pobieraj: Kopiuj załadowane linie lub pobierz każdą linię, która odpowiada aktualnym filtrom.
Retencja logów
Logi są dostępne na zakładce Logi przez 60 dni.
Rozwiązywanie problemów z dostępem do logów
Zakładka Logs na stronie uruchomienia MLflow wyświetla dane wyjściowe na żywo z powiązanego uruchomienia zadania Azure Databricks. Dostęp do eksperymentu MLflow nie oznacza dostępu do zadania.
Jeśli zakładka pokazuje Nie masz dostępu do tych logów, poproś użytkownika z uprawnieniami Can Manage lub administratora przestrzeni roboczej, aby nadał Ci co najmniej Can View na zleceniu. Zobacz Kontrola dostępu do zadania.
Limity globalne w Azure Databricks
Zobacz Limity zasobów.