Поделиться через


Указание модели для развертывания для использования в сетевой конечной точке

ОБЛАСТЬ ПРИМЕНЕНИЯ:Расширение машинного обучения Azure CLI версии 2 (current)Python SDK azure-ai-ml версии 2 (current)

В этой статье вы узнаете о различных способах указания моделей, которые вы хотите использовать в онлайн-развертываниях. При развертывании модели в Машинное обучение Azure веб-конечной точке необходимо указать модель одним из двух способов:

  • Укажите путь к расположению модели на локальном компьютере
  • Укажите ссылку на версию модели, которая уже зарегистрирована в рабочей области.

Указание модели для развертывания веб-конечной точки зависит от того, где хранится модель. В Машинное обучение Azure после создания развертывания переменная AZUREML_MODEL_DIR среды указывает на расположение хранилища в Azure, где хранится модель.

Развертывание для моделей, хранящихся локально

В этом разделе используется этот пример локальной структуры папок, чтобы показать, как можно указать модели для использования в интерактивном развертывании:

Снимок экрана: локальная структура папок, содержащая несколько моделей.

Развертывание для одной локальной модели

Чтобы использовать одну модель на локальном компьютере в развертывании, укажите path model в файле конфигурации YAML развертывания. Следующий код является примером развертывания YAML с локальным путем /Downloads/multi-models-sample/models/model_1/v1/sample_m1.pkl:

$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 после создания развертывания в сети переменная AZUREML_MODEL_DIR среды указывает на расположение хранилища в Azure, где хранится ваша модель. Например, /var/azureml-app/azureml-models/aaa-aaa-aaa-aaa-aaa/1 теперь содержит модель sample_m1.pkl.

В скрипте оценки () можно загрузить модель (score.pyв этом примере sample_m1.pkl) в функции скрипта init() :

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

Развертывание для нескольких локальных моделей

Хотя Azure CLI, пакет SDK для Python и другие клиентские средства позволяют указать только одну модель для каждого развертывания в определении развертывания, вы по-прежнему можете использовать несколько моделей в развертывании, зарегистрируя папку модели, содержащую все модели в виде файлов или подкаталогов. Дополнительные сведения о регистрации ресурсов, таких как модели, чтобы указать зарегистрированные имена и версии во время развертывания, см. в разделе "Регистрация модели и среды".

В примере структуры локальных папок обратите внимание, что в папке есть несколько моделей models . Чтобы использовать эти модели, в yamL развертывания укажите путь к папке models следующим образом:

$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 

После создания развертывания переменная AZUREML_MODEL_DIR среды указывает на расположение хранилища в Azure, где хранятся модели. Например, /var/azureml-app/azureml-models/bbb-bbb-bbb-bbb-bbb/1 теперь содержит модели и структуру файлов.

В этом примере содержимое AZUREML_MODEL_DIR папки выглядит следующим образом:

Снимок экрана: структура папок расположения хранилища для нескольких моделей.

В скрипте оценки (score.py) можно загрузить модели в функцию init() . Следующий код загружает 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) 

Пример развертывания нескольких моделей в одном развертывании см. в статье Развертывание нескольких моделей в одном развертывании (пример CLI) и развертывание нескольких моделей в одном развертывании (пример пакета SDK).

Совет

Если у вас более 1500 файлов для регистрации, рассмотрите возможность сжатия файлов или подкаталогов как .tar.gz при регистрации моделей. Чтобы использовать модели, можно распаковывать файлы или вложенные каталоги в init() функции скрипта оценки. Кроме того, при регистрации моделей задайте для свойства Trueзначение azureml.unpack/>, чтобы автоматически распаковывать файлы или вложенные каталоги. В любом случае распаковка файлов происходит один раз на этапе инициализации.

Развертывание моделей, зарегистрированных в рабочей области

Зарегистрированные модели можно использовать в определении развертывания, ссылаясь на их имена в YAML развертывания. Например, следующая конфигурация YAML развертывания указывает зарегистрированный model имя как azureml:local-multimodel:3:

$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 

В этом примере рассмотрим, что local-multimodel:3 содержит следующие артефакты модели, которые можно просмотреть на вкладке "Модели" в Студия машинного обучения Azure:

Снимок экрана: структура папок с артефактами модели зарегистрированной модели.

После создания развертывания переменная AZUREML_MODEL_DIR среды указывает на расположение хранилища в Azure, где хранятся модели. Например, /var/azureml-app/azureml-models/local-multimodel/3 содержит модели и структуру файлов. AZUREML_MODEL_DIR указывает на папку, содержащую корень артефактов модели. На основе этого примера содержимое AZUREML_MODEL_DIR папки выглядит следующим образом:

Снимок экрана: структура папок с несколькими моделями.

В скрипте оценки (score.py) можно загрузить модели в функцию init() . Например, загрузите 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) 

Развертывание моделей, доступных в каталоге моделей

Для любой модели в каталоге моделей, за исключением моделей, которые находятся в коллекции Azure OpenAI, можно использовать идентификатор модели, отображаемый на карточке модели для развертывания. Идентификаторы моделей относятся к форме azureml://registries/{registry_name}/models/{model_name}/versions/{model_version}. Например, идентификатор модели для модели Meta Llama 3-8 B Instruct является azureml://registries/azureml-meta/models/Meta-Llama-3-8B-Instruct/versions/2. Некоторые карточки моделей включают примеры записных книжек, демонстрирующих использование идентификатора модели для развертывания.

Развертывание моделей, доступных в реестре организации

Каждая модель в реестре организации имеет идентификатор модели формы azureml://registries/{registry_name}/models/{model_name}/versions/{model_version}. Вы также можете использовать среды, зарегистрированные в том же реестре.