Azure Machine Learning dışında modelleri paketleme ve dağıtma (önizleme)
Model paketleri oluşturarak (önizleme) çevrimiçi hizmet için Azure Machine Learning dışında model dağıtabilirsiniz. Azure Machine Learning, bir makine öğrenmesi modelini bir hizmet platformuna dağıtmak için gereken tüm bağımlılıkları toplayan bir model paketi oluşturmanıza olanak tanır. Model paketini çalışma alanları arasında ve hatta Azure Machine Learning'in dışına taşıyabilirsiniz. Model paketleri hakkında daha fazla bilgi edinmek için bkz . Dağıtım (önizleme) için model paketleri.
Ö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ı.
Bu makalede, bir modeli paketlemeyi ve bir Azure Uygulaması Hizmetine dağıtmayı öğreneceksiniz.
Önkoşullar
Bu makaledeki adımları takip etmeden önce aşağıdaki önkoşullara sahip olduğunuzdan emin olun:
Azure aboneliği. Azure aboneliğiniz yoksa başlamadan önce ücretsiz bir hesap oluşturun. Azure Machine Learning'in ücretsiz veya ücretli sürümünü deneyin.
Azure Machine Learning çalışma alanı. Yoksa, oluşturmak için Çalışma alanlarını yönetme makalesindeki adımları kullanın.
Dekont
Özel bağlantı özellikli çalışma alanları, Azure Machine Learning dışında dağıtım için paketleme modellerini desteklemez.
Azure Machine Learning’deki işlemlere erişim vermek için Azure rol tabanlı erişim denetimleri (Azure RBAC) kullanılır. Bu makaledeki adımları gerçekleştirmek için kullanıcı hesabınıza Azure Machine Learning çalışma alanı için sahip veya katkıda bulunan rolü ya da özel bir rol atanmalıdır. Daha fazla bilgi için bkz . Azure Machine Learning çalışma alanına erişimi yönetme.
Sisteminizi hazırlama
Sisteminizi hazırlamak için bu adımları izleyin.
Bu makaledeki örnek, azureml-examples deposunda yer alan kod örneklerini temel alır. YAML ve diğer dosyaları kopyalamak/yapıştırmak zorunda kalmadan komutları yerel olarak çalıştırmak için önce depoyu kopyalayın ve ardından dizinleri klasöre değiştirin:
git clone https://github.com/Azure/azureml-examples --depth 1 cd azureml-examples/cli
Bu makalede, klasör uç noktaları/online/deploy-with-packages/mlflow-model içindeki örnek kullanılır.
çalışmanızı gerçekleştireceğiniz Azure Machine Learning çalışma alanına Bağlan.
Paketler, modelin çalışma alanınıza veya Azure Machine Learning kayıt defterine kaydedilmesini gerektirir. Bu örnekte, depoda modelin yerel bir kopyası vardır, bu nedenle modeli yalnızca çalışma alanında kayıt defterinde yayımlamanız gerekir. Dağıtmaya çalıştığınız model zaten kayıtlıysa bu adımı atlayabilirsiniz.
Azure Uygulaması Hizmetine model paketi dağıtma
Bu bölümde, daha önce kaydedilmiş MLflow modelini paketleyip Azure Uygulaması Hizmeti'ne dağıtacaksınız.
Azure Machine Learning dışında bir model dağıtmak için paket belirtimi oluşturulması gerekir. Azure Machine Learning ile bağlantısı tamamen kesilmiş bir paket oluşturmak için model yapılandırmasında modu belirtin
copy
. modu,copy
pakete paketin içindeki yapıtları kopyalamasını söyler. Aşağıdaki kod, model yapılandırması için kopyalama modunun nasıl belirtileceğini gösterir:Paket YAML belirtimi oluşturma:
package-external.yml
$schema: http://azureml/sdk-2-0/ModelVersionPackage.json target_environment: heart-classifier-mlflow-pkg inferencing_server: type: azureml_online model_configuration: mode: copy
Bahşiş
mode özelliği için kullanarak
copy
model yapılandırmasını belirttiğinizde, tüm model yapıtlarının Azure Machine Learning model kayıt defterinden indirilmesi yerine oluşturulan docker görüntüsünün içine kopyalandığından emin olursunuz ve böylece Azure Machine Learning dışında gerçek taşınabilirlik sağlarsınız. Paket oluştururken tüm seçenekler hakkında tam belirtim için bkz . Paket belirtimi oluşturma.Paket işlemini başlatın.
Paket işleminin sonucu, Azure Machine Learning'deki bir ortamdır. Bu ortama sahip olmanın avantajı, her ortamın bir dış dağıtımda kullanabileceğiniz karşılık gelen bir docker görüntüsüne sahip olmasıdır. Görüntüler Azure Container Registry'de barındırılır. Aşağıdaki adımlarda, oluşturulan görüntünün adını nasıl edindiğiniz gösterilmektedir:
Ortamlar bölümünü seçin.
Özel ortamlar sekmesini seçin.
Yeni oluşturduğunuz paketin adı olan heart-classifier-mlflow-package adlı ortamı arayın.
Azure kapsayıcı kayıt defteri alanındaki değeri kopyalayın.
Şimdi bu paketi bir App Service'e dağıtın.
Azure portalına gidin ve yeni bir App Service kaynağı oluşturun.
Oluşturma sihirbazında, kullandığınız aboneliği ve kaynak grubunu seçin.
Örnek ayrıntıları bölümünde uygulamaya bir ad verin.
Yayımla için Docker kapsayıcısını seçin.
İşletim Sistemi için Linux'ı seçin.
Sayfanın geri kalanını gerektiği gibi yapılandırın ve İleri'yi seçin.
Docker sekmesine gidin.
Seçenekler için Tek Kapsayıcı'yı seçin.
Görüntü Kaynağı için Azure Container Registry'yi seçin.
Azure kapsayıcı kayıt defteri seçeneklerini aşağıdaki gibi yapılandırın:
Kayıt Defteri için Azure Machine Learning çalışma alanıyla ilişkili Azure Container Registry'yi seçin.
Görüntü için bu öğreticinin 3.(e) adımında bulduğunuz görüntüyü seçin.
Etiket için en son'ı seçin.
Sihirbazın geri kalanını gerektiği gibi yapılandırın.
Oluştur’u seçin. Model artık oluşturduğunuz App Service'te dağıtılır.
Tahminleri çağırma ve alma şekliniz, kullandığınız çıkarım sunucusuna bağlıdır. Bu örnekte, yolu
/score
altında tahminler oluşturan Azure Machine Learning çıkarım sunucusunu kullandınız. Giriş biçimleri ve özellikleri hakkında daha fazla bilgi için azureml-inference-server-http paketinin ayrıntılarına bakın.İstek yükünü hazırlayın. Azure Machine Learning çıkarım sunucusuyla dağıtılan bir MLflow modelinin biçimi aşağıdaki gibidir:
sample-request.json
{ "input_data": { "columns": [ "age", "sex", "cp", "trestbps", "chol", "fbs", "restecg", "thalach", "exang", "oldpeak", "slope", "ca", "thal" ], "index": [1], "data": [ [1, 1, 4, 145, 233, 1, 2, 150, 0, 2.3, 3, 0, 2] ] } }
Çalışıp çalışmadığını görmek için model dağıtımını test edin.
cat -A sample-request.json | curl http://heart-classifier-mlflow-pkg.azurewebsites.net/score \ --request POST \ --header 'Content-Type: application/json' \ --data-binary @-
Sonraki adım
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin