Aracılığıyla paylaş


MLflow çalıştırmalarıyla eğitim kodunu yönetme

Bu makalede makine öğrenmesi eğitimini yönetmek için MLflow çalıştırmaları açıklanmaktadır. Ayrıca denemeler arasında çalıştırmaları yönetme ve karşılaştırma yönergelerini de içerir.

MLflow çalıştırması , model kodunun tek bir yürütülmesine karşılık gelir. Her çalıştırma aşağıdaki bilgileri kaydeder:

  • Kaynak: Çalıştırmayı başlatan not defterinin adı veya çalıştırma için proje adı ve giriş noktası.
    • Sürüm: Not defteri bir Databricks Git klasöründe depolanıyorsa veya bir MLflow Projesinden çalıştırılıyorsa Git işleme karması. Aksi takdirde, not defteri düzeltmesi.
    • Başlangıç ve bitiş saati: Çalıştırmanın başlangıç ve bitiş saati.
    • Parametreler: Anahtar-değer çiftleri olarak kaydedilen model parametreleri. Hem anahtarlar hem de değerler dizelerdir.
    • Ölçümler: Anahtar-değer çiftleri olarak kaydedilen model değerlendirme ölçümleri. Değer sayısaldır. Çalıştırma boyunca her ölçüm güncelleştirilebilir (örneğin, modelinizin kayıp işlevinin nasıl yakınsayarak çalıştığını izlemek için) ve MLflow kayıtları ile ölçümün geçmişini görselleştirmenize olanak tanır.
    • Etiketler: Anahtar-değer çiftleri olarak kaydedilen meta verileri çalıştırın. Bir çalıştırma tamamlandıktan sonra ve sırasında etiketleri güncelleştirebilirsiniz. Hem anahtarlar hem de değerler dizelerdir.
    • Yapıtlar: Herhangi bir biçimdeki çıkış dosyaları. Örneğin, görüntüleri, modelleri (örneğin, pickled scikit-learn modeli) ve veri dosyalarını (örneğin, bir Parquet dosyası) yapıt olarak kaydedebilirsiniz.

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ırmaları görüntüleme

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

Deneme sayfasındaki çalıştırmalar tablosunda çalıştırmanın başlangıç zamanına tıklayın.

Not defterinde Deneme Çalıştırmaları kenar çubuğunda çalıştırmanın tarih ve saatinin yanındaki öğesine tıklayın Dış Bağlantı .

Çalıştırma ekranında çalıştırma için kullanılan parametreler, çalıştırmadan kaynaklanan ölçümler ve etiketler veya notlar gösterilir. Bu çalıştırma için Notlar, Parametreler, Ölçümler veya Etiketler'i görüntülemek için etiketin soluna tıklayınsağ işaret eden ok.

Ayrıca bu ekrandaki bir çalıştırmadan kaydedilen yapıtlara da erişebilirsiniz.

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

Tahmin için kod parçacıkları

Bir çalıştırmadan bir modeli günlüğe kaydederseniz, model bu sayfanın Yapıtlar bölümünde görünür. Spark ve pandas DataFrames üzerinde tahminlerde bulunmak üzere modelin nasıl yükleneceğini ve kullanılacağını gösteren kod parçacıklarını görüntülemek için model adına tıklayın.

kod parçacıklarını tahmin edin

Çalıştırma için kullanılan not defterini veya Git projesini görüntüleme

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

  • Deneme 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ırma bir Git projesinden uzaktan başlatıldıysa, çalıştırmada kullanılan projenin belirli bir sürümünü açmak için Git İşleme alanındaki bağlantıya tıklayın. Kaynak alanındaki bağlantı, çalıştırmada kullanılan Git projesinin ana dalını açar.

Ç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ında, henüz açık değilse öğesine tıklayınEtiket simgesi. Etiketler tablosu görüntülenir.

    etiket tablosu

  2. Ad ve Değer alanlarına tıklayın ve etiketinizin anahtarını ve değerini yazın.

  3. Ekle'yi tıklatın.

    etiket ekle

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

Mevcut bir etiketi düzenlemek veya silmek için Eylemler sütunundaki simgeleri kullanın.

etiket eylemleri

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

Çalıştırmayı Yeniden Oluştur'a tıklayarak çalıştırmanın tam yazılım ortamını yeniden 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ümede yüklü kitaplıkları görmek için Kitaplıkları Görüntüle'ye tıklayın. Özgün kümede olduğu gibi aynı kitaplıkları yüklemeyi önemsemiyorsanız, bu seçeneğin işaretini kaldırın.

Çalıştırmaları yönetme

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

Bir çalıştırmayı yeniden adlandırmak için çalıştırma sayfasının sağ üst köşesine tıklayın üç düğme simgesi ve Yeniden Adlandır'ı seçin.

Filtre çalıştırmaları

Çalıştırmaları parametre veya ölçüm değerlerine göre arayabilirsiniz. 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 Ara'ya tıklayı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

  • Ç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"
    

Ayrıca çalıştırmaları durumlarına göre (Etkin veya Silinmiş) ve bir model sürümünün çalıştırmayla ilişkilendirilip ilişkilendirildiğine göre filtreleyebilirsiniz. Bunu yapmak için sırasıyla Durum ve Saat Oluşturuldu açılan menülerinden seçimlerinizi yapın.

Filtre çalıştırmaları

İndirme çalıştırmaları

  1. Bir veya daha fazla çalıştırma seçin.

  2. CSV İndir'e tıklayın. Aşağıdaki alanları içeren bir CSV dosyası indirilir:

    Run ID,Name,Source Type,Source Name,User,Status,<parameter1>,<parameter2>,...,<metric1>,<metric2>,...
    

Çalıştırmaları silme

Aşağıdaki adımlarla Databricks Machine Learning kullanıcı arabirimini kullanarak ç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:Isteğe bağlı. 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

Databricks Machine Learning kullanıcı arabirimini kullanarak daha önce silinmiş çalıştırmaları geri yükleyebilirsiniz.

  1. Deneme sayfasında, silinen çalıştırmaları görüntülemek için Durum alanında Silinmiş'i 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ı görüntülemek için Durum alanında Etkin'i seçin.

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:Isteğe bağlı. 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 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.