Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В следующем руководстве описаны основные шаги по созданию подготовленного развертывания с помощью ресурса Службы Azure OpenAI. Дополнительные сведения о концепциях, описанных здесь, см. в следующих разделах:
Предварительные условия
- подписка Azure — создайте бесплатную учетную запись.
- Роль участника Azure или участника службы общих вычислений Cognitive Services
Получите или проверьте доступность квоты PTU.
Развертывания с зарезервированной пропускной способностью измеряются в единицах, называемых зарезервированными единицами пропускной способности (PTU). Квота PTU для каждого предоставленного типа развертывания предоставляется подписке в пределах региона и ограничивает общее количество PTU, которые можно развернуть в данном регионе для всех моделей и версий.
Для создания нового развертывания требуется доступная (неиспользуемая) квота для покрытия требуемого размера развертывания. Например, если подписка имеет следующее в южно-центральной части США:
- Общая квота PTU = 500 ПТП
- Развертывания:
- 100 PTUs: GPT-4o, 2024-05-13
- 100 PTUs: GPT-4, 0613
Затем используются 200 ПТП квоты, и для создания новых развертываний доступно 300 ПТП.
Объем глобальной, зоны данных, и региональной предоставленной квоты по умолчанию назначается подходящим подпискам в нескольких регионах. Вы можете просмотреть квоту, доступную для вас в регионе, перейдя на панель "Квоты" на портале Azure AI Foundry и выбрав нужную подписку и регион. Например, на снимке экрана ниже показан предел квоты 500 ПТП в Западной части США для выбранной подписки. Обратите внимание, что вы можете увидеть более низкие значения доступных квот по умолчанию.
Дополнительную квоту можно запросить, щелкнув ссылку "Квота запроса" справа от столбца "Использование и ограничение". Это за пределами экрана на изображении выше.
Создание ресурса Azure OpenAI
Подготовленные развертывания создаются с помощью объектов ресурсов Azure OpenAI в Azure. У вас должен быть ресурс Azure OpenAI в каждом регионе, где планируется создать развертывание. При необходимости используйте портал Azure для создания ресурса в регионе с доступной квотой.
Примечание.
Ресурсы Azure OpenAI могут одновременно поддерживать несколько типов развертываний Azure OpenAI. Не обязательно выделять новые ресурсы для подготовленных развертываний.
Создайте подготовленное развертывание — ресурсы доступны
После проверки квоты можно создать развертывание. Чтобы создать подготовленное развертывание, выполните следующие действия. Описанные варианты отражают записи, показанные на снимке экрана.
- Войдите на портал Azure AI Foundry.
- Выберите подписку, включенную для подготовленных развертываний, и выберите нужный ресурс в регионе, где у вас есть квота.
- В разделе "Управление" в левой области навигации выберите "Развертывания".
- Выберите "Создать новое развертывание" и настройте следующие поля. Разверните раскрывающееся меню расширенных параметров.
- Заполните значения в каждом поле. Приведем пример:
Поле | Описание: | Пример |
---|---|---|
Выбор модели | Выберите конкретную модель, которую вы хотите развернуть. | GPT-4 |
Версия модели | Выберите версию модели для развертывания. | 0613 |
Название развертывания | Имя развертывания используется в коде для вызова модели с помощью клиентских библиотек и REST API. | gpt-4 |
Фильтр содержимого | Укажите политику фильтрации для применения к развертыванию. Узнайте больше о нашем руководстве по фильтрации содержимого. | По умолчанию. |
Тип развертывания | Это влияет на пропускную способность и производительность. Выберите Global Provisioned-Managed, DataZone Provisioned-Managed или Provisioned-Managed в раскрывающемся списке диалога развертывания для настройки развертывания. | Управляемый с предварительной настройкой |
Выделенные единицы пропускной способности | Выберите объем пропускной способности, которую вы хотите включить в развертывание. | 100 |
Примечание.
Диалоговое окно развертывания содержит напоминание о том, что вы можете приобрести резервирование Azure для установленного Azure OpenAI, чтобы получить значительную скидку на обязательство на срок.
После ввода параметров развертывания нажмите кнопку "Подтвердить цены ", чтобы продолжить. Откроется диалоговое окно подтверждения цены, которое будет отображать цену на развертывание, если вы решите платить за неё на почасовой основе без использования резервирования Azure для получения скидки на срок.
Если вы не уверены в затратах, отмените развертывание и запустите его после понимания модели оплаты и базовых затрат на подготовленное развертывание. Этот шаг может предотвратить непредвиденные, высокие платежи на вашем платежном счете. Ресурсы для обучения себя включают:
На изображении ниже показано подтверждение цены. Показанная цена является только примером.
Если вы хотите создать развертывание программным способом, это можно сделать с помощью следующей команды Azure CLI. Чтобы указать тип развертывания, измените sku-name
на GlobalProvisionedManaged
, DataZoneProvisionedManaged
или ProvisionedManaged
в зависимости от предполагаемого типа развертывания.
sku-capacity
Обновите требуемое количество подготовленных единиц пропускной способности.
az cognitiveservices account deployment create \
--name <myResourceName> \
--resource-group <myResourceGroupName> \
--deployment-name MyModel \
--model-name GPT-4 \
--model-version 0613 \
--model-format OpenAI \
--sku-capacity 100 \
--sku-name ProvisionedManaged
REST, шаблон ARM, Bicep и Terraform также можно использовать для создания развертываний. См. раздел об автоматизации развертываний в руководстве по управлению квотами и замените sku.name
на GlobalProvisionedManaged
, DataZoneProvisionedManaged
или ProvisionedManaged
, а не на Standard
.
Создайте подготовленное развертывание. Емкость недоступна.
Из-за динамического характера доступности мощности вероятно, в регионе выбранного ресурса может не быть возможности обслуживания для развертывания данной модели, версии и количества ПТУ.
В этом случае мастер на портале Azure AI Foundry будет направлять вас в другие регионы с доступной квотой и емкостью для создания развертывания требуемой модели. В этом случае диалоговое окно развертывания будет выглядеть следующим образом:
Что следует заметить:
- В сообщении отображается количество PTUs в вашей доступной квоте, и сколько из них можно развернуть в настоящее время.
- Если вы выберете количество ПТЕ, превышающее емкость службы, появится сообщение с вариантами увеличения емкости, а также кнопка, с помощью которой вы можете выбрать альтернативный регион. При нажатии кнопки "Просмотреть другие регионы" откроется диалоговое окно, в котором отображается список ресурсов Azure OpenAI, где можно создать развертывание, а также максимальное количество развертываний, которые можно создать на основе доступной квоты и емкости служб в каждом регионе.
Выбор ресурса и нажатие кнопки " Переключить ресурс " приведет к повторному воспроизведению диалогового окна развертывания с помощью выбранного ресурса. Теперь вы можете приступить к созданию развертывания в новом регионе.
При желании приобрести бронирование
После создания развертывания может потребоваться приобрести скидку на фиксированный срок через резервирование Azure. Резервирование Azure может предоставить значительную скидку на почасовую ставку для пользователей, намеревающихся использовать развертывание более чем несколько дней.
Дополнительные сведения о модели покупки и бронирования см. в следующей статье:
- Экономия затрат с помощью службы Microsoft Azure OpenAI и её подключённых резервирований.
- Руководство по подключению в Azure OpenAI, подготовленное
- Руководство по подготовленным резервированиям в Azure OpenAI
Внимание
Доступность емкости для развертываний моделей является динамической и часто изменяется в разных регионах и моделях. Чтобы предотвратить покупку резервирования для большего количества PTU, чем вы можете использовать, сначала создайте развертывания, а затем приобретите резервирование Azure для покрытия развертываний с использованием PTU. Эта рекомендация гарантирует, что вы можете воспользоваться скидкой на резервирование и предотвратить покупку обязательств по сроку действия, которые вы не можете использовать.
Сделайте свои первые инференс-вызовы
Код для выполнения выводов в подготовленных развертываниях является таким же, как и код для стандартного типа развертывания. В следующем фрагменте кода показан вызов завершения чата к модели GPT-4. Впервые используя эти модели программным способом, мы рекомендуем начать с нашего краткого руководства. Мы рекомендуем использовать библиотеку OpenAI с версией 1.0 или более поздней, так как это включает логику повторных попыток в библиотеке.
import os
from openai import AzureOpenAI
client = AzureOpenAI(
azure_endpoint = os.getenv("AZURE_OPENAI_ENDPOINT"),
api_key=os.getenv("AZURE_OPENAI_API_KEY"),
api_version="2024-10-21"
)
response = client.chat.completions.create(
model="gpt-4", # model = "deployment_name".
messages=[
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": "Does Azure OpenAI support customer managed keys?"},
{"role": "assistant", "content": "Yes, customer managed keys are supported by Azure OpenAI."},
{"role": "user", "content": "Do other Azure AI services support this too?"}
]
)
print(response.choices[0].message.content)
Внимание
Для рабочей среды используйте безопасный способ хранения и доступа к учетным данным, например Azure Key Vault. Дополнительные сведения о безопасности учетных данных см. в статье о безопасности служб искусственного интеллекта Azure.
Общие сведения о ожидаемой пропускной способности
Объем пропускной способности, которую можно достичь на конечной точке, является фактором числа развернутых PTUS, размера входных данных, размера выходных данных и частоты вызовов. Количество одновременных вызовов и общих токенов может отличаться в зависимости от этих значений. Мы рекомендуем определить пропускную способность для развертывания следующим образом:
- Используйте калькулятор емкости для оценки размера. Калькулятор емкости можно найти на портале Azure AI Foundry на странице квот и на вкладке "Подготовлено".
- Оцените нагрузку, используя реалистичную нагрузку трафика. Дополнительные сведения о тестировании см. в разделе "Тестирование ".
Оценка уровня использования развертывания
При развертывании указанного количества подготовленных единиц пропускной способности (PTU), для этой конечной точки предоставляется определенное количество пропускной способности для вывода. Использование этой пропускной способности — это сложная формула на основе модели, частоты вызовов версии модели, размера запроса, размера поколения. Чтобы упростить это вычисление, мы предоставляем метрику использования в Azure Monitor. Развертывание возвращает код ошибки 429 при любых новых вызовах после того, как использование превышает 100 %. Предусмотренное использование определяется следующим образом:
Использование внедрения PTU = (PTU, потребленные в период времени) / (PTU, развернутые в период времени)
Вы можете найти меру использования в разделе Azure-Monitor для ресурса. Чтобы получить доступ к панелям мониторинга, войдите в https://portal.azure.com, откройте свой ресурс Azure OpenAI и выберите страницу метрик в левой панели навигации. На странице метрик выберите метрику «Provisioned-managed utilization V2». При наличии нескольких развертываний в ресурсе также следует разделить значения по каждому развертыванию, нажав кнопку "Применить разделение".
Дополнительные сведения о мониторинге развертываний см. на странице "Мониторинг Azure OpenAI Service ".
Управление высокой загрузкой
Выделенные развертывания предоставляют определённый объём вычислительных ресурсов для выполнения данной модели. Метрика «Использование выделенного управляемого ресурса V2» в Azure Monitor измеряет использование развертывания с интервалом в одну минуту. Подготовленные управляемые развертывания также оптимизированы, чтобы принятые вызовы обрабатывались с согласованной максимальной задержкой для каждого вызова. Когда рабочая нагрузка превышает выделенную емкость, служба возвращает код состояния HTTP 429 до тех пор, пока загрузка не снизится ниже 100 %. Время перед повторным повтором указывается в retry-after
заголовках ответов, retry-after-ms
которые предоставляют время в секундах и миллисекундах соответственно. Этот подход поддерживает целевые показатели задержки для каждого вызова, предоставляя разработчику контроль над обработкой ситуаций высокой нагрузки, например повтор или перенаправление в другой интерфейс или конечную точку.
Что делать, когда я получаю ответ 429?
Ответ 429 указывает, что выделенные единицы обработки (PTUs) полностью израсходованы на момент выполнения запроса. Ответ включает заголовки retry-after-ms
и retry-after
, которые сообщают вам, сколько времени нужно подождать до принятия следующего вызова. Способ обработки ответа 429 зависит от требований приложения. Ниже приведены некоторые рекомендации.
- Если вас устраивают более длинные задержки при каждом вызове, реализуйте логику повторных попыток на стороне клиента, чтобы выждать
retry-after-ms
времени и повторить попытку. Этот подход позволяет максимально увеличить пропускную способность развертывания. Пакеты SDK клиента, предоставляемые корпорацией Майкрософт, уже обрабатывают его с разумными значениями по умолчанию. Возможно, вам потребуется дополнительная настройка на основе вариантов использования. - Рассмотрите возможность перенаправления трафика на другие модели, развертывания или интерфейсы. Такой подход является решением с наименьшей задержкой, так как это действие можно предпринять сразу после получения сигнала 429. Сигнал 429 не является неожиданным ответом на ошибку при высоком уровне использования, а часть разработки для управления очередями и высокой нагрузкой для подготовленных развертываний.
Изменение логики повторных попыток в клиентских библиотеках
Пакеты SDK Для Azure OpenAI по умолчанию повторяют ответы 429 и за кулисами клиента (до максимального количества повторных попыток). Библиотеки уважают retry-after
время. Вы также можете изменить поведение при повторных попытках, чтобы лучше соответствовать вашему опыту. Ниже приведен пример библиотеки Python.
Вы можете использовать max_retries
эту опцию для настройки или отключения параметров повторных попыток.
from openai import AzureOpenAI
# Configure the default for all requests:
client = AzureOpenAI(
azure_endpoint = os.getenv("AZURE_OPENAI_ENDPOINT"),
api_key=os.getenv("AZURE_OPENAI_API_KEY"),
api_version="2024-10-21",
max_retries=5,# default is 2
)
# Or, configure per-request:
client.with_options(max_retries=5).chat.completions.create(
model="gpt-4", # model = "deployment_name".
messages=[
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": "Does Azure OpenAI support customer managed keys?"},
{"role": "assistant", "content": "Yes, customer managed keys are supported by Azure OpenAI."},
{"role": "user", "content": "Do other Azure AI services support this too?"}
]
)
Запуск бенчмарка
Конкретные возможности производительности и пропускной способности вашего экземпляра зависят от того, какие запросы вы делаете и какова точная рабочая нагрузка. Лучший способ определить пропускную способность для рабочей нагрузки — запустить тест на собственных данных.
Чтобы помочь вам в этой работе, средство проверки производительности позволяет легко выполнять тесты в развертывании. Это средство поставляется с несколькими возможными предварительно настроенными фигурами рабочей нагрузки и выводом ключевых метрик производительности. Дополнительные сведения об инструментах и параметрах конфигурации в репозитории GitHub: https://github.com/Azure/azure-openai-benchmark
Рекомендуется использовать следующий рабочий процесс:
- Оцените пропускную способность PTUs с помощью калькулятора.
- Запустите тест с этой моделью трафика в течение длительного периода времени (более 10 минут), чтобы наблюдать за результатами в устойчивом состоянии.
- Обратите внимание на использование, токены, обработанные данные и значения частоты вызовов в инструменте тестирования и Azure Monitor.
- Выполните бенчмарк с собственной структурой трафика и рабочими нагрузками с использованием вашей реализации клиента. Обязательно реализуйте логику повторных попыток с помощью клиентской библиотеки Azure OpenAI или пользовательской логики.
Следующие шаги
- Для получения дополнительной информации о лучших практиках облачных приложений ознакомьтесь с рекомендациями по облачным приложениям.
- Дополнительные сведения о подготовленных развертываниях см. в статье "Что такое подготовленная пропускная способность?
- Дополнительные сведения о логике повторных попыток в каждом пакете SDK см. в следующих сведениях: