Modeller için MLflow 3 kullanmaya başlama

Uyarı

Bu makalede, geleneksel makine öğrenmesi ve derin öğrenme modellerine yönelik MLflow 3 özelliklerine odaklanmaktadır. MLflow 3 ayrıca GenAI uygulama geliştirme için izleme, değerlendirme ve insan geri bildirim toplama gibi kapsamlı özellikler de sunar. Ayrıntılar için bkz. GenAI için MLflow 3 .

Bu makale, makine öğrenmesi modelleri geliştirmek için MLflow 3 kullanmaya başlamanızı sağlar. Modeller için MLflow 3'ü yüklemeyi açıklar ve başlamak için çeşitli tanıtım not defterleri içerir. Ayrıca, modeller için MLflow 3'ün yeni özelliklerini daha ayrıntılı olarak kapsayan sayfaların bağlantılarını içerir.

Modeller için MLflow 3 nedir?

Azure Databricks'te modeller için MLflow 3, makine öğrenmesi modelleri için en son düzey deneme izleme, performans değerlendirmesi ve üretim yönetimi sunar. MLflow 3, çekirdek izleme kavramlarını koruyarak MLflow 2.x'ten geçişi hızlı ve basit hale getirirken önemli yeni özellikler sunar.

GenAI için MLflow 3 nedir?

Modeller için MLflow 3'ün ötesinde, GenAI için MLflow 3 aracı ve GenAI uygulama geliştirme için çok çeşitli yeni özellikler ve geliştirmeler sunar. Kapsamlı bir genel bakış için bkz. GenAI için MLflow 3.

GenAI için MLflow 3'teki temel özellikler şunlardır:

  • İzleme ve gözlemlenebilirlik - OpenAI, LangChain, LlamaIndex ve Antropik gibi 20'den fazla çerçeve için otomatik izleme ile GenAI uygulamaları için uçtan uca gözlemlenebilirlik
  • Değerlendirme ve izleme - Geliştirmeden üretime kadar kaliteyi ölçmeye ve geliştirmeye yönelik kapsamlı GenAI değerlendirme özellikleri. Yerleşik LLM yargıçlarını, özelleştirilebilir hakimleri, değerlendirme veri kümesi yönetimini ve gerçek zamanlı izlemeyi içerir.
  • İnsan geri bildirim toplama - Alan uzmanı geri bildirimleri toplamak ve aracıları etkileşimli olarak test etmek için özelleştirilebilir gözden geçirme ara yüzü, gözden geçirme ilerlemesini düzenlemek ve izlemek için yapılandırılmış etiketleme oturumları
  • Prompt Registry - Unity Kataloğu entegrasyonu ile merkezi sürüm oluşturma, yönetim ve A/B testi

Modeller için MLflow 3'in MLflow 2'den farkı nedir?

Azure Databricks'te modeller için MLflow 3 şunları sağlar:

  • Bir geliştirme not defterindeki etkileşimli sorgulardan üretim toplu işlemine veya gerçek zamanlı sunum dağıtımlarına kadar tüm ortamlarda modellerinizin performansını merkezi olarak izleyin ve analiz edin.

Model izleme arayüzü.

  • Unity Kataloğu'ndaki model sürümü sayfasından ve REST API'den tüm çalışma alanları ve denemelerde model ölçümlerini ve parametrelerini görüntüleyin ve erişin.

Unity Kataloğu'nda birden çok çalıştırmanın ölçümlerini gösteren model sürümü sayfası.

  • Unity Kataloğu'nu kullanarak değerlendirme ve dağıtım iş akışlarını düzenleyin ve modelinizin her sürümü için kapsamlı durum günlüklerine erişin.

Aşamalı dağıtım ve ölçüm koleksiyonu içeren karmaşık bir dağıtım işi.

Bu özellikler makine öğrenmesi modeli geliştirme, değerlendirme ve üretim dağıtımlarını basitleştirir ve kolaylaştırır.

