Aracılığıyla paylaş


Deneme izleme ve gözlemlenebilirlik

Önemli

Tek düğümlü görevler için AI Çalışma Zamanı Genel Önizleme aşamasındadır. Çoklu GPU iş yükleri için dağıtılmış eğitim API'si Beta'da kalır.

Bu makalede MLflow'un nasıl kullanılacağı, GPU sistem durumunun nasıl izleneceği, günlüklerin nasıl görüntüleneceği ve yapay zeka Çalışma Zamanı'nda model denetim noktalarının nasıl yönetileceğini açıklanmaktadır.

MLflow tümleştirmesi

AI Runtime, deneme izleme, model günlüğü ve ölçüm görselleştirmesi için MLflow ile yerel olarak tümleşir.

Kurulum önerileri:

  • MLflow'u 3.7 veya daha yeni bir sürüme yükseltin ve derin öğrenme iş akışı desenlerini izleyin.

  • PyTorch Lightning için otomatik kaydetmeyi etkinleştirin:

    import mlflow
    mlflow.pytorch.autolog()
    
  • Model eğitim kodunuzu mlflow.start_run() API kapsamına alarak MLflow çalıştırma adını özelleştirin. Bu, çalıştırma adı üzerinde denetim sahibi olmanıza ve önceki bir çalıştırmadan yeniden başlamanıza olanak tanır. run_name parametresini mlflow.start_run(run_name="your-custom-name") veya MLflow'u destekleyen üçüncü taraf kitaplıklarda (örneğin, Hugging Face Transformers) kullanarak çalıştırma adını özelleştirebilirsiniz. Aksi takdirde, varsayılan çalıştırma adı şeklindedir jobTaskRun-xxxxx.

    from transformers import TrainingArguments
    args = TrainingArguments(
        report_to="mlflow",
        run_name="llama7b-sft-lr3e5",  # <-- MLflow run name
        logging_steps=50,
    )
    
  • Sunucusuz GPU API'si, varsayılan adıyla /Users/{WORKSPACE_USER}/{get_notebook_name()}otomatik olarak bir MLflow denemesi başlatır. Kullanıcılar ortam değişkeniyle MLFLOW_EXPERIMENT_NAME bu değişkenin üzerine yazabilir. Ortam değişkeni için her zaman MLFLOW_EXPERIMENT_NAME mutlak yol kullanın.

    import os
    os.environ["MLFLOW_EXPERIMENT_NAME"] = "/Users/<username>/my-experiment"
    
  • Önceki eğitimi, önceki çalıştırmadan alınan MLFLOW_RUN_ID ayarını yaparak sürdürün.

    mlflow.start_run(run_id="<previous-run-id>")
    
  • MLFlowLogger içindeki step parametresini uygun seri numaralarına ayarlayın. MLflow'un 10 milyon ölçüm adımı sınırı vardır; büyük ölçekli eğitim çalışmalarında her bir toplu işin kaydedilmesi bu sınıra ulaşabilirsiniz. Bkz. Kaynak sınırları.

Günlükleri görüntüleme

  • Notebook çıktısı — Eğitim kodunuzun standart çıktıları ve hataları, notebook hücresinin çıktısında görünür.
  • Sürücü günlükleri — Başlangıç sorunlarının, ortam kurulum sorunlarının ve çalışma zamanı hatalarının hatalarını ayıklamak için işlem paneli aracılığıyla erişilebilir.
  • MLflow günlükleri — Eğitim ölçümleri, parametreler ve yapıtlar MLflow deneme kullanıcı arabiriminde görüntülenebilir.

Model denetim noktası oluşturma

Model denetim noktalarını , diğer Unity Kataloğu nesneleriyle aynı idareyi sağlayan Unity Kataloğu birimlerine kaydedin. Databricks not defterinden birimlerdeki dosyalara başvurmak için aşağıdaki yol biçimini kullanın:

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

Kontrol noktalarını yerel depolama alanına kaydettiğiniz şekilde birimlere de kaydedin.

Aşağıdaki örnekte Unity Kataloğu birimlerine PyTorch denetim noktası yazma işlemi gösterilmektedir:

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)

Bu yaklaşım, dağıtılmış denetim noktaları için de çalışır. Aşağıdaki örnekte Torch Distributed Checkpoint API'siyle dağıtılmış model denetim noktası oluşturma gösterilmektedir:

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")

Çok kullanıcılı işbirliği

  • Tüm kullanıcıların paylaşılan koda (örneğin, yardımcı modüller veya ortam YAML dosyaları) erişebildiğinden emin olmak için, bunları gibi /Workspace/Sharedkullanıcıya özgü klasörler yerine içinde /Workspace/Users/<your_email>/ depolayın.
  • Etkin geliştirme aşamasında olan kod için, kullanıcıya özgü klasörlerde Git klasörlerini /Workspace/Users/<your_email>/ kullanın ve uzak Git depolarına gönderme yapın. Bu, sürüm denetimi için uzak Git deposu kullanmaya devam ederken birden çok kullanıcının kullanıcıya özgü bir kopyaya ve dala sahip olmasını sağlar. Bkz. Databricks'te Git'i kullanmaya yönelik en iyi yöntemler .
  • ortak çalışanlar not defterlerini paylaşabilir ve bunlara yorum yapabilir.

Databricks'te genel sınırlar

Bkz. Kaynak sınırları.