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.

Tip

  • AI Runtime, deney takibi ve model kaydı için MLflow ile doğal olarak entegre olur.
  • Yerleşik bir GPU kaynakları paneli kullanım oranı, belleği ve sıcaklığı gösterir.
  • Model kontrol noktalarını Unity Kataloğu ciltlerine kaydet.

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.

Eğer günlükleri göremiyorsan

MLflow çalıştırma sayfasındaki Logs sekmesi, MLflow çalıştırmasıyla ilişkili Databricks iş yürütmesindeki günlükleri akış olarak görüntüler; bu nedenle erişim, söz konusu işin izinlerine tabidir. Sekmede 'Bu loglara erişiminiz yok' yazıyorsa, kullanıcıların yeterli izni yoktur.

MLflow'daki çalışmaya erişim, işe erişim anlamına gelmez. MLflow deney iznine sahip olabilirsiniz, ancak loglara erişiminiz yine de reddedilebilir. Erişim için Can Manage izinlerine sahip kullanıcılardan veya bir workspace yöneticisinden en azından iş başında Can View izni vermesini iste. Görev izinlerinin nasıl verildiğini öğrenmek için Bir göreve erişimi denetleme bölümüne bakın.

Model denetim noktası oluşturma

Dağıtık eğitim için, modeli ve iyileştirici durumunu, serverless_gpu.data.UCVolumeReader ve depolama arka uçlarını kullanan serverless_gpu.data.UCVolumeWriter (DCP) API'si ile Unity Catalog birimlerine 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.

Denetim noktası oluşturmanın tam düzeni için AI Runtime'ta eğitim performansını ve dayanıklılığı iyileştirin bölümüne bakın.

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