Çevrimiçi uç noktada kullanılmak üzere dağıtılacak modeli belirtme

ŞUNLAR IÇIN GEÇERLIDIR: Azure CLI ml uzantısı v2 (geçerli)Python SDK azure-ai-ml v2 (geçerli)

Bu makalede, çevrimiçi dağıtımlarda kullanmak istediğiniz modelleri belirtmenin farklı yollarını öğreneceksiniz. Azure Machine Learning çevrimiçi uç noktasına model dağıtırken modeli iki yoldan biriyle belirtmeniz gerekir:

  • Modelin yerel bilgisayarınızdaki konumunun yolunu belirtin
  • Çalışma alanınıza önceden kaydettiğiniz sürümlemiş bir modele referans sağlayın

Çevrimiçi uç noktanın dağıtımı için modelinizi nasıl belirttiğiniz, modeli nerede depoladığınıza bağlıdır. Azure Machine Learning'de, dağıtımınızı oluşturduktan sonra ortam değişkeni AZUREML_MODEL_DIR Azure'da modelinizi depoladığınız depolama konumunu gösterir.

Yerel olarak depoladığınız modeller için dağıtım

Bu bölümde, çevrimiçi dağıtımda kullanılacak modelleri nasıl belirtebileceğinizi göstermek için bu yerel klasör yapısı örneği kullanılır:

Birden çok model içeren yerel klasör yapısını gösteren ekran görüntüsü.

Tek bir yerel model için dağıtım

Yerel makinenizde bulunan tek bir modeli bir dağıtımda kullanmak için path dağıtım YAML yapılandırma dosyanızda öğesini belirtinmodel. Aşağıdaki kod, yerel yola /Downloads/multi-models-sample/models/model_1/v1/sample_m1.pklsahip dağıtım YAML örneğidir:

$schema: https://azuremlschemas.azureedge.net/latest/managedOnlineDeployment.schema.json 
name: blue 
endpoint_name: my-endpoint 
model: 
  path: /Downloads/multi-models-sample/models/model_1/v1/sample_m1.pkl 
code_configuration: 
  code: ../../model-1/onlinescoring/ 
  scoring_script: score.py 
environment:  
  conda_file: ../../model-1/environment/conda.yml 
  image: mcr.microsoft.com/azureml/openmpi4.1.0-ubuntu20.04:latest 
instance_type: Standard_DS3_v2 
instance_count: 1 

Azure Machine Learning'de, çevrimiçi uç noktaya dağıtımınızı oluşturduktan sonra ortam değişkeni AZUREML_MODEL_DIR Azure'da modelinizin depolandığı depolama konumunu gösterir. Örneğin, /var/azureml-app/azureml-models/aaa-aaa-aaa-aaa-aaa/1 şimdi modelini sample_m1.pkliçerir.

Puanlama betiğinizin ()score.py içinde modelinizi (bu örnekte, sample_m1.pkl) betiğin init() işlevine yükleyebilirsiniz:

def init(): 
    model_path = os.path.join(str(os.getenv("AZUREML_MODEL_DIR")), "sample_m1.pkl") 
    model = joblib.load(model_path) 

Birkaç yerel model için dağıtım

Azure CLI, Python SDK'sı ve diğer istemci araçları, dağıtım tanımında dağıtım başına yalnızca bir model belirtmenize izin verse de, tüm modelleri dosya veya alt dizin olarak içeren bir model klasörünü kaydederek bir dağıtımda birden çok modeli kullanmaya devam edebilirsiniz. Dağıtım sırasında kayıtlı adlarını ve sürümlerini belirtebilmeniz için modeller gibi varlıklarınızı kaydetme hakkında daha fazla bilgi için bkz . Modelinizi ve ortamınızı kaydetme.

Örnek yerel klasör yapısında, klasörde birkaç model models olduğunu fark edeceksiniz. Bu modelleri kullanmak için, dağıtım YAML'nizde klasörün yolunu models aşağıdaki gibi belirtirsiniz:

$schema: https://azuremlschemas.azureedge.net/latest/managedOnlineDeployment.schema.json 
name: blue 
endpoint_name: my-endpoint 
model: 
  path: /Downloads/multi-models-sample/models/ 
code_configuration: 
  code: ../../model-1/onlinescoring/ 
  scoring_script: score.py 
environment:  
  conda_file: ../../model-1/environment/conda.yml 
  image: mcr.microsoft.com/azureml/openmpi4.1.0-ubuntu20.04:latest 
instance_type: Standard_DS3_v2 
instance_count: 1 

Dağıtımınızı oluşturduktan sonra ortam değişkeni AZUREML_MODEL_DIR , Azure'da modellerinizin depolandığı depolama konumunu gösterir. Örneğin, /var/azureml-app/azureml-models/bbb-bbb-bbb-bbb-bbb/1 şimdi modelleri ve dosya yapısını içerir.

Bu örnekte, klasörün içeriği AZUREML_MODEL_DIR şöyle görünür:

Birden çok model için depolama konumunun klasör yapısını gösteren ekran görüntüsü.

Puanlama betiğinizin ()score.py içinde, modellerinizi işleve init() yükleyebilirsiniz. Aşağıdaki kod modeli yükler sample_m1.pkl :

def init(): 
    model_path = os.path.join(str(os.getenv("AZUREML_MODEL_DIR")), "models","model_1","v1", "sample_m1.pkl ") 
    model = joblib.load(model_path) 

Bir dağıtıma birden çok modelin nasıl dağıtılacağına ilişkin bir örnek için bkz . Bir dağıtıma birden çok model dağıtma (CLI örneği) ve Bir dağıtıma birden çok model dağıtma (SDK örneği).

İpucu

Kaydedilecek 1.500'den fazla dosyanız varsa, modelleri kaydederken dosyaları veya alt dizinleri .tar.gz olarak sıkıştırmayı göz önünde bulundurun. Modelleri kullanmak için, puanlama betiğinin işlevindeki init() dosyaları veya alt dizinleri açabilirsiniz. Alternatif olarak, modelleri kaydettiğinizde, dosyaları veya alt dizinleri otomatik olarak açmak için özelliğini azureml.unpackolarak ayarlayınTrue. Her iki durumda da dosyaları açma işlemi başlatma aşamasında bir kez gerçekleşir.

Çalışma alanınıza kayıtlı modeller için dağıtım

Dağıtım tanımınızda kayıtlı modelleri, dağıtım YAML'nizdeki adlarına başvurarak kullanabilirsiniz. Örneğin, aşağıdaki dağıtım YAML yapılandırması kayıtlı model adı olarak azureml:local-multimodel:3belirtir:

$schema: https://azuremlschemas.azureedge.net/latest/managedOnlineDeployment.schema.json 
name: blue 
endpoint_name: my-endpoint 
model: azureml:local-multimodel:3 
code_configuration: 
  code: ../../model-1/onlinescoring/ 
  scoring_script: score.py 
environment:  
  conda_file: ../../model-1/environment/conda.yml 
  image: mcr.microsoft.com/azureml/openmpi4.1.0-ubuntu20.04:latest 
instance_type: Standard_DS3_v2 
instance_count: 1 

Bu örnekte, Azure Machine Learning studio'nun local-multimodel:3 sekmesinden görüntüleyebileceğiniz aşağıdaki model yapıtlarını içerdiğini düşünün:

Kayıtlı bir modelin model yapıtlarını gösteren klasör yapısının ekran görüntüsü.

Dağıtımınızı oluşturduktan sonra ortam değişkeni AZUREML_MODEL_DIR , Azure'da modellerinizin depolandığı depolama konumunu gösterir. Örneğin, /var/azureml-app/azureml-models/local-multimodel/3 modelleri ve dosya yapısını içerir. AZUREML_MODEL_DIR model yapıtlarının kökünü içeren klasöre işaret eder. Bu örneğe bağlı olarak, klasörün içeriği AZUREML_MODEL_DIR şöyle görünür:

Birden çok modeli gösteren klasör yapısının ekran görüntüsü.

Puanlama betiğinizin ()score.py içinde, modellerinizi işleve init() yükleyebilirsiniz. Örneğin, modeli yükleyin diabetes.sav :

def init(): 
    model_path = os.path.join(str(os.getenv("AZUREML_MODEL_DIR"), "models", "diabetes", "1", "diabetes.sav") 
    model = joblib.load(model_path) 

Model kataloğunda kullanılabilen modeller için dağıtım

Azure OpenAI koleksiyonundaki modeller dışında, model kataloğundaki herhangi bir model için, dağıtım için modelin kartında gösterilen model kimliğini kullanabilirsiniz. Model kimlikleri biçimindedir azureml://registries/{registry_name}/models/{model_name}/versions/{model_version}. Örneğin, Meta Llama 3-8 B Yönerge modeli için Bazı model kartları, dağıtım için model kimliğini nasıl kullanacağınızı gösteren örnek not defterleri içerir.

Kuruluşunuzun kayıt defterinde kullanılabilen modeller için dağıtım

Kuruluşun kayıt defterindeki her model, biçiminde azureml://registries/{registry_name}/models/{model_name}/versions/{model_version}bir model kimliğine sahiptir. Aynı kayıt defterine kayıtlı ortamları kullanmayı da seçebilirsiniz.