Aracılığıyla paylaş


MLflow çalıştırmalarıyla eğitim sonuçlarını görüntüleme

Bu makalede, model eğitim denemesinin sonuçlarını görüntülemek ve analiz etmek için MLflow çalıştırmalarının nasıl kullanılacağı ve çalıştırmaların nasıl yönetilip düzenleyebileceğiniz açıklanmaktadır. MLflow denemeleri hakkında daha fazla bilgi için bkz. MLflow denemeleriyle eğitim çalıştırmalarını düzenleme.

MLflow çalıştırması , model kodunun tek bir yürütülmesine karşılık gelir. Her çalıştırma, çalıştırmayı başlatan not defteri, çalıştırma tarafından oluşturulan tüm modeller, anahtar-değer çiftleri olarak kaydedilen model parametreleri ve ölçümler, çalıştırma meta verileri için etiketler ve çalıştırma tarafından oluşturulan yapıtlar veya çıkış dosyaları gibi bilgileri kaydeder.

Tüm MLflow çalıştırmaları etkin denemede günlüğe kaydedilir. Bir denemeyi etkin deneme olarak açıkça ayarlamadıysanız, çalıştırmalar not defteri denemesine kaydedilir.

Çalıştırma ayrıntılarını görüntüleme

Bir çalıştırmaya deneme ayrıntıları sayfasından veya doğrudan çalıştırmayı oluşturan not defterinden erişebilirsiniz.

deneme ayrıntıları sayfasında çalıştırma tablosunda çalıştırma adına tıklayın.

Deneme ayrıntıları sayfasından deneme çalışmasını açın.

Notebook'tan, Deney Çalıştırmaları kenar çubuğunda çalıştırma adına tıklayın.

Not defterinden deney çalıştırmayı açın.

çalıştırma ekranı çalıştırma için kullanılan parametreleri, çalıştırmadan kaynaklanan ölçümleri ve kaynak not defterinin bağlantısını içeren çalıştırmayla ilgili ayrıntıları gösterir. Çalıştırma işleminden kaydedilen nesneler Nesneler sekmesinde mevcuttur.

Çalıştırmayı görüntüle

Tahmin için kod parçacıkları

Bir çalıştırmada bir modeli günlüğe kaydederseniz, model, Spark ve Pandas DataFrames üzerinde tahminlerde bulunmak için modelin nasıl yüklenip kullanılacağını gösteren kod parçacıkları eşliğinde, Artifacts sekmesinde görüntülenir.

kod parçacıklarını tahmin edin

Çalıştırma için kullanılan not defterini görüntüle

Çalıştırmayı oluşturan not defterinin sürümünü görüntülemek için:

  • Deneme ayrıntıları sayfasında, Kaynak sütunundaki bağlantıya tıklayın.
  • Çalıştırma sayfasında Kaynak'ın yanındaki bağlantıya tıklayın.
  • Not defterinde, Deneme Çalıştırmaları kenar çubuğunda, deneme çalıştırmasının kutusundaki Not Defteri simgesine Not Defteri Sürümü Simgesi tıklayın.

Çalıştırmayla ilişkilendirilmiş not defterinin sürümü ana pencerede, çalıştırmanın tarihini ve saatini gösteren vurgu çubuğuyla birlikte görüntülenir.

Çalıştırmaya etiket ekleme

Etiketler, daha sonra çalıştırmaları aramak için oluşturabileceğiniz ve kullanabileceğiniz anahtar-değer çiftleridir.

  1. çalıştırma sayfasındaki Ayrıntılar tablosunda, Etiketleriyanındaki Ekle'yi tıklayın.

    etiket tablosu

  2. Etiket ekle/düzenle iletişim kutusu açılır. Anahtar alanına anahtar için bir ad girin ve Ekle etiketi'ne tıklayın.

    Etiket ekle'yi seçin.

  3. Değeri alanına etiketin değerini girin.

  4. Az önce girdiğiniz anahtar-değer çiftini kaydetmek için artı işaretine tıklayın.

    Artı işareti ile anahtar-değer çifti kaydedin.

  5. Ek etiketler eklemek için 2 ile 4 arasındaki adımları yineleyin.

  6. İşiniz bittiğinde etiketleri kaydettıklayın.

