Указание модели для развертывания для использования в сетевой конечной точке
ОБЛАСТЬ ПРИМЕНЕНИЯ:Расширение машинного обучения 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
значение
Развертывание моделей, зарегистрированных в рабочей области
Зарегистрированные модели можно использовать в определении развертывания, ссылаясь на их имена в 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}
. Вы также можете использовать среды, зарегистрированные в том же реестре.