MLflow kullanarak ML yaşam döngüsü yönetimi

Bu makalede, makine öğrenmesi yaşam döngüsü yönetimi için Databricks'te MLflow'un nasıl kullanıldığı açıklanmaktadır. Ayrıca her MLflow bileşenini tanıtır ve bu bileşenlerin Azure Databricks'te nasıl barındırıldığını açıklayan içeriğe bağlantılar içerir.

Databricks'te ML yaşam döngüsü yönetimi yönetilen MLflow tarafından sağlanır. Azure Databricks; kurumsal güvenlik özellikleri, yüksek kullanılabilirlik, deneme ve çalıştırma yönetimi ile not defteri sürümü yakalama gibi diğer Azure Databricks çalışma alanı özellikleriyle tümleştirilmiş tam olarak yönetilen ve barındırılan bir MLflow sürümü sağlar.

İlk kez kullananlar, temel MLflow izleme API'lerini gösteren MLflow denemelerini kullanmaya başlamalıdır.

MLflow nedir?

MLflow, uçtan uca makine öğrenmesi yaşam döngüsünü yönetmeye yönelik açık kaynaklı bir platformdur. Aşağıdaki bileşenlere sahiptir:

  • İzleme: Parametreleri ve sonuçları kaydetmek ve karşılaştırmak için denemeleri izlemenizi sağlar.
  • Modeller: Çeşitli ML kitaplıklarındaki modelleri yönetmenize ve çeşitli model sunma ve çıkarım platformlarına dağıtmanıza olanak tanır.
  • Projeler: ML kodunu diğer veri bilimcileriyle paylaşmak veya üretime aktarmak için yeniden kullanılabilir, yeniden üretilebilir bir biçimde paketlemenize olanak sağlar.
  • Model Kayıt Defteri: Modellerin tam yaşam döngüsü aşaması geçişlerini yönetmek için model depolarını merkezileştirmenize olanak tanır: hazırlama aşamasından üretime, sürüm oluşturma ve açıklama ekleme özellikleriyle. Databricks, Unity Kataloğu'nda Model Kayıt Defteri'nin yönetilen bir sürümünü sağlar.
  • Model Sunma: MLflow modellerini REST uç noktaları olarak barındırmanıza olanak tanır. Databricks, sunulan yapay zeka modellerinizi dağıtmak, yönetmek ve sorgulamak için birleşik bir arabirim sağlar.

MLflow Java, Python, R ve REST API'lerini destekler.

MLflow verileri, platform tarafından yönetilen bir anahtar kullanılarak Azure Databricks tarafından şifrelenir. Yönetilen hizmetler için Müşteri tarafından yönetilen anahtarlar kullanılarak şifreleme desteklenmez.

MLflow izleme

Azure Databricks'te MLflow, makine öğrenmesi ve derin öğrenme modelleri için eğitim çalıştırmalarını izlemeye ve güvenlik altına almaya yönelik tümleşik bir deneyim sunar.

Model yaşam döngüsü yönetimi

MLflow Model Kayıt Defteri , MLflow Modellerinin tüm yaşam döngüsünü yönetmenizi sağlayan merkezi bir model deposu, kullanıcı arabirimi ve API kümesidir. Databricks, Unity Kataloğu'nda MLflow Model Kayıt Defteri'nin barındırılan bir sürümünü sağlar. Unity Kataloğu merkezi model idaresi, çalışma alanları arası erişim, köken ve dağıtım sağlar. Unity Kataloğu'nda model yaşam döngüsünü yönetme hakkında ayrıntılı bilgi için bkz . Unity Kataloğu'nda model yaşam döngüsünü yönetme.

Çalışma alanınız Unity Kataloğu için etkinleştirilmemişse Çalışma Alanı Modeli Kayıt Defteri'ni kullanabilirsiniz.