Bir çalıştırmanın etiketini düzenleme veya silme

  1. çalıştırma sayfasındaki Ayrıntılar tablosunda, mevcut etiketlerin yanında Kalem simgesine tıklayın.

    etiket tablosu

  2. Etiket ekle/düzenle iletişim kutusu açılır.

    1. Bir etiketi silmek için bu etiket üzerindeki X işaretine tıklayın.

      Bir etiketi sil.

    2. Etiketi düzenlemek için açılan menüden anahtarı seçin ve Değer alanındaki değeri düzenleyin. Değişikliğinizi kaydetmek için artı işaretine tıklayın.

      Bir etiketi düzenleyin.

  3. İşiniz bittiğinde etiketleri kaydet'e tıklayın.

Çalıştırmanın yazılım ortamını yeniden oluşturma

Çalıştırma sayfasının sağ üst köşesindeki Çalıştırmayı Tekrarla butonuna tıklayarak çalıştırma için yazılım ortamının aynısını tekrar oluşturabilirsiniz. Aşağıdaki iletişim kutusu görüntülenir:

Çalıştırmayı yeniden oluştur iletişim kutusu

Varsayılan ayarlarla, Onayla'ya tıkladığınızda:

  • Not defteri, iletişim kutusunda gösterilen konuma kopyalanır.
  • Özgün küme hala varsa, kopyalanan not defteri özgün kümeye eklenir ve küme başlatılır.
  • Özgün küme artık yoksa, yüklü kitaplıklar da dahil olmak üzere aynı yapılandırmaya sahip yeni bir küme oluşturulur ve başlatılır. Not defteri yeni kümeye eklenir.

Kopyalanan not defteri için farklı bir konum seçebilir ve küme yapılandırmasını ve yüklü kitaplıkları inceleyebilirsiniz:

  • Kopyalanan not defterini kaydetmek üzere farklı bir klasör seçmek için Klasörü Düzenle'ye tıklayın.
  • Küme belirtimini görmek için Görünüm Belirtimi'ne tıklayın. Kümeyi değil yalnızca not defterini kopyalamak için bu seçeneğin işaretini kaldırın.
  • Özgün küme artık yoksa, Kitaplıkları Görüntüleseçeneğine tıklayarak, orijinal kümede yüklü olan kitaplıkları görebilirsiniz. Özgün küme hala varsa, bu bölüm gri gösterilir.

Çalıştırmayı yeniden adlandırma

Bir çalıştırmayı yeniden adlandırmak için, çalıştırma sayfasının sağ üst köşesindeki kebap menüsüne Kebap menüsüne (İzinler düğmesinin yanında) tıklayın veYeniden Adlandır'ı seçin.

Çalıştırma sayfasından bir çalıştırmayı yeniden adlandırın.

Görüntülenecek sütunları seçin

Deneme ayrıntıları sayfasındaki çalıştırmalar tablosunda görüntülenen sütunları denetlemek için Sütunlar'ne tıklayın ve açılan menüden seçin.

Filtre çalıştırmaları

Parametre veya ölçüm değerlerine göre deneme ayrıntıları sayfasında tabloda çalışmaları aramak mümkündür. Ayrıca, çalıştırmaları etikete göre de arayabilirsiniz.

  • Parametre ve ölçüm değerleri içeren bir ifadeyle eşleşen çalıştırmaları aramak için, arama alanına bir sorgu girin ve Enter tuşuna basın. Bazı sorgu söz dizimi örnekleri şunlardır:

    metrics.r2 > 0.3

    params.elasticNetParam = 0.5

    params.elasticNetParam = 0.5 AND metrics.avg_areaUnderROC > 0.3

    MIN(metrics.rmse) <= 1

    MAX(metrics.memUsage) > 0.9

    LATEST(metrics.memUsage) = 0 AND MIN(metrics.rmse) <= 1

    Varsayılan olarak, ölçüm değerleri son günlüğe kaydedilen değere göre filtrelenir. veya MINMAX kullanarak çalıştırmaları sırasıyla en düşük veya en yüksek ölçüm değerlerine göre arayabilirsiniz. Yalnızca Ağustos 2024'den sonra günlüğe kaydedilen çalıştırmaların en düşük ve en yüksek ölçüm değerleri vardır.

  • Çalıştırmaları etikete göre aramak için etiketleri şu biçimde girin: tags.<key>="<value>". Dize değerleri gösterildiği gibi tırnak içine alınmalıdır.

    tags.estimator_name="RandomForestRegressor"

    tags.color="blue" AND tags.size=5

    Hem anahtarlar hem de değerler boşluk içerebilir. Anahtar boşluk içeriyorsa, gösterildiği gibi arka uç içine almanız gerekir.

    tags.`my custom tag` = "my value"
    

Çalıştırmaları durumlarına (Etkin veya Silinmiş), çalıştırmanın ne zaman oluşturulduğuna ve hangi veri kümelerinin kullanıldığına göre de filtreleyebilirsiniz. Bunu yapmak için sırasıyla Oluşturulma zamanı, Durumveya Veri setleri açılan menülerinden seçimlerinizi yapın.

Filtre çalıştırmaları

İndirme çalıştırmaları

Deneme ayrıntıları sayfasından çalıştırmaları aşağıdaki gibi indirebilirsiniz:

  1. Kebap menüsünü açmak Kebap menüsüne tıklayın.

    Denemeler sayfasında, indirme seçenekleri olan kebap menüsü.

  2. Gösterilen tüm çalıştırmaları (en fazla 100) içeren CSV biçiminde bir dosya indirmek için İndir <n> çalıştırmaları'ı seçin. MLflow, her çalıştırma için aşağıdaki alanları içeren, satır başına bir çalıştırma içeren bir dosya oluşturur ve indirir:

    Start Time, Duration, Run ID, Name, Source Type, Source Name, User, Status, <parameter1>, <parameter2>, ..., <metric1>, <metric2>, ...
    
  3. 100'den fazla koşu indirmek veya koşuları program aracılığıyla indirmek istiyorsanız, tüm koşuları indirseçeneğini seçin. Not defterinde kopyalayabileceğiniz veya açabileceğiniz bir kod parçacığını gösteren bir iletişim kutusu açılır. Bu kodu bir not defteri hücresinde çalıştırdıktan sonra hücre çıktısından Tüm satırları indir seçeneğini seçin.

Çalıştırmaları silme

Aşağıdaki adımları izleyerek deneme ayrıntıları sayfasından çalıştırmaları silebilirsiniz:

  1. Denemede, çalıştırmanın sol kısmındaki onay kutusuna tıklayarak bir veya daha fazla çalıştırmayı seçin.
  2. Sil'e tıklayın.
  3. Çalıştırma bir üst çalıştırmaysa, alt çalıştırmaları da silmek isteyip istemediğinize karar verin. Bu seçenek varsayılan olarak belirlenir.
  4. Onaylamak için Sil'e tıklayın. Silinen çalıştırmalar 30 gün boyunca kaydedilir. Silinen çalıştırmaları görüntülemek için Durum alanında Silinmiş'i seçin.

Oluşturma zamanına göre çalıştırmaları toplu silme

Unix zaman damgasından önce veya bu zaman damgasında oluşturulmuş bir denemenin çalıştırmalarını toplu olarak silmek için Python'ı kullanabilirsiniz. Databricks Runtime 14.1 veya üzerini kullanarak, çalıştırmaları silmek ve silinen çalıştırma sayısını döndürmek için API'yi çağırabilirsiniz mlflow.delete_runs .

Parametreler şunlardır mlflow.delete_runs :

  • experiment_id: Silinecek çalıştırmaları içeren denemenin kimliği.
  • max_timestamp_millis: Silme çalıştırmaları için UNIX döneminin bu yana milisaniye cinsinden maksimum oluşturma zaman damgası. Yalnızca bu zaman damgasından önce veya bu zaman damgasında oluşturulan çalıştırmalar silinir.
  • max_runs:Opsiyonel. Silinecek en fazla çalıştırma sayısını gösteren pozitif tamsayı. max_runs için izin verilen en büyük değer 10000'dir. Belirtilmezse, max_runs varsayılan olarak 10000 olur.
import mlflow

# Replace <experiment_id>, <max_timestamp_ms>, and <max_runs> with your values.
runs_deleted = mlflow.delete_runs(
  experiment_id=<experiment_id>,
  max_timestamp_millis=<max_timestamp_ms>,
  max_runs=<max_runs>
)
# Example:
runs_deleted = mlflow.delete_runs(
  experiment_id="4183847697906956",
  max_timestamp_millis=1711990504000,
  max_runs=10
)

Databricks Runtime 13.3 LTS veya önceki bir sürüm kullanarak azure databricks not defterinde aşağıdaki istemci kodunu çalıştırabilirsiniz.

from typing import Optional

def delete_runs(experiment_id: str,
                max_timestamp_millis: int,
                max_runs: Optional[int] = None) -> int:
    """
    Bulk delete runs in an experiment that were created prior to or at the specified timestamp.
    Deletes at most max_runs per request.

    :param experiment_id: The ID of the experiment containing the runs to delete.
    :param max_timestamp_millis: The maximum creation timestamp in milliseconds
                                 since the UNIX epoch for deleting runs. Only runs
                                 created prior to or at this timestamp are deleted.
    :param max_runs: Optional. A positive integer indicating the maximum number
                     of runs to delete. The maximum allowed value for max_runs
                     is 10000. If not specified, max_runs defaults to 10000.
    :return: The number of runs deleted.
    """
    from mlflow.utils.databricks_utils import get_databricks_host_creds
    from mlflow.utils.request_utils import augmented_raise_for_status
    from mlflow.utils.rest_utils import http_request

    json_body = {"experiment_id": experiment_id, "max_timestamp_millis": max_timestamp_millis}
    if max_runs is not None:
        json_body["max_runs"] = max_runs
    response = http_request(
        host_creds=get_databricks_host_creds(),
        endpoint="/api/2.0/mlflow/databricks/runs/delete-runs",
        method="POST",
        json=json_body,
    )
    augmented_raise_for_status(response)
    return response.json()["runs_deleted"]

Oluşturma zamanına göre çalıştırmaları silmeye yönelik parametreler ve dönüş değeri belirtimleri için Azure Databricks Denemeleri API belgelerine bakın.

Çalıştırmaları geri yükleme

Kullanıcı arabiriminden daha önce silinmiş çalıştırmaları aşağıdaki gibi geri yükleyebilirsiniz:

  1. Deneme sayfasında, Durumu alanında, silinmiş çalıştırmaları görüntülemek için Silinmiş seçeneğini seçin.
  2. Çalıştırmanın sol kısmındaki onay kutusuna tıklayarak bir veya daha fazla çalıştırmayı seçin.
  3. Geri Yükle'ye tıklayın.
  4. Onaylamak için Geri Yükle'ye tıklayın. Geri yüklenen çalıştırmalar artık Durum alanında Etkin seçtiğinizde görünür.

Toplu geri yükleme, silme süresine göre çalışır

Python'ı, UNIX zaman damgasında veya sonrasında silinen bir denemenin çalıştırmalarını toplu olarak geri yüklemek için de kullanabilirsiniz. Databricks Runtime 14.1 veya üzerini kullanarak, çalıştırmaları geri yüklemek ve geri yüklenen çalıştırma sayısını döndürmek için API'yi çağırabilirsiniz mlflow.restore_runs .

Parametreler şunlardır mlflow.restore_runs :

  • experiment_id: Geri yükleneceği çalıştırmaları içeren denemenin kimliği.
  • min_timestamp_millis: Geri yükleme için UNIX dönemi çalıştırıldığından bu yana milisaniye cinsinden en düşük silme zaman damgası. Yalnızca bu zaman damgası geri yüklendiğinde veya sonrasında silinen çalıştırmalar.
  • max_runs:Opsiyonel. Geri yükleneceği en fazla çalıştırma sayısını gösteren pozitif bir tamsayı. max_runs için izin verilen en büyük değer 10000'dir. Belirtilmezse, max_runs varsayılan olarak 10000 olur.
import mlflow

# Replace <experiment_id>, <min_timestamp_ms>, and <max_runs> with your values.
runs_restored = mlflow.restore_runs(
  experiment_id=<experiment_id>,
  min_timestamp_millis=<min_timestamp_ms>,
  max_runs=<max_runs>
)
# Example:
runs_restored = mlflow.restore_runs(
  experiment_id="4183847697906956",
  min_timestamp_millis=1711990504000,
  max_runs=10
)

Databricks Runtime 13.3 LTS veya önceki bir sürüm kullanarak azure databricks not defterinde aşağıdaki istemci kodunu çalıştırabilirsiniz.

from typing import Optional

