Deneme izleme ve gözlemlenebilirlik

Önemli

Bu özellik Genel Önizleme aşamasındadır.

AI Runtime, deneme izleme için MLflow ile yerel olarak tümleşir ve kullanımı, belleği ve sıcaklığı izlemeye yönelik yerleşik bir GPU kaynakları bölmesi içerir. Ölçümleri ve çalıştırmaları günlüğe kaydetmek, not defterinde ve MLflow kullanıcı arabiriminde eğitim çıktısını görüntülemek, model denetim noktalarını Unity Kataloğu birimlerine kaydetmek ve kodunuz çalışırken GPU durumunu izlemek için MLflow kullanın.

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’sini kullanırken, her çağrı için .distributed() otomatik olarak bir MLflow deneme çalıştırması oluşturur. Etkin bir MLflow çalıştırması içinde çağrılırsa, bunun yerine etkin üst çalıştırma altında iç içe bir alt çalıştırma oluşturulur.

    import mlflow
    
    with mlflow.start_run() as outer_run:
        ...
        run_train.distributed()  # creates a nested child run under outer_run
    
  • .distributed() tarafından kullanılan deneyi özelleştirmek için, mlflow.set_experiment() çağrılmadan önce .distributed() çağrısını yapın veya MLFLOW_EXPERIMENT_NAME ortam değişkenini ayarlayın. Varsayılan deneme adıdır /Users/{WORKSPACE_USER}/{notebook-name}. Her zaman mutlak yolları kullanın.

    import mlflow
    mlflow.set_experiment("/Users/<username>/my-experiment")
    run_train.distributed()
    

    Alternatively:

    import os
    os.environ["MLFLOW_EXPERIMENT_NAME"] = "/Users/<username>/my-experiment"
    
  • Önceki bir MLflow çalıştırmasını sürdürmek için kullanın mlflow.start_run(run_id="<previous-run-id>").

  • .distributed() ile önceki bir MLflow çalıştırmasını sürdürmek için, onu çağırmadan önce MLFLOW_RUN_ID ayarlayın:

    os.environ["MLFLOW_RUN_ID"] = "<previous-run-id>"
    run_train.distributed()
    
  • step içindeki MLFlowLogger parametresini uygun seri numaralarına ayarlayın. MLflow'un 10 milyon ölçüm adımı sınırı vardır, bu nedenle büyük eğitim çalıştırmalarında her toplu işlemi günlüğe kaydetmek bu sınıra gelebilir. Bkz. Kaynak sınırları.

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

  • Not defteri çıkışı: Eğitim kodunuzun standart çıktısı ve hata iletileri, not defteri hücresinin çıktısında görünür.
  • MLflow logları: MLflow deney arayüzü, eğitim metriklerini, parametreleri ve artefaktları görüntüler.

Model denetim noktası oluşturma

Dağıtık eğitim için, Torch Dağıtık Kontrol Noktası (DCP) API'si ile serverless_gpu.data.UCVolumeWriter depolama arka uçlarıyla birlikte model ve optimize edici durumu serverless_gpu.data.UCVolumeReader kaydedin. Kontrol noktası yüklenirken eğitimin devam etmesi için asenkron kaydet ve kesintiden sonra kaybedilen işi sınırlamak için yeterince sık kontrol noktası yap. Model kontrol noktası veri boru hattı konumunu yakalamadığı için, veri boru hattınızı da kontrol noktası olarak kullanın, böylece devam eden çalışma doğru veriyle devam eder.

Tam kontrol noktası desenini görmek için bkz. Yapay Zeka Çalışma Zamanında eğitim performansını ve dayanıklılığını iyileştir.

GPU kaynaklarını izleme

Kodunuz AI Runtime üzerinde çalışırken GPU sistem durumunu ve kullanımını izlemek için GPU kaynakları bölmesini kullanın. Bölme hem tek düğümlü hem de çok düğümlü iş yüklerini destekler.

Bölmeyi açmak için not defterinizi AI Çalışma Zamanı'na bağlayın, ardından Yonga simgesine tıklayın.Sağ taraftaki bölmede GPU kaynakları.

Her GPU için kullanım, bellek ve sıcaklık ölçümlerini gösteren GPU kaynakları bölmesi.

Bölmede her GPU için aşağıdaki ölçümler görüntülenir:

  • GPU kullanım yüzdesi
  • GPU bellek kullanımı
  • Sıcaklık

Bölme, ölçümleri her 10 saniyede bir sorgular ve 2 saate kadar olan geçmişi saklar. Yenile simgesine tıklayın. En son değerleri hemen getirmek için yenileyin. 5 dakika etkinlik dışı kalma süresinden sonra bölme duraklatılır; izlemeyi sürdürmek için yeniden açın.

Ç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.

Azure Databricks'da genel sınırlar

Bkz. Kaynak sınırları.