Model Kayıt Defteri kavramları

  • Model: Model aromasının mlflow.<model-flavor>.log_model yöntemlerinden biriyle günlüğe kaydedilen bir denemeden veya çalıştırmadan günlüğe kaydedilen bir MLflow Modeli. Bir model günlüğe kaydedildikten sonra Model Kayıt Defteri'ne kaydedebilirsiniz.
  • Kayıtlı model: Model Kayıt Defteri'ne kaydedilmiş bir MLflow Modeli. Kayıtlı modelin benzersiz bir adı, sürümleri, model kökeni ve diğer meta verileri vardır.
  • Model sürümü: Kayıtlı bir modelin sürümü. Model Kayıt Defteri'ne yeni bir model eklendiğinde Sürüm 1 olarak eklenir. Aynı model adına kayıtlı her model sürüm numarasını artırır.
  • Model diğer adı: Diğer ad, kayıtlı bir modelin belirli bir sürümüne başvuru olarak adlandırılmış, değiştirilebilir bir addır. Diğer adların tipik kullanım alanları, model eğitim iş akışlarınızda belirli bir ortamda hangi model sürümlerinin dağıtılacağını belirtmek veya belirli bir diğer adı hedefleyen çıkarım iş yükleri yazmaktır. Örneğin, "Sahtekarlık Algılama" kayıtlı modelinizin "Şampiyon" diğer adını üretim trafiğinin çoğunluğuna hizmet etmesi gereken model sürümüne atayabilir ve ardından bu diğer adı hedefleyen çıkarım iş yükleri yazabilirsiniz (yani, "Şampiyon" sürümünü kullanarak tahminlerde bulunabilirsiniz).
  • Model aşaması (yalnızca çalışma alanı modeli kayıt defteri): Model sürümüne bir veya daha fazla aşama atanabilir. MLflow, yaygın kullanım örnekleri için önceden tanımlanmış aşamalar sağlar: Yok, Hazırlama, Üretim ve Arşivlenmiş. Uygun izinle, bir model sürümünü aşamalar arasında geçiş yapabilir veya model aşaması geçişi isteyebilirsiniz. Model sürümü aşamaları Unity Kataloğu'nda kullanılmaz.
  • Açıklama: Modelin amacına açıklama ve algoritma açıklaması, kullanılan veri kümesi veya metodoloji gibi ekip için yararlı bilgiler de dahil olmak üzere açıklama ekleyebilirsiniz.

Örnek not defterleri

Bir rüzgar grubunun günlük güç çıkışını tahmin eden bir makine öğrenmesi uygulaması oluşturmak için Model Kayıt Defteri'nin nasıl kullanılacağını gösteren bir örnek için aşağıdakilere bakın:

Model dağıtımı

Databricks Model Sunma , yapay zeka modellerini dağıtmak, yönetmek ve sorgulamak için birleşik bir arabirim sağlar. Hizmet ettiğiniz her model, web veya istemci uygulamanızla tümleştirebileceğiniz bir REST API olarak kullanılabilir.

Model sunma, aşağıdakilerin sunulmasını destekler:

  • Özel modeller. Bunlar MLflow biçiminde paketlenmiş Python modelleridir. Bunlar Unity Kataloğu'na veya çalışma alanı modeli kayıt defterine kaydedilebilir. Örnek olarak scikit-learn, XGBoost, PyTorch ve Hugging Face transformatör modelleri verilebilir.
  • Temel Model API'leri tarafından kullanıma sunulan en yeni açık modeller. Bu modeller, iyileştirilmiş çıkarımları destekleyen, seçilmiş temel model mimarileridir. Llama-2-70B-chat, BGE-Large ve Mistral-7B gibi temel modeller, belirteç başına ödeme fiyatlandırmasıyla anında kullanılabilir ve performans garantileri ve ince ayarlı model varyasyonları gerektiren iş yükleri sağlanan aktarım hızıyla dağıtılabilir.
  • Dış modeller. Bunlar Databricks dışında barındırılan modellerdir. Örnek olarak OpenAI GPT-4, Anthropic'in Claude ve diğerleri gibi temel modeller verilebilir. Dış modellere hizmet veren uç noktalar merkezi olarak yönetilebilir ve müşteriler onlar için hız sınırları ve erişim denetimleri oluşturabilir.

Çevrimdışı çıkarım için MLflow modellerini de dağıtabilirsiniz. Bkz . Toplu çıkarım için modelleri dağıtma.