Dağıtım için model paketleri (önizleme)

Bir makine öğrenmesi modelini eğitdikten sonra, başkalarının tahminlerini kullanabilmesi için dağıtmanız gerekir. Ancak, bir modeli dağıtmak için yalnızca ağırlıklardan veya modelin yapıtlarından fazlası gerekir. Model paketleri, Azure Machine Learning'de bir makine öğrenmesi modelini bir sunum platformuna dağıtmak için gereken tüm bağımlılıkları toplamanıza olanak tanıyan bir özellik. Paketleri çalışma alanları arasında ve hatta Azure Machine Learning'in dışına taşıyabilirsiniz.

Önemli

Bu özellik şu anda genel önizlemededir. Bu önizleme sürümü hizmet düzeyi sözleşmesi olmadan sağlanır ve üretim iş yükleri için bu sürümü önermeyiz. Bazı özellikler desteklenmiyor olabileceği gibi özellikleri sınırlandırılmış da olabilir.

Daha fazla bilgi için bkz. Microsoft Azure Önizlemeleri Ek Kullanım Koşulları.

Model paketi nedir?

Modeli dağıtmadan önce en iyi yöntem olarak modelin başarıyla çalışması için gereken tüm bağımlılıkların toplanması ve çözümlenmesi gerekir; böylece modeli yeniden üretilebilir ve sağlam bir yaklaşımla dağıtabilirsiniz.

Screenshot that shows the dependencies collected during a model package operation.

Genellikle bir modelin bağımlılıkları şunlardır:

  • Modelinizin yürütüldiği temel görüntü veya ortam.
  • Modelin düzgün çalışması için bağlı olduğu Python paketlerinin ve bağımlılıklarının listesi.
  • Modelinizin çıkarım oluşturması gerekebilecek ek varlıklar. Bu varlıklar etiket haritalarını ve ön işleme parametrelerini içerebilir.
  • Çıkarım sunucusunun isteklere hizmet verebilmek için gereken yazılım; örneğin, flask sunucusu veya TensorFlow Serving.
  • Çıkarım yordamı (gerekirse).

Tüm bu öğelerin daha sonra hizmet altyapısına dağıtılması için toplanması gerekir. Tüm bağımlılıkları topladıktan sonra oluşturulan sonuçta elde edilen varlık model paketi olarak adlandırılır.

Paketleme modellerinin avantajları

Dağıtımdan önce modelleri paketlemek aşağıdaki avantajlara sahiptir:

  • Yeniden üretilebilirlik: Tüm bağımlılıklar dağıtım zamanı yerine paketleme zamanında toplanır. Bağımlılıklar çözümlendikten sonra, bağımlılıkların zaten çözülmüş olduğundan emin olurken paketi gerektiği kadar dağıtabilirsiniz.
  • Daha hızlı çakışma çözümü: Azure Machine Learning, modeli paketlerken eksik python paketi gibi bağımlılıklarla ilgili tüm yanlış yapılandırmaları algılar. Bu tür sorunları keşfetmek için modeli dağıtmanız gerekmez.
  • Çıkarım sunucusuyla daha kolay tümleştirme: Kullandığınız çıkarım sunucusunun belirli yazılım yapılandırmalarına (örneğin, Torch Serve paketi) ihtiyacı olabileceğinden, bu tür yazılımlar modelinizin bağımlılıklarıyla çakışmalar oluşturabilir. Azure Machine Learning'deki model paketleri, modeli dağıtmadan önce çakışmaları algılamanıza yardımcı olmak için çıkarım sunucusunun gerektirdiği bağımlılıkları ekler.
  • Taşınabilirlik: Kayıt defterlerini kullanarak Azure Machine Learning model paketlerini bir çalışma alanından diğerine taşıyabilirsiniz. Ayrıca Azure Machine Learning dışında dağıtılabilir paketler de oluşturabilirsiniz.
  • Özel ağlarla MLflow desteği: MLflow modellerinde Azure Machine Learning, modellerin çalışması için gerekli Python paketlerini dinamik olarak yükleyebilmek için bir İnternet bağlantısı gerektirir. MLflow modellerini paketleyerek, MLflow model paketinin dağıtılması için İnternet bağlantısı gerektirmemesi için bu Python paketleri model paketleme işlemi sırasında çözümlenir.

Bahşiş

Dağıtımdan önce bir MLflow modelini paketlemek kesinlikle önerilir ve hatta giden ağ bağlantısı olmayan uç noktalar için bile gereklidir. MLflow modeli, modelin kendi içindeki bağımlılıklarını gösterir ve bu sayede paketlerin dinamik yüklenmesi gerekir. Bir MLflow modeli paketlendiğinde, bu dinamik yükleme dağıtım zamanı yerine paketleme zamanında gerçekleştirilir.

Model paketlerinin dağıtımı

Model paketlerini çevrimiçi uç noktalara giriş olarak sağlayabilirsiniz. Tüm bağımlılıklar paketleme işlemi sırasında toplanmış olacağından, model paketlerinin kullanılması dağıtım zamanında hata olasılığını azaltarak MLOps iş akışlarınızı kolaylaştırmaya yardımcı olur. Ayrıca, şirket içinde veya bulutta Azure Machine Learning dışında herhangi bir yere dağıtmanız için model paketini docker görüntüleri oluşturacak şekilde yapılandırabilirsiniz.

Screenshot that shows all the possible targets for a model package.

Dağıtımdan önce paketle

Model paketi kullanarak dağıtmanın en basit yolu, dağıtımı yürütmeden önce Azure Machine Learning'e bir model paketi dağıtmayı belirtmektir. Azure CLI, Azure Machine Learning SDK'sı veya Azure Machine Learning stüdyosu kullanarak çevrimiçi uç noktada dağıtım oluştururken model paketleme kullanımını aşağıdaki gibi belirtebilirsiniz:

Dağıtım oluştururken bayrağını --with-package kullanın:

az ml online-deployment create --with-package -f model-deployment.yml -e $ENDPOINT_NAME

Azure Machine Learning önce modeli paketler ve ardından dağıtımı yürütür.

Dekont

Paketleri kullanırken veya pip bağımlılıklarıyla conda bir temel ortam belirtirseniz çıkarım sunucusunun (azureml-inference-server-http) bağımlılıklarını eklemeniz gerekmez. Bunun yerine, bu bağımlılıklar sizin için otomatik olarak eklenir.

Paketlenmiş model dağıtma

Doğrudan Bir Çevrimiçi Uç Noktaya paketlenmiş bir modeli dağıtabilirsiniz. Bu uygulama sonuçların yeniden üretilebilirliğini sağlar ve en iyi yöntemdir. Bkz. Modelleri Çevrimiçi Uç Noktalara paketleme ve dağıtma.

Paketi Azure Machine Learning dışında dağıtmak istiyorsanız bkz . Azure Machine Learning dışında modelleri paketleme ve dağıtma.

Sonraki adım