Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bu makaledeki yönergeler, uç nokta dağıtım işlemini beklemeden önce modelinizle ilgili sorunları yakalamanıza yardımcı olabilir. Databricks, model sunma kullanırken daha iyi bir geliştirme deneyimi sağlamak için bu doğrulama adımlarının izlenmesini önerir.
Dağıtımdan önce tahminleri test edin
Modelinizi sunum uç noktasına dağıtmadan önce, mlflow.models.predict ve giriş örneklerini kullanarak çevrimdışı tahminleri sanal bir ortamla test edin. MLflow, dağıtım ortamını simüle eden ve değiştirilen bağımlılıkların test edilmesine izin veren doğrulama API'leri sağlar.
İki dağıtım öncesi doğrulama seçeneği vardır: MLflow Python API ve MLflow CLI. Daha ayrıntılı yönergeler almak için tahminleri test etmek amacıyla MLflow belgelerine bakın.
Aşağıdaki parametreleri belirtebilirsiniz:
- Model
model_urisunma için dağıtılan modelin. - Aşağıdakilerden biri:
-
input_dataModelin çağrısı içinmlflow.pyfunc.PyFuncModel.predict()beklenen biçimde. -
input_pathçağrısı içinpredictyüklenecek ve kullanılacak giriş verilerini içeren bir dosya tanımlayan.
-
- in
content_typecsvveyajsonbiçimi. - Tahminleri bir dosyaya yazmak için isteğe bağlı
output_path. Bu parametreyi atlarsanız, tahminler olarakstdoutyazdırılır. - Hizmet vermek için ortamı oluşturmak amacıyla kullanılan bir ortam yöneticisi
env_manager:- Varsayılan değer:
virtualenv. Doğrulama için önerilir. -
localkullanılabilir, ancak doğrulamaya yönelik olası hatalara açıktır. Genellikle yalnızca hızlı hata ayıklama için kullanılır.
- Varsayılan değer:
- kullanarak
install_mlflowortamınızdaki geçerli MLflow sürümünün sanal ortamıyla yüklenip yüklenmeyeceği. Bu ayar varsayılan olarak olarak ayarlanırFalse. - Sorun giderme veya hata ayıklama için paket bağımlılıklarının farklı sürümlerini güncelleştirme ve test etme. Bunu geçersiz kılma bağımsız değişkenini
pip_requirements_overridekullanarak dize bağımlılığı geçersiz kılmalarının veya eklemelerinin listesi olarak belirtebilirsiniz.
Örneğin:
import mlflow
run_id = "..."
model_uri = f"runs:/{run_id}/model"
mlflow.models.predict(
model_uri=model_uri,
input_data={"col1": 34.2, "col2": 11.2, "col3": "green"},
content_type="json",
env_manager="virtualenv",
install_mlflow=False,
pip_requirements_override=["pillow==10.3.0", "scipy==1.13.0"],
)
Model bağımlılıklarını güncelleştirme
Günlüğe kaydedilen modelle belirtilen bağımlılıklarla ilgili herhangi bir sorun varsa, başka bir modeli günlüğe kaydetmek zorunda kalmadan MLflow CLI'sini veya mlflow.models.model.update_model_requirements() MLflow Python API'sini kullanarak gereksinimleri güncelleştirebilirsiniz.
Aşağıdaki örnek, günlüğe kaydedilen bir modelin pip_requirements.txt'sini yerinde güncelleştirmeyi gösterir.
Mevcut tanımları belirtilen paket sürümleriyle güncelleştirebilir veya var olmayan gereksinimleri dosyaya pip_requirements.txt ekleyebilirsiniz. Bu dosya, belirtilen model_uri konumdaki MLflow modeli yapıtı içindedir.
from mlflow.models.model import update_model_requirements
update_model_requirements(
model_uri=model_uri,
operation="add",
requirement_list=["pillow==10.2.0", "scipy==1.12.0"],
)
Dağıtımdan önce model girişini doğrulama
Uç noktaları sunan model, özel bir JSON girişi biçimi bekler. MLflow'da kullanarak validate_serving_input dağıtımdan önce model girişinizin bir sunum uç noktasında çalıştığını doğrulayabilirsiniz.
Modeliniz geçerli bir giriş örneğiyle günlüğe kaydedildiyse, çalıştırmanın çıktılar sekmesinde otomatik olarak oluşturulan kodun bir örneği aşağıda verilmiştir.
from mlflow.models import validate_serving_input
model_uri = 'runs:/<run_id>/<artifact_path>'
serving_payload = """{
"messages": [
{
"content": "How many product categories are there?",
"role": "user"
}
]
}
"""
# Validate the serving payload works on the model
validate_serving_input(model_uri, serving_payload)
Ayrıca, geçerli bir JSON servis girişi oluşturmak için convert_input_example_to_serving_input API'yi kullanarak günlüğe alınan modelde herhangi bir giriş örneğini test edebilirsiniz.
from mlflow.models import validate_serving_input
from mlflow.models import convert_input_example_to_serving_input
model_uri = 'runs:/<run_id>/<artifact_path>'
# Define INPUT_EXAMPLE with your own input example to the model
# A valid input example is a data instance suitable for pyfunc prediction
serving_payload = convert_input_example_to_serving_input(INPUT_EXAMPLE)
# Validate the serving payload works on the model
validate_serving_input(model_uri, serving_payload)
Modelin el ile sunumunu test etme
Aşağıdaki adımları kullanarak modelin sunum davranışını el ile test edebilirsiniz:
- Bir defter açın ve Databricks Runtime sürümünü kullanan, Machine Learning için Databricks Runtime sürümünü kullanmayan Genel Amaçlı bir kümeye ekleyin.
- MLflow kullanarak modeli yükleyin ve oradan hata ayıklamayı deneyin.
Ayrıca modeli bilgisayarınıza yerel olarak yükleyebilir ve oradan hata ayıklayabilirsiniz. Aşağıdakini kullanarak modelinizi yerel olarak yükleyin:
import os
import mlflow
os.environ["MLFLOW_TRACKING_URI"] = "databricks://PROFILE"
ARTIFACT_URI = "model_uri"
if '.' in ARTIFACT_URI:
mlflow.set_registry_uri('databricks-uc')
local_path = mlflow.artifacts.download_artifacts(ARTIFACT_URI)
print(local_path)
conda env create -f local_path/artifact_path/conda.yaml
conda activate mlflow-env
mlflow.pyfunc.load_model(local_path/artifact_path)