Aracılığıyla paylaş


Model Sunma ile özel Python kitaplıkları kullanma

Bu makalede, modelinizi günlüğe kaydederken bir özel yansıtma sunucusundan özel kitaplıklar veya kitaplıklar eklemeyi öğreneceksiniz, böylece model dağıtımlarını Model Sunma ile kullanabilirsiniz. Eğitilmiş bir ML modeli dağıtılmaya hazır olduktan sonra ancak bir Azure Databricks Model Sunma uç noktası oluşturmadan önce bu kılavuzda ayrıntılı adımları tamamlamanız gerekir.

Model geliştirme genellikle ön veya son işleme, özel model tanımları ve diğer paylaşılan yardımcı programlar için işlevler içeren özel Python kitaplıklarının kullanılmasını gerektirir. Ayrıca birçok kurumsal güvenlik ekibi, tedarik zinciri saldırıları riskini azaltmak için Nexus veya Artifactory gibi özel PyPi yansıtmalarının kullanılmasını teşvik eder. Azure Databricks, Azure Databricks çalışma alanında özel bir yansıtmadan özel kitaplıkların ve kitaplıkların yüklenmesi için yerel destek sunar.

Gereksinimler

  • MLflow 1.29 veya üzeri

1. Adım: Bağımlılık dosyasını karşıya yükleme

Databricks, bağımlılık dosyanızı Unity Kataloğu birimlerine yüklemenizi önerir. Alternatif olarak, Azure Databricks kullanıcı arabirimini kullanarak Databricks Dosya Sistemi'ne (DBFS) yükleyebilirsiniz.

Kitaplığınızın not defterinizde kullanılabildiğinden emin olmak için kullanarak yüklemeniz %pip%gerekir. kullanarak %pip kitaplığı geçerli not defterine yükler ve kümeye bağımlılığı indirir.

2. Adım: Modeli özel bir kitaplıkla günlüğe kaydetme

Önemli

Özel bir PyPi yansıtmasına işaret ederek özel kitaplığı yüklerseniz bu bölümdeki yönergeler gerekli değildir.

Kitaplığı yükledikten ve Python tekerlek dosyasını Unity Kataloğu birimlerine veya DBFS'ye yükledikten sonra betiğinize aşağıdaki kodu ekleyin. içinde extra_pip_requirements bağımlılık dosyanızın yolunu belirtin.

mlflow.sklearn.log_model(model, "sklearn-model", extra_pip_requirements=["/volume/path/to/dependency.whl"])

DBFS için aşağıdakileri kullanın:

mlflow.sklearn.log_model(model, "sklearn-model", extra_pip_requirements=["/dbfs/path/to/dependency.whl"])

Özel kitaplığınız varsa, günlüğü yapılandırırken modelinizle ilişkili tüm özel Python kitaplıklarını belirtmeniz gerekir. Bunu log_model() içindeki veya conda_env parametreleriyle extra_pip_requirements yapabilirsiniz.

Önemli

DBFS kullanıyorsanız, günlüğe kaydetme extra_pip_requirementssırasında yolunuz öncesinde eğik çizgi /eklediğinizden dbfs emin olun. DbFS yolları hakkında daha fazla bilgi için bkz. Azure Databricks'te dosyalarla çalışma.

from mlflow.utils.environment import _mlflow_conda_env
conda_env =  _mlflow_conda_env(
            additional_conda_deps= None,
            additional_pip_deps= ["/volumes/path/to/dependency"],
            additional_conda_channels=None,
)
mlflow.pyfunc.log_model(..., conda_env = conda_env)

3. Adım: MLflow modelini Python tekerlek dosyalarıyla güncelleştirme

MLflow, modelinizi python tekerlek dosyaları olarak önceden paketlenmiş tüm bağımlılıklarıyla günlüğe kaydetmek için add_libraries_to_model() yardımcı programını sağlar. Bu, modelinizin bağımlılıkları olarak belirtilen diğer tüm kitaplıklara ek olarak özel kitaplıklarınızı da modelle birlikte paketler. Bu, modeliniz tarafından kullanılan kitaplıkların eğitim ortamınızdan erişilebilen kitaplıklar olmasını garanti eder.

Aşağıdaki örnekte, model_uri söz dizimini kullanarak model kayıt defterine başvurur models:/<model-name>/<model-version>.

Model kayıt defteri URI'sini kullandığınızda, bu yardımcı program mevcut kayıtlı modeliniz altında yeni bir sürüm oluşturur.

import mlflow.models.utils
mlflow.models.utils.add_libraries_to_model(<model-uri>)

4. Adım: Modelinizi sunma

Dahil edilen paketleri içeren yeni bir model sürümü model kayıt defterinde kullanılabilir olduğunda, model sunumunu içeren bir uç noktaya bu model sürümünü ekleyebilirsiniz.