Kaydedilen Modellerin Günlüğü

MLflow 3'ün yeni işlevlerinin çoğu yeni bir LoggedModelkavramından türetilir. Derin öğrenme ve geleneksel makine öğrenmesi modelleri için, LoggedModels bir eğitim çalıştırması tarafından üretilen bir model kavramını yükselterek modeli farklı eğitim ve değerlendirme çalıştırmaları genelinde model yaşam döngüsünü izlemek için ayrılmış bir nesne olarak oluşturur.

LoggedModels geliştirme aşamaları (eğitim ve değerlendirme) ve ortamlar (geliştirme, hazırlama ve üretim) genelinde ölçümleri, parametreleri ve izlemeleri yakalayın. a LoggedModel , Unity Kataloğu'na Model Sürümü olarak yükseltildiğinde, özgün LoggedModel sürümdeki tüm performans verileri UC Model Sürümü sayfasında görünür hale gelir ve tüm çalışma alanları ve denemelerde görünürlük sağlar. Diğer ayrıntılar için bkz. MLflow Günlük Modelleriyle Modelleri İzleme ve Karşılaştırma.

Dağıtım işleri

MLflow 3 ayrıca dağıtım işi kavramını da tanıtır. Dağıtım görevleri, değerlendirme, onay ve dağıtım gibi adımlar dahil olmak üzere model yaşam döngüsünü yönetmek için Lakeflow Görevleri'ni kullanır. Bu model iş akışları Unity Kataloğu tarafından yönetilir ve tüm olaylar Unity Kataloğu'ndaki model sürümü sayfasında bulunan bir etkinlik günlüğüne kaydedilir.

MLflow 2.x'ten geçiş

MLflow 3'te birçok yeni özellik olsa da, denemelerin ve çalıştırmaların temel kavramlarının yanı sıra parametreler, etiketler ve ölçümler gibi meta verileri de aynı kalır. MLflow 2.x'ten 3.0'a geçiş çok basittir ve çoğu durumda en az kod değişikliği gerektirir. Bu bölümde, MLflow 2.x ile arasındaki bazı önemli farklar ve sorunsuz bir geçiş için bilmeniz gerekenler vurgulanır.

Kayıt Modelleri

2.x'te modelleri günlüğe kaydettiğinizde artifact_path parametresi kullanılır.

with mlflow.start_run():
    mlflow.pyfunc.log_model(
        artifact_path="model",
        python_model=python_model,
        ...
    )

MLflow 3'te, modelin daha sonra ada göre aranabilmesi için bunun yerine name kullanın. artifact_path Parametresi hala destekleniyor ancak kullanım dışı bırakıldı. Buna ek olarak, modeller MLflow 3'te birinci sınıf vatandaşlar haline geldiğinden, MLflow artık bir modeli günlüğe kaydetme sırasında bir çalıştırmanın etkin olmasını gerektirmez. Bir çalışma başlatmadan modeli doğrudan kaydedebilirsiniz.

mlflow.pyfunc.log_model(
    name="model",
    python_model=python_model,
    ...
)

Model nesneleri

MLflow 2.x'te model yapıtları çalıştırmanın yapıt yolu altında çalıştırma yapıtları olarak depolanır. MLflow 3'te, model yapıtları artık modelin yapıt yolunun altında farklı bir konumda depolanır.

# MLflow 2.x
experiments/
  └── <experiment_id>/
    └── <run_id>/
      └── artifacts/
        └── ... # model artifacts are stored here
# MLflow 3
experiments/
  └── <experiment_id>/
    └── models/
      └── <model_id>/
        └── artifacts/
          └── ... # model artifacts are stored here

mlflow.<model-flavor>.load_model ile modelleri yüklemeniz, herhangi bir sorun yaşamamak için mlflow.<model-flavor>.log_model tarafından döndürülen model URI'sini kullanmanız önerilir. Bu model URI'si models:/<model_id> biçimindedir ( runs:/<run_id>/<artifact_path> MLflow 2.x yerine) ve yalnızca model kimliği kullanılabiliyorsa el ile de oluşturulabilir.

Model kayıt sistemi

MLflow 3'te, varsayılan kayıt defteri URI'sinin şimdi databricks-ucolduğu anlamına gelir ve Unity Kataloğu'ndaki MLflow Model Kayıt Defteri kullanılır (daha fazla ayrıntı için bkz. Unity Kataloğu'nda model yaşam döngüsünü yönetme ). Unity Kataloğu'na kaydedilen modellerin adları biçimindedir <catalog>.<schema>.<model>. gibi mlflow.register_modelkayıtlı bir model adı gerektiren API'ler çağrılırken bu tam, üç düzeyli ad kullanılır.

Unity Kataloğu etkinleştirilmiş ve varsayılan kataloğu Unity Kataloğu'nda bulunan çalışma alanları için, ad olarak <model> kullanabilirsiniz ve varsayılan katalog ve şema otomatik olarak belirlenir (MLflow 2.x'teki davranışta herhangi bir değişiklik olmaz). Çalışma alanınızda Unity Kataloğu etkinleştirilmişse ancak varsayılan kataloğu Unity Kataloğu'nda olacak şekilde yapılandırılmamışsa, tam üç düzeyli adı belirtmeniz gerekir.

Databricks, modellerinizin yaşam döngüsünü yönetmek için Unity Kataloğu'nda MLflow Model Kayıt Defteri'nin kullanılmasını önerir.

Çalışma Alanı Modeli Kayıt Defteri'ni (eski) kullanmaya devam etmek istiyorsanız, kayıt defteri URI'sini databricksolarak ayarlamak için aşağıdaki yöntemlerden birini kullanın:

Diğer önemli değişiklikler

  • MLflow 3 istemcileri, MLflow 2.x istemcileriyle günlüğe kaydedilen tüm çalıştırmaları, modelleri ve izlemeleri yükleyebilir. Ancak tersine olan mutlaka doğru değildir, bu nedenle MLflow 3 istemcileriyle günlüğe kaydedilen modeller ve iz dosyaları daha eski 2.x istemci sürümleriyle yüklenemeyebilir.
  • mlflow.evaluate API kullanım dışı bırakıldı. Geleneksel ML veya derin öğrenme modelleri için, özgün API mlflow.models.evaluate ile tam uyumluluğu koruyan mlflow.evaluate kullanın. LLM'ler veya GenAI uygulamaları için bunun yerine API'yi mlflow.genai.evaluate kullanın.
  • run_uuid nesnedeki RunInfo özniteliği kaldırıldı. Bunun yerine kodunuzda kullanın run_id .

MLflow 3'ü yükleme

MLflow 3'i kullanmak için paketi doğru (>= 3.0) sürümü kullanacak şekilde güncelleştirmeniz gerekir. Not defteri her çalıştırıldığında aşağıdaki kod satırları yürütülmelidir:

%pip install mlflow>=3.0 --upgrade
dbutils.library.restartPython()

Örnek not defterleri

Aşağıdaki sayfalarda, geleneksel ML ve derin öğrenme için MLflow 3 model izleme iş akışı gösterilmektedir. Her sayfada örnek bir not defteri bulunur.

Sınırlama

Spark model günlüğü (mlflow.spark.log_model) MLflow 3'te çalışmaya devam etse de yeni LoggedModel kavramını kullanmamaktadır. Spark model günlüğü ile kaydedilen modeller MLflow 2.x çalıştırmaları ve yapıtlarını kullanmaya devam eder.

Ek kaynaklar

MLflow 3'ün yeni özellikleri hakkında daha fazla bilgi edinmek için aşağıdaki makalelere bakın: