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ında çalıştırma kimliği, çalıştırma için kullanılan parametreler, çalıştırmadan kaynaklanan ölçümler ve kaynak not defterinin bağlantısı dahil olmak üzere çalıştırmayla ilgili ayrıntılar gösterilir. Ç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. MLflow 3'te modeller artık çalıştırma eseri olarak günlüğe kaydedilmek yerine kendi benzersiz birinci sınıf nesneleridir. Daha fazla bilgi için bkz. Modeller için MLflow 3'i kullanmaya başlama.

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 defterinden, Deneme Çalıştırmaları kenar çubuğunda, bu deneme çalıştırması 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.

Bir çalışmaya etiket ekleyin

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

  1. Çalıştırma sayfasındakiAyrıntılar tablosunda Etiketler'in yanındaki Etiket ekle'ye tıklayın.

    Ayrıntılar sayfasındaki Etiket düğmesi

  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.

Çalıştırma için bir etiketi düzenleme veya silme

  1. Çalıştırma sayfasındakiAyrıntılar tablosunda, mevcut etiketlerin yanındaki 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 kaydettıklayın.

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

Bir çalıştırmayı yeniden adlandırmak için kebap menüsü Kebap menü simgesine tıklayın. Çalıştırma sayfasının sağ üst köşesinde ( İzinler düğmesinin yanında) ve Yeniden 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 işlemleri

Parametre veya ölçüm değerlerine göre deneme ayrıntıları sayfasında tabloda çalışmaları aramak mümkündür. Etikete göre çalışmaları da 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 en son kaydedilen değere göre filtrelenir. MIN kullanarak çalıştırmaları en düşük ölçüm değerlerine, MAX kullanarak ise 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 ters tırnak işaretiyle çevrelemeniz 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 işlemleri

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

  1. Kebap menü simgesine tıklayın. Kebap menüsünü açmak için.

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

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

  1. Denemede, çalışmanın sol tarafındaki onay kutusu seçeneğine tıklayarak bir veya daha fazla denemeyi seçin.
  2. Sil'e tıklayın.
  3. Çalıştırmanız bir üst çalıştırmaysa, alt çalıştırmaları da silip silmemeye karar verin. Bu seçenek varsayılan olarak belirlenir.
  4. Onaylamak için Sil'e tıklayın. Silinen işlemler 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 işlemleri 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: Çalıştırmaların geri yükleneceği denemenin kimliği.
  • min_timestamp_millis: Geri yükleme işlemleri için UNIX dönemi başlangıcından bu yana milisaniye cinsinden en düşük silme işlemine ait zaman damgası. Yalnızca bu zaman damgası itibariyle veya sonrasında silinen işlemler geri yüklenir.
  • max_runs:Opsiyonel. Pozitif bir tamsayı olup geri yüklenecek maksimum çalıştırma sayısını gösterir. 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"]

Silinme zamanına göre çalışmaları geri yüklemeye yönelik parametreler ve dönüş değeri belirtimleri hakkında bilgi almak için Azure Databricks Deneyler API belgelerine bakın.

Çalışmaları karşılaştır

Ç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 tablo biçiminde 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. Bkz. Grafik ve diyagramları kullanarak MLflow çalıştırmalarını ve modellerini karşılaştırma.

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 Yalnızca farkları göster düğmesini açıp kapatarak gizleyebilirsiniz.

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

Tek bir deneyden yürütmeleri 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 tüm denemelerin çalışmaları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.

Sistem tablolarını kullanarak çalıştırmaları karşılaştır

Denemeler ve çalıştırmalar için MLflow meta verileri, Databricks SQL'den ve Databricks'in deneme verilerinizi analiz etmek için sunduğu tüm göl evi araçlarından yararlanabileceğiniz sistem tablolarında da kullanılabilir. Daha fazla ayrıntı için, MLflow sistem tabloları referansına bakın.

Çalışma alanları arasında çalıştırma 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.