Aracılığıyla paylaş


Unity Kataloğu'nda ML iş akışlarını hedef modellere yükseltme

Bu makalede, Unity Kataloğu'nda ML iş akışlarını hedef modellere geçirme ve yükseltme işlemleri açıklanmaktadır.

Gereksinimler

Başlamadan önce Gereksinimler'deki gereksinimleri karşıladığınızdan emin olun. Özellikle model eğitimi, dağıtımı ve çıkarım iş akışlarınızı yürütmek için kullanılan kullanıcıların veya sorumluların Unity Kataloğu'nda kayıtlı bir modelde gerekli ayrıcalıklara sahip olduğundan emin olun:

  • Eğitim: Kayıtlı modelin sahipliği (yeni model sürümleri oluşturmak için gereklidir), artı ve USE CATALOGUSE SCHEMA kapsayan katalog ve şema üzerindeki ayrıcalıklar.
  • Dağıtım: Kayıtlı modelin sahipliği (modelde diğer adları ayarlamak için gereklidir), artı USE CATALOG ve USE SCHEMA kapsayan katalog ve şema üzerindeki ayrıcalıklar.
  • Çıkarım: EXECUTE Kayıtlı modelde ayrıcalık (model sürümleriyle çıkarım yapmak ve okumak için gereklidir), artı ve USE CATALOG 'KAPSAYAN katalog ve şemada ŞEMA AYRıCALıKLARINI KULLAN.

Paralel eğitim, dağıtım ve iş akışları oluşturma

Model eğitimi ve çıkarım iş akışlarını Unity Kataloğu'na yükseltmek için Databricks, Unity Kataloğu'ndaki modellerden yararlanan paralel bir eğitim, dağıtım ve çıkarım işlem hattı oluşturduğunuz artımlı bir yaklaşım önerir. Unity Kataloğu'nu kullanarak sonuçları rahatça elde ettiğinizde, toplu çıkarım çıktısını okumak için aşağı akış tüketicilerini değiştirebilir veya uç noktaları sunma konusunda Unity Kataloğu'ndaki modellere yönlendirilen trafiği artırabilirsiniz.

Model eğitim iş akışı

Model eğitim iş akışınızı kopyalama . Ardından şunların olduğundan emin olun:

  1. İş akışı kümesinin Unity Kataloğu'na erişimi vardır ve Gereksinimler bölümünde açıklanan gereksinimleri karşılar.
  2. İş akışını çalıştıran sorumlu, Unity Kataloğu'nda kayıtlı bir model üzerinde gerekli izinlere sahiptir.

Ardından, kopyalanan iş akışında model eğitim kodunu değiştirin. İş akışı tarafından çalıştırılan not defterini kopyalamanız veya kopyalanan iş akışında yeni bir git dalı oluşturup hedeflemeniz gerekebilir. MLflow'un gerekli sürümünü yüklemek, istemciyi eğitim kodunuzda Unity Kataloğu'nu hedefleyecek şekilde yapılandırmak ve modelleri Unity Kataloğu'na kaydetmek için model eğitim kodunu güncelleştirmek için bu adımları izleyin.

Model dağıtımı iş akışı

Unity Kataloğu'na erişimi etkinleştirmek üzere işlem yapılandırmasını güncelleştirmek için Model eğitim iş akışındakine benzer adımları izleyerek model dağıtım iş akışınızı kopyalayabilirsiniz.

Kopyalanan iş akışının sahibi olan sorumlunun gerekli izinlere sahip olduğundan emin olun. Dağıtım iş akışınızda model doğrulama mantığınız varsa, UC'den model sürümlerini yüklenecek şekilde güncelleştirin. Üretim modeli dağıtımlarını yönetmek için diğer adları kullanın.

Model çıkarımı iş akışı

Toplu çıkarım iş akışı

Toplu çıkarım iş akışını kopyalamak ve Unity Kataloğu'na erişimi etkinleştirmek için işlem yapılandırmasını güncelleştirmek için Model eğitim iş akışındakine benzer adımları izleyin. Kopyalanan toplu çıkarım işini çalıştıran sorumlunun çıkarım için modeli yüklemek için gerekli izinlere sahip olduğundan emin olun.

Model sunma iş akışı

Mozaik Yapay Zeka Modeli Sunma kullanıyorsanız mevcut uç noktanızı kopyalamanız gerekmez. Bunun yerine, Unity Kataloğu'ndaki modellere trafiğin küçük bir bölümünü yönlendirmek için trafik bölme özelliğinden yararlanabilirsiniz.

İlk olarak, modeli sunan uç noktaya sahip olan sorumlunun çıkarım için modeli yüklemek için gerekli izinlere sahip olduğundan emin olun. Ardından, Unity Kataloğu'ndaki model sürümlerine küçük bir trafik yüzdesi atamak için kopyalanan model dağıtım iş akışınızı güncelleştirin.

Modeli ortamlar arasında yükseltme

Databricks, ML işlem hatlarını kod olarak dağıtmanızı önerir. Bu, tüm üretim modelleri bir üretim ortamındaki otomatik eğitim iş akışları aracılığıyla üretilebildiği için modelleri ortamlar arasında yükseltme gereksinimini ortadan kaldırır.

Ancak bazı durumlarda, modelleri ortamlar arasında yeniden eğitmek çok pahalı olabilir. Bunun yerine, model sürümlerini ortamlar arasında yükseltmek için Unity Kataloğu'ndaki kayıtlı modeller arasında kopyalayabilirsiniz.

Aşağıdaki örnek kodu yürütmek için aşağıdaki ayrıcalıklara ihtiyacınız vardır:

  • USE CATALOGstaging ve prod kataloglarında.
  • USE SCHEMAstaging.ml_team ve prod.ml_team şemalarında.
  • EXECUTE üzerinde staging.ml_team.fraud_detection.

Ayrıca, kayıtlı modelin prod.ml_team.fraud_detectionsahibi olmanız gerekir.

Aşağıdaki kod parçacığı, MLflow 2.8.0 ve üzeri sürümlerde kullanılabilen MLflow İstemci API'sini kullanırcopy_model_version.

import mlflow
mlflow.set_registry_uri("databricks-uc")

client = mlflow.tracking.MlflowClient()
src_model_name = "staging.ml_team.fraud_detection"
src_model_version = "1"
src_model_uri = f"models:/{src_model_name}/{src_model_version}"
dst_model_name = "prod.ml_team.fraud_detection"
copied_model_version = client.copy_model_version(src_model_uri, dst_model_name)

Model sürümü üretim ortamında olduktan sonra, gerekli dağıtım öncesi doğrulamayı gerçekleştirebilirsiniz. Ardından, diğer adları kullanarak dağıtım için model sürümünü işaretleyebilirsiniz.

client = mlflow.tracking.MlflowClient()
client.set_registered_model_alias(name="prod.ml_team.fraud_detection", alias="Champion", version=copied_model_version.version)

Yukarıdaki örnekte, yalnızca kayıtlı modelden staging.ml_team.fraud_detection okuyabilen ve kayıtlı modele prod.ml_team.fraud_detection yazabilen kullanıcılar hazırlama modellerini üretim ortamına yükseltebilir. Aynı kullanıcılar, üretim ortamında dağıtılan model sürümlerini yönetmek için diğer adları da kullanabilir. Model yükseltmeyi ve dağıtımı yönetmek için başka kurallar veya ilkeler yapılandırmanız gerekmez.

Bu akışı özelleştirerek model sürümünü kurulumunuzla eşleşen , qave prodgibi devbirden çok ortamda yükseltebilirsiniz. Erişim denetimi her ortamda yapılandırıldığı gibi uygulanır.

Model dağıtımı için el ile onay için iş web kancalarını kullanma

Databricks, model dağıtım işlemi sırasında uygun denetimleri ve testleri kullanarak model dağıtımını mümkünse otomatikleştirmenizi önerir. Ancak, üretim modellerini dağıtmak için el ile onaylar gerçekleştirmeniz gerekiyorsa, model eğitim işiniz başarıyla tamamlandıktan sonra dış CI/CD sistemlerine çağrı yapmak üzere iş web kancalarını kullanarak modeli dağıtmak için el ile onay isteyebilirsiniz. El ile onay verildikten sonra CI/CD sisteminiz model sürümünü trafiğe hizmet vermek için dağıtabilir, örneğin üzerindeki "Şampiyon" diğer adını ayarlayarak.