Bagikan melalui


Pelacakan dan pengamatan eksperimen

Penting

Runtime AI untuk tugas node tunggal sedang dalam Pratinjau Umum. API pelatihan terdistribusi untuk beban kerja multi-GPU tetap berada di Beta.

Artikel ini menjelaskan cara menggunakan MLflow, memantau kesehatan GPU, melihat log, dan mengelola titik pemeriksaan model pada Runtime AI.

Integrasi MLflow

Runtime AI terintegrasi secara asli dengan MLflow untuk pelacakan eksperimen, pengelogan model, dan visualisasi metrik.

Rekomendasi pengaturan:

  • Tingkatkan MLflow ke versi 3.7 atau yang lebih baru dan ikuti pola alur kerja pembelajaran mendalam.

  • Aktifkan autologging untuk PyTorch Lightning:

    import mlflow
    mlflow.pytorch.autolog()
    
  • Sesuaikan nama eksekusi MLflow Anda dengan merangkum kode pelatihan model Anda dalam mlflow.start_run() cakupan API. Ini memberi Anda kontrol atas nama eksekusi dan memungkinkan Anda memulai ulang dari eksekusi sebelumnya. Anda dapat menyesuaikan nama eksekusi menggunakan run_name parameter di mlflow.start_run(run_name="your-custom-name") atau di pustaka pihak ketiga yang mendukung MLflow (misalnya, Hugging Face Transformers). Jika tidak, nama eksekusi defaultnya adalah jobTaskRun-xxxxx.

    from transformers import TrainingArguments
    args = TrainingArguments(
        report_to="mlflow",
        run_name="llama7b-sft-lr3e5",  # <-- MLflow run name
        logging_steps=50,
    )
    
  • API GPU Tanpa Server secara otomatis meluncurkan eksperimen MLflow dengan nama /Users/{WORKSPACE_USER}/{get_notebook_name()}default . Pengguna dapat menimpanya dengan variabel lingkungan MLFLOW_EXPERIMENT_NAME. Selalu gunakan jalur absolut untuk variabel lingkungan MLFLOW_EXPERIMENT_NAME.

    import os
    os.environ["MLFLOW_EXPERIMENT_NAME"] = "/Users/<username>/my-experiment"
    
  • Lanjutkan pelatihan sebelumnya dengan mengatur MLFLOW_RUN_ID dari eksekusi sebelumnya:

    mlflow.start_run(run_id="<previous-run-id>")
    
  • Atur parameter step di MLFlowLogger menjadi nomor batch yang wajar. MLflow memiliki batas 10 juta langkah metrik — pencatatan setiap batch pada pelatihan berskala besar dapat mencapai batas ini. Lihat Batas sumber daya.

Menampilkan log

  • Output buku catatan — Output dan kesalahan standar dari kode pelatihan Anda muncul di output sel buku catatan.
  • Driver logs — Dapat diakses melalui panel kompute untuk debugging masalah startup, masalah penyiapan lingkungan, dan kesalahan runtime.
  • Log MLflow — Metrik pelatihan, parameter, dan artefak dapat dilihat di UI eksperimen MLflow.

Titik pemeriksaan model

Simpan titik pemeriksaan model ke volume Katalog Unity, yang menyediakan tata kelola yang sama dengan objek Katalog Unity lainnya. Gunakan format jalur berikut untuk mereferensikan file dalam volume dari buku catatan Databricks:

/Volumes/<catalog>/<schema>/<volume>/<path>/<file-name>

Simpan titik pemeriksaan ke volume dengan cara yang sama seperti Anda menyimpannya ke penyimpanan lokal.

Contoh di bawah ini menunjukkan cara menulis titik pemeriksaan PyTorch ke volume Katalog Unity:

import torch

checkpoint = {
    "epoch": epoch,  # last finished epoch
    "model_state_dict": model.state_dict(),  # weights & buffers
    "optimizer_state_dict": optimizer.state_dict(),  # optimizer state
    "loss": loss,  # optional current loss
    "metrics": {"val_acc": val_acc},  # optional metrics
    # Add scheduler state, RNG state, and other metadata as needed.
}
checkpoint_path = "/Volumes/my_catalog/my_schema/model/checkpoints/ckpt-0001.pt"
torch.save(checkpoint, checkpoint_path)

Pendekatan ini juga berfungsi untuk titik pemeriksaan terdistribusi. Contoh di bawah ini menunjukkan titik pemeriksaan model terdistribusi dengan Torch Distributed Checkpoint API:

import torch.distributed.checkpoint as dcp

def save_checkpoint(self, checkpoint_path):
    state_dict = self.get_state_dict(model, optimizer)
    dcp.save(state_dict, checkpoint_id=checkpoint_path)

trainer.save_checkpoint("/Volumes/my_catalog/my_schema/model/checkpoints")

Kolaborasi multi-pengguna

  • Untuk memastikan semua pengguna dapat mengakses kode bersama (misalnya, modul pembantu atau file YAML lingkungan), simpan di /Workspace/Shared alih-alih folder khusus pengguna seperti /Workspace/Users/<your_email>/.
  • Untuk kode yang sedang dalam pengembangan aktif, gunakan folder Git di folder /Workspace/Users/<your_email>/ khusus pengguna dan dorong ke repositori Git jarak jauh. Ini memungkinkan beberapa pengguna untuk memiliki klon dan cabang khusus pengguna, sambil masih menggunakan repositori Git jarak jauh untuk kontrol versi. Lihat praktik terbaik untuk menggunakan Git di Databricks.
  • Kolaborator dapat berbagi dan mengomentari buku catatan.

Batas operasional global dalam Databricks

Lihat Batas sumber daya.