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


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

Замечание

Этот документ относится к порталу Microsoft Foundry (классическая модель).

🔍 Ознакомьтесь с документацией по Microsoft Foundry (новая), чтобы узнать о новом портале.

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

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

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

Предпосылки

Поиск модели в каталоге моделей

  1. Войдите в Microsoft Foundry. Убедитесь, что переключатель New Foundry отключен. Эти действия относятся к Фаундри (классическая модель).
  2. Если вы еще не находитесь в проекте, выберите его.
  3. Выберите каталог моделей в левой области.
  1. В фильтре параметров развертывания выберите управляемые вычисления.

    Подсказка

    Так как вы можете настроить левую панель на портале Microsoft Foundry, вы можете увидеть другие элементы, отличные от указанных в этих шагах. Если вы не видите, что вы ищете, выберите ... Подробнее в нижней части левой панели.

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

  2. Выберите модель, чтобы открыть ее карточку модели. В этой статье используйте модель deepset-roberta-base-squad2.

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

  1. На странице модели выберите "Использовать эту модель ", чтобы открыть окно развертывания.

  2. Окно развертывания предварительно заполнено некоторыми значениями выбора и параметров. Их можно сохранить или изменить по мере необходимости. Можно также выбрать существующую конечную точку для развертывания или создать новую. В этом примере укажите количество экземпляров 1 и создайте новую конечную точку для развертывания.

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

  3. Выберите Развернуть, чтобы создать развертывание. Процесс создания может занять несколько минут. По завершении портал открывает страницу развертывания модели.

    Подсказка

    Чтобы просмотреть конечные точки, развернутые в проекте, перейдите в раздел «Мои ресурсы» в левой области и выберите «Модели + конечные точки».

  4. Созданная конечная точка использует проверку подлинности ключа для авторизации. Чтобы получить ключи, связанные с данной конечной точкой, выполните следующие действия.

    1. Выберите развертывание и запишите URI целевой точки и ключ конечной точки.
    2. Используйте эти учетные данные для вызова развертывания и создания прогнозов.

Потребление развертываний

После создания развертывания выполните следующие действия, чтобы начать его использование:

  1. Выберите модели и конечные точки в разделе "Мои ресурсы " в проекте Foundry.
  2. Выберите развертывание на вкладке "Развертывания модели ".
  3. Перейдите на вкладку "Тест" для примера вывода в конечную точку.
  4. Вернитесь на вкладку "Сведения ", чтобы скопировать целевой URI развертывания, который можно использовать для выполнения вывода с кодом.
  5. Перейдите на вкладку "Использование " развертывания, чтобы найти примеры кода для потребления.
  1. Скопируйте идентификатор модели на странице сведений выбранной модели. Выглядит так для выбранной модели: azureml://registries/azureml/models/deepset-roberta-base-squad2/versions/17

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

  1. Установите пакет SDK машинного обучения Azure.

    pip install azure-ai-ml
    pip install azure-identity
    
  2. Проверка подлинности с помощью Машинного обучения Azure и создание клиентского объекта. Замените заполнители идентификатором подписки, именем группы ресурсов и именем проекта Foundry.

    from azure.ai.ml import MLClient
    from azure.identity import InteractiveBrowserCredential
    
    workspace_ml_client = MLClient(
        credential=InteractiveBrowserCredential,
        subscription_id="your subscription ID goes here",
        resource_group_name="your resource group name goes here",
        workspace_name="your project name goes here",
    )
    
  3. Создайте конечную точку. Для параметра развертывания управляемых вычислений необходимо создать конечную точку перед развертыванием модели. Думайте о конечной точке как о контейнере, который может содержать несколько развертываний моделей. Имена конечных точек должны быть уникальными в регионе, поэтому в этом примере используйте метку времени для создания уникального имени конечной точки.

    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.online_endpoints.begin_create_or_update(endpoint).wait()
    
  4. Создайте развертывание. Замените идентификатор модели в следующем коде идентификатором модели, скопированным на странице сведений модели, выбранной в разделе "Поиск модели" в разделе каталога моделей .

    model_name = "azureml://registries/azureml/models/deepset-roberta-base-squad2/versions/17" 
    
    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.online_endpoints.begin_create_or_update(endpoint).result()
    

Анализ развертывания

  1. Для тестирования вывода требуется пример данных 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."
        ]
      }
    }
    
  2. Инференция с 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))
    

Настройка автомасштабирования

Чтобы настроить автомасштабирование для развертываний, выполните следующие действия.

  1. Войдите на портал Azure.
  2. Найдите тип Machine learning online deployment ресурса Azure для модели, развернутой в группе ресурсов проекта ИИ.
  3. Выберите "Параметры>масштабирования" в левой области.
  4. Выберите настраиваемое автомасштабирование и настройте параметры автомасштабирования. Дополнительные сведения об автомасштабировании см. в статье "Автомасштабирование сетевых конечных точек" в документации по Машинное обучение Azure.

Удалите развертывание

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

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

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

  • Узнайте больше о том, что можно сделать в Foundry
  • Получите ответы на часто задаваемые вопросы в статье Azure AI FAQ