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


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

Применяется только к:Портал Foundry (классический). Эта статья недоступна для нового портала Foundry. Дополнительные сведения о новом портале.

Каталог моделей портала Microsoft Foundry предлагает более 1600 моделей, которые можно развернуть с помощью управляемого вычислительного обеспечения (также называемого управляемым онлайн развертыванием) для выполнения вывода в реальном времени в рабочих средах. С помощью управляемых развертываний вычислительных ресурсов можно получить масштабируемую инфраструктуру, готовую к рабочей среде для больших языковых моделей.

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

Предпосылки

  • Подписка Azure с допустимым методом оплаты. Бесплатные или пробные Azure подписки не работают. Если у вас нет подписки Azure, создайте платную учетную запись Azure.

  • Если у вас нет одного, создайте проект на основе концентратора. Дополнительные сведения см. в разделе Создание проекта.

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

  • Ролевые управления доступом Azure (Azure RBAC) предоставляет доступ к операциям на портале Foundry. Чтобы выполнить действия, описанные в этой статье, учетной записи пользователя должна быть присвоена роль Azure AI Developer в группе ресурсов. Дополнительные сведения см. в разделе "Управление доступом на основе ролей" на портале Foundry.

  • Квота виртуальных машин в вашей подписке Azure для определенных артикулов SKU виртуальных машин, необходимых для запуска вашей модели. Каждое развертывание использует квоту ядра виртуальной машины в зависимости от региона. Дополнительные сведения см. в разделе "Аспекты квот", включая требования к квотам и способы подачи запросов на увеличение.

  • Для развертываний с пакетом SDK Python: Python 3.8 или более поздней версии, включая пакет SDK Azure Machine Learning (azure-ai-ml) и библиотеку удостоверений Azure (azure-identity).

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

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

    Подсказка

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

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

  2. Выберите модель, чтобы открыть ее карточку модели. В этой статье используется модель Phi-4.

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

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

  2. Кроме того, если вы выбрали модель, которая также поддерживает другую опцию развертывания, вы перейдете на окно "Параметры покупки". Выберите вариант покупки Managed Compute, чтобы открыть окно развертывания.

    • Установите флажок в окне развертывания, чтобы использовать временную общую квоту. Для развертывания в самостоятельно управляемом вычислительном ресурсе необходимо иметь достаточную квоту в подписке. Если у вас нет доступной квоты, вы можете воспользоваться временным доступом к квоте, выбрав опцию Я хочу использовать общую квоту и подтверждаю, что эта конечная точка будет удалена через 168 часов.
  3. Окно развертывания предварительно заполнено некоторыми значениями выбора и параметров. Их можно сохранить или изменить по мере необходимости. Можно также выбрать существующую конечную точку для развертывания или создать новую. В этом примере укажите количество экземпляров 1 и создайте новую конечную точку для развертывания.

    Снимок экрана: диалоговое окно конфигурации развертывания с полями для имени развертывания, выбора конечной точки, выбора виртуальной машины и количества экземпляров, равных 1, с кнопкой

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

    Подсказка

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

  5. Убедитесь, что развертывание выполнено успешно. На странице сведений о развертывании убедитесь, что состояние подготовки отображается успешно , а состояние развертывания"Работоспособно". Если вы видите какие-либо ошибки, обратитесь к разделу "Устранение неполадок ".

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

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

    Целевой универсальный код ресурса (URI) соответствует этому формату: https://<endpoint-name>.<region>.inference.ml.azure.com/score

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

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

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

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

  1. Установите пакет SDK Azure Machine Learning.

    pip install azure-ai-ml
    pip install azure-identity
    
  2. Проверка подлинности с помощью Azure Machine Learning и создание клиентского объекта. Замените заполнители идентификатором подписки, именем группы ресурсов и именем проекта 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",
    )
    

    Этот код проходит проверку подлинности с помощью Azure с помощью учетных данных интерактивного браузера и создает клиент для взаимодействия с проектом Foundry. При запуске этого кода откроется окно браузера для проверки подлинности.

    Справочник:MLClient, InteractiveBrowserCredential

  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()
    

    Этот код создает управляемую конечную точку в сети с проверкой подлинности на основе ключей. Операция обычно занимает 2–3 минуты. По завершении у вас будет URL-адрес конечной точки, в котором можно развернуть модели.

    Ссылка:ManagedOnlineEndpoint, online_endpoints.begin_create_or_update

  4. Создайте развертывание. Замените идентификатор модели в следующем коде идентификатором модели, скопированным на странице сведений модели, выбранной в разделе "Поиск модели" в разделе каталога моделей .

    model_name = "azureml://registries/azureml/models/Phi-4/versions/8" 
    
    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()
    

    Этот код развертывает модель на вашем узле с использованием 2 экземпляров виртуальных машин Standard_DS3_v2. Развертывание включает проверки активности и готовности для мониторинга здоровья. Трафик установлен на 100% для этого развертывания. Операция занимает несколько минут. По завершении модель готова принять запросы вывода.

    Справочник:ManagedOnlineDeployment, ProbeSettings, online_deployments.begin_create_or_update

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

  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-файла.

    import 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))
    

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

    Reference:online_endpoints.invoke

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

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

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

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

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

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

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

Устранение неполадок

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

Сбой развертывания из-за ошибки превышения квоты

Проблема: При создании развертывания появляется сообщение об ошибке, указывающее на нехватку квоты.

Solution:

  • Проверьте текущее использование квоты на портале Azure в параметрах квоты подписки.
  • Запросить увеличение квоты на портале Azure для конкретного SKU виртуальной машины, требуемого
  • Рассмотрите возможность использования другого номера SKU виртуальной машины с доступной квотой
  • Для получения подробных инструкций см. статью Управление и увеличение квот на ресурсы с помощью Azure Machine Learning

Ошибки проверки подлинности при вызове конечной точки

Проблема: При вызове развернутой конечной точки возникают ошибки аутентификации (401 Неавторизовано).

Solution:

  • Убедитесь, что вы используете правильный URI конечной точки и ключ проверки подлинности на странице сведений о развертывании
  • Убедитесь, что ключ не был повторно создан после его копирования
  • Убедитесь, что разрешения RBAC Azure не изменились
  • Для вызовов пакета SDK убедитесь, что объект учетных данных правильно инициализирован

Сбой подготовки развертывания или тайм-аут

Проблема: Развертывание остается в состоянии развертывания в течение длительного времени или завершается ошибкой таймаута.

Solution:

  • Проверьте журналы развертывания на портале Foundry для определенных сообщений об ошибках
  • Убедитесь, что управляемые сетевые параметры центра разрешают доступ к необходимым ресурсам.
  • Убедитесь, что идентификатор модели правильно, и модель по-прежнему доступна в каталоге.
  • Попробуйте развернуть виртуальную машину с другим SKU или сократить количество экземпляров.

Модель возвращает непредвиденные или неправильные ответы

Проблема: Развернутая модель отвечает, но возвращает непредвиденные результаты.

Solution:

  • Проверка формата входных данных соответствует ожидаемой схеме модели.
  • Проверьте документацию карты модели для спецификаций ввода/вывода
  • Тестирование с помощью примера данных, предоставленных в документации модели
  • Просмотрите запрос и ответ на вкладке "Тест" на портале Foundry

Дополнительные сведения об устранении неполадок см. в статье "Устранение неполадок с развертыванием веб-конечной точки".