def restore_runs(experiment_id: str,
                 min_timestamp_millis: int,
                 max_runs: Optional[int] = None) -> int:
    """
    Bulk restore runs in an experiment that were deleted at or after the specified timestamp.
    Restores at most max_runs per request.

    :param experiment_id: The ID of the experiment containing the runs to restore.
    :param min_timestamp_millis: The minimum deletion timestamp in milliseconds
                                 since the UNIX epoch for restoring runs. Only runs
                                 deleted at or after this timestamp are restored.
    :param max_runs: Optional. A positive integer indicating the maximum number
                     of runs to restore. The maximum allowed value for max_runs
                     is 10000. If not specified, max_runs defaults to 10000.
    :return: The number of runs restored.
    """
    from mlflow.utils.databricks_utils import get_databricks_host_creds
    from mlflow.utils.request_utils import augmented_raise_for_status
    from mlflow.utils.rest_utils import http_request
    json_body = {"experiment_id": experiment_id, "min_timestamp_millis": min_timestamp_millis}
    if max_runs is not None:
        json_body["max_runs"] = max_runs
    response = http_request(
        host_creds=get_databricks_host_creds(),
        endpoint="/api/2.0/mlflow/databricks/runs/restore-runs",
        method="POST",
        json=json_body,
    )
    augmented_raise_for_status(response)
    return response.json()["runs_restored"]

Silme süresine göre çalıştırmaları geri yüklemeye yönelik parametreler ve dönüş değeri belirtimleri için Azure Databricks Denemeleri API belgelerine bakın.

Çalıştırmaları karşılaştırma

Çalıştırmaları tek bir denemeden veya birden çok denemeden karşılaştırabilirsiniz. Çalıştırmaları Karşılaştırma sayfası, seçili çalıştırmalarla ilgili bilgileri grafik ve tablo biçimlerinde sunar. Ayrıca çalıştırma sonuçlarının görselleştirmelerini ve çalıştırma bilgileri, çalıştırma parametreleri ve ölçüm tablolarını oluşturabilirsiniz.

Görselleştirme oluşturmak için:

  1. Çizim türünü seçin (Paralel Koordinatlar Çizimi, Dağılım Çizimi veya Kontur Çizimi).
    1. Paralel Koordinatlar Çizimi için, çizecek parametreleri ve ölçümleri seçin. Buradan, seçilen parametreler ve ölçümler arasındaki ilişkileri tanımlayabilirsiniz ve bu da modellerinizin hiper parametre ayarlama alanını daha iyi tanımlamanıza yardımcı olur.

      çalıştırma sayfası görselleştirmeyi karşılaştırma

    2. Dağılım Çizimi veya Dağılım Çizimi için her eksende görüntülenecek parametreyi veya ölçümü seçin.

Parametreler ve Ölçümler tabloları, seçilen tüm çalıştırmalardaki çalıştırma parametrelerini ve ölçümlerini görüntüler. Bu tablolardaki sütunlar hemen yukarıdaki Çalıştırma ayrıntıları tablosu tarafından tanımlanır. Kolaylık olması için, tüm seçili çalıştırmalarda aynı olan parametreleri ve ölçümleri geçiş Yalnızca fark göster düğmesiyaparak gizleyebilirsiniz.

çalıştırma sayfa tablolarını karşılaştırma

Tek bir denemeden çalıştırmaları karşılaştırma

  1. deneme ayrıntıları sayfasında, çalıştırmanın sol tarafındaki onay kutusuna tıklayarak iki veya daha fazla çalıştırmayı seçin veya sütunun üst kısmındaki kutuyu işaretleyerek tüm çalıştırmaları seçin.
  2. Karşılaştır'a tıklayın. Çalıştırmaları <N> Karşılaştırma ekranı görüntülenir.

Birden çok denemeden çalıştırmaları karşılaştırma

  1. Denemeler sayfasında, deneme adının sol tarafındaki kutuya tıklayarak karşılaştırmak istediğiniz denemeleri seçin.
  2. Karşılaştır (n) seçeneğine tıklayın (n, seçtiğiniz deneme sayısıdır). Seçtiğiniz denemelerin tüm çalıştırmalarını gösteren bir ekran görüntülenir.
  3. Çalıştırmanın sol tarafındaki onay kutusuna tıklayarak iki veya daha fazla çalıştırmayı seçin veya sütunun en üstündeki kutuyu işaretleyerek tüm çalıştırmaları seçin.
  4. Karşılaştır'a tıklayın. Çalıştırmaları <N> Karşılaştırma ekranı görüntülenir.

Çalışma alanları arasında çalıştırmaları kopyalama

MLflow çalıştırmalarını Databricks çalışma alanınıza içeri veya dışarı aktarmak için topluluk temelli açık kaynak MLflow Dışarı Aktarma-İçeri Aktarma projesini kullanabilirsiniz.