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


Развертывание и вывод управляемого развертывания вычислений с помощью кода

Каталог моделей AI Studio предлагает более 1600 моделей, и наиболее распространенный способ развертывания этих моделей — использовать вариант управляемого развертывания вычислений, который также иногда называется управляемым развертыванием в сети.

Развертывание крупной языковой модели (LLM) делает его доступным для использования на веб-сайте, в приложении или другой рабочей среде. Развертывание обычно включает размещение модели на сервере или в облаке и создание API или другого интерфейса для взаимодействия с моделью. Развертывание можно вызвать в режиме реального времени для вывода созданных приложений ИИ, таких как чат и copilot.

Из этой статьи вы узнаете, как развертывать модели с помощью пакета SDK Машинное обучение Azure. В этой статье также описывается, как выполнять вывод по развернутой модели.

Получение идентификатора модели

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

  1. Войдите в AI Studio и перейдите на домашнюю страницу.

  2. Выберите каталог моделей на левой боковой панели.

  3. В фильтре параметров развертывания выберите управляемые вычисления.

    Снимок экрана: фильтрация по управляемым моделям вычислений в каталоге.

  4. Выберите модель.

  5. Скопируйте идентификатор модели на странице сведений выбранной модели. Выглядит примерно так: azureml://registries/azureml/models/deepset-roberta-base-squad2/versions/16

Развертывание модели

Давайте развернем модель.

Сначала необходимо установить пакет SDK Машинное обучение Azure.

pip install azure-ai-ml
pip install azure-identity

Используйте этот код для проверки подлинности с помощью Машинное обучение Azure и создания клиентского объекта. Замените заполнители идентификатором подписки, именем группы ресурсов и именем проекта AI Studio.

from azure.ai.ml import MLClient
from azure.identity import InteractiveBrowserCredential

client = MLClient(
    credential=InteractiveBrowserCredential,
    subscription_id="your subscription name goes here",
    resource_group_name="your resource group name goes here",
    workspace_name="your project name goes here",
)

Для параметра развертывания управляемых вычислений необходимо создать конечную точку перед развертыванием модели. Думайте о конечной точке как контейнере, который может размещать несколько развертываний моделей. Имена конечных точек должны быть уникальными в регионе, поэтому в этом примере мы используем метку времени для создания уникального имени конечной точки.

import time, sys
from azure.ai.ml.entities import (
    ManagedOnlineEndpoint,
    ManagedOnlineDeployment,
    ProbeSettings,
)

# Make the endpoint name unique
timestamp = int(time.time())
online_endpoint_name = "customize your endpoint name here" + str(timestamp)

# Create an online endpoint
endpoint = ManagedOnlineEndpoint(
    name=online_endpoint_name,
    auth_mode="key",
)
workspace_ml_client.begin_create_or_update(endpoint).wait()

Создайте развертывание. Идентификатор модели можно найти в каталоге моделей.

model_name = "azureml://registries/azureml/models/deepset-roberta-base-squad2/versions/16" 

demo_deployment = ManagedOnlineDeployment(
    name="demo",
    endpoint_name=online_endpoint_name,
    model=model_name,
    instance_type="Standard_DS3_v2",
    instance_count=2,
    liveness_probe=ProbeSettings(
        failure_threshold=30,
        success_threshold=1,
        timeout=2,
        period=10,
        initial_delay=1000,
    ),
    readiness_probe=ProbeSettings(
        failure_threshold=10,
        success_threshold=1,
        timeout=10,
        period=10,
        initial_delay=1000,
    ),
)
workspace_ml_client.online_deployments.begin_create_or_update(demo_deployment).wait()
endpoint.traffic = {"demo": 100}
workspace_ml_client.begin_create_or_update(endpoint).result()

Вывод развертывания

Для тестирования вывода требуется пример данных JSON. Создайте sample_score.json с помощью следующего примера.

{
  "inputs": {
    "question": [
      "Where do I live?",
      "Where do I live?",
      "What's my name?",
      "Which name is also used to describe the Amazon rainforest in English?"
    ],
    "context": [
      "My name is Wolfgang and I live in Berlin",
      "My name is Sarah and I live in London",
      "My name is Clara and I live in Berkeley.",
      "The Amazon rainforest (Portuguese: Floresta Amaz\u00f4nica or Amaz\u00f4nia; Spanish: Selva Amaz\u00f3nica, Amazon\u00eda or usually Amazonia; French: For\u00eat amazonienne; Dutch: Amazoneregenwoud), also known in English as Amazonia or the Amazon Jungle, is a moist broadleaf forest that covers most of the Amazon basin of South America. This basin encompasses 7,000,000 square kilometres (2,700,000 sq mi), of which 5,500,000 square kilometres (2,100,000 sq mi) are covered by the rainforest. This region includes territory belonging to nine nations. The majority of the forest is contained within Brazil, with 60% of the rainforest, followed by Peru with 13%, Colombia with 10%, and with minor amounts in Venezuela, Ecuador, Bolivia, Guyana, Suriname and French Guiana. States or departments in four nations contain \"Amazonas\" in their names. The Amazon represents over half of the planet's remaining rainforests, and comprises the largest and most biodiverse tract of tropical rainforest in the world, with an estimated 390 billion individual trees divided into 16,000 species."
    ]
  }
}

Давайте выведем sample_score.jsonс . Измените расположение в зависимости от того, где вы сохранили образец json-файла.

scoring_file = "./sample_score.json" 
response = workspace_ml_client.online_endpoints.invoke(
    endpoint_name=online_endpoint_name,
    deployment_name="demo",
    request_file=scoring_file,
)
response_json = json.loads(response)
print(json.dumps(response_json, indent=2))

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

Чтобы удалить развертывания в AI Studio, нажмите кнопку "Удалить " на верхней панели страницы сведений о развертывании.

Рекомендации по квотам

Для развертывания и выполнения вывода с конечными точками в режиме реального времени используется квота ядра виртуальной машины, назначенная вашей подписке на основе каждого региона. При регистрации в AI Studio вы получаете квоту виртуальной машины по умолчанию для нескольких семейств виртуальных машин, доступных в регионе. Вы можете продолжать создавать развертывания, пока не достигнете предела квоты. После этого можно запросить увеличение квоты.

Следующие шаги

  • Дополнительные сведения о том, что можно сделать в AI Studio
  • Ответы на часто задаваемые вопросы и ответы по Azure AI