Управление квотой службы OpenAI Azure

Квота обеспечивает гибкость для активного управления распределением ограничений скорости между развертываниями в вашей подписке. В этой статье описывается процесс управления квотой Azure OpenAI.

Необходимые компоненты

Внимание

Для просмотра квот и развертывания моделей требуется роль читателя использования Cognitive Services. Эта роль обеспечивает минимальный доступ, необходимый для просмотра использования квот в подписке Azure. Дополнительные сведения об этой роли и других ролях, необходимых для доступа к Azure OpenAI, см. в руководстве по доступу на основе ролей Azure (Azure RBAC).

Эту роль можно найти в портал Azure в разделе "Управление доступом к подпискам>( IAM)>Добавление поиска назначения> ролей для средства чтения с использованием Cognitive Services. Эта роль должна применяться на уровне подписки, она не существует на уровне ресурса.

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

Общие сведения о квоте

Функция квоты Azure OpenAI позволяет назначать ограничения скорости для развертываний, вплоть до глобального ограничения, называемого вашей квотой. Квота назначается вашей подписке по регионам на основе модели в единицах токенов в минуту (TPM). При подключении подписки к Azure OpenAI вы получите квоту по умолчанию для большинства доступных моделей. Затем вы назначите TPM каждому развертыванию по мере его создания, а доступная квота для этой модели будет сокращена на эту сумму. Вы можете продолжать создавать развертывания и назначать их TPM, пока не достигнете предела квоты. После этого можно создавать только новые развертывания этой модели, уменьшая доверенный платформенный модуль, назначенный другим развертываниям той же модели (таким образом освобождая TPM для использования), или запрашивая и утверждая увеличение квоты модели в нужном регионе.

Примечание.

С квотой 240 000 TPM для GPT-35-Turbo в Восточной части США клиент может создать одно развертывание 240K TPM, 2 развертывания 120K TPM каждый или любое количество развертываний в одном или нескольких ресурсах Azure OpenAI, если их TPM добавляет менее 240K в этом регионе.

При создании развертывания назначенный TPM напрямую сопоставляется с ограничением скорости маркеров в минуту, примененным к запросам вывода. Ограничение скорости запросов на минуту (RPM) также будет применяться, значение которого пропорционально присваивается назначению доверенного платформенного модуля, используя следующее соотношение:

6 RPM на 1000 TPM.

Гибкость глобального распространения доверенного платформенного модуля в рамках подписки и региона позволила Службе Azure OpenAI освободить другие ограничения:

  • Максимальное количество ресурсов в каждом регионе увеличивается до 30.
  • Ограничение на создание не более одного развертывания одной модели в ресурсе было удалено.

Назначение квоты

При создании развертывания модели вы можете назначить маркеры за минуту (TPM) для этого развертывания. TPM можно изменить на шаге от 1000 до 1000, и будет сопоставляться с ограничениями скорости TPM и RPM, применяемыми в развертывании, как описано выше.

Чтобы создать новое развертывание в Azure AI Studio в разделе "Управление ", выберите "Развертывания>" Создать новое развертывание.

Параметр для настройки доверенного платформенного модуля находится в раскрывающемся списке "Дополнительные параметры ":

Screenshot of the deployment UI of Azure AI Studio

После развертывания можно настроить выделение доверенного платформенного модуля, выбрав "Изменить развертывание" в разделе "Развертывания управления>" в Azure AI Studio. Этот выбор также можно изменить в новом интерфейсе управления квотами в разделе "Квоты управления>".

Внимание

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

Конкретные параметры модели

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

  • GPT-4
  • GPT-4-32K
  • Text-Davinci-003

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

Примечание.

Выделение маркеров квоты в минуту (TPM) не связано с максимальным ограничением входного маркера модели. Ограничения входных маркеров модели определяются в таблице моделей и не влияют на изменения, внесенные в TPM.

Просмотр и квота запроса

Чтобы просмотреть все распределения квот в разных развертываниях в определенном регионе, выберите "Квота управления>" в Azure AI Studio:

Screenshot of the quota UI of Azure AI Studio

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

Перенос существующих развертываний

В рамках перехода на новую систему квот и распределение на основе TPM все существующие развертывания модели Azure OpenAI были автоматически перенесены для использования квоты. В случаях, когда существующее распределение TPM/RPM превышает значения по умолчанию из-за предыдущих увеличений ограничения скорости, эквивалентный TPM был назначен затронутым развертываниям.

Общие сведения об ограничениях скорости

Назначение доверенного платформенного модуля развертыванию задает ограничения скорости token-per-Minute (TPM) и Requests-Per-Minute (RPM) для развертывания, как описано выше. Ограничения скорости доверенного платформенного модуля основаны на максимальном количестве маркеров, которые, по оценкам, обрабатываются запросом во время получения запроса. Это не то же самое, что и счетчик маркеров, используемый для выставления счетов, который вычисляется после завершения всей обработки.

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

  • Запрос текста и подсчета
  • Параметр max_tokens
  • Параметр best_of

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

Ограничения скорости RPM основаны на количестве запросов, полученных с течением времени. Ограничение скорости ожидает равномерное распределение запросов в течение одной минуты. Если этот средний поток не поддерживается, запросы могут получить ответ 429, даже если ограничение не выполняется при измерении в течение минуты. Для реализации этого поведения служба Azure OpenAI оценивает частоту входящих запросов в течение небольшого периода времени, обычно 1 или 10 секунд. Если число полученных запросов в течение этого времени превышает ожидаемое значение в заданном пределе RPM, новые запросы получат код ответа 429 до следующего периода оценки. Например, если Azure OpenAI отслеживает частоту запросов по 1-секундным интервалам, ограничение скорости будет происходить для развертывания 600-RPM, если в течение каждого 10-секундного периода получаются более 10 запросов (600 запросов в минуту = 10 запросов в секунду).

Рекомендации по ограничению скорости

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

  • Задайте max_tokens и best_of минимальными значениями, которые служат потребностям вашего сценария. Например, не устанавливайте большое значение max-token, если вы ожидаете, что ваши ответы будут небольшими.
  • Используйте управление квотами для увеличения доверенного платформенного модуля в развертываниях с высоким трафиком и сокращения доверенного платформенного модуля при развертывании с ограниченными потребностями.
  • Реализуйте в приложении логику повторных попыток.
  • Избегайте внесения резких изменений в рабочую нагрузку. Увеличивайте рабочую нагрузку постепенно.
  • Протестируйте различные шаблоны увеличения нагрузки.

Автоматизация развертывания

В этом разделе содержатся краткие примеры шаблонов, которые помогут приступить к программному созданию развертываний, использующих квоту для установки ограничений скорости доверенного платформенного модуля. При вводе квоты необходимо использовать версию 2023-05-01 API для связанных действий по управлению ресурсами. Эта версия API предназначена только для управления ресурсами и не влияет на версию API, используемую для вызовов вывода, таких как завершения, завершение чата, внедрение, создание образов и т. д.

Развертывание

PUT https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CognitiveServices/accounts/{accountName}/deployments/{deploymentName}?api-version=2023-05-01

Параметры пути

Параметр Тип Обязательное? Description
accountName строка Обязательное поле Имя ресурса Azure OpenAI.
deploymentName строка Обязательное поле Имя развертывания, выбранное при развертывании существующей модели или имя, которое будет иметь новое развертывание модели.
resourceGroupName строка Обязательное поле Имя связанной группы ресурсов для развертывания этой модели.
subscriptionId строка Обязательное поле Идентификатор подписки для связанной подписки.
api-version строка Обязательное поле Версия API, используемая для данной операции. Имеет формат ГГГГ-ММ-ДД.

Поддерживаемые версии

Текст запроса

Это только подмножество доступных параметров текста запроса. Полный список параметров см. в справочной документации по REST API.

Параметр Тип Описание
sku Sku Определение модели ресурсов, представляющее номер SKU.
Емкость integer Это означает объем квоты, которую вы назначаете этому развертыванию. Значение 1 равно 1000 маркеров в минуту (TPM). Значение 10 равно 10 тысячам маркеров в минуту (TPM).

Пример запроса

curl -X PUT https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/resource-group-temp/providers/Microsoft.CognitiveServices/accounts/docs-openai-test-001/deployments/gpt-35-turbo-test-deployment?api-version=2023-05-01 \
  -H "Content-Type: application/json" \
  -H 'Authorization: Bearer YOUR_AUTH_TOKEN' \
  -d '{"sku":{"name":"Standard","capacity":10},"properties": {"model": {"format": "OpenAI","name": "gpt-35-turbo","version": "0613"}}}'

Примечание.

Существует несколько способов создания маркера авторизации. Самый простой способ начального тестирования — запустить Cloud Shell из портал Azure. Затем выполните az account get-access-token. Этот маркер можно использовать в качестве временного маркера авторизации для тестирования API.

Дополнительные сведения см. в справочной документации по REST API по использованию и развертыванию.

Использование

Запрос использования квоты в определенном регионе для конкретной подписки

GET https://management.azure.com/subscriptions/{subscriptionId}/providers/Microsoft.CognitiveServices/locations/{location}/usages?api-version=2023-05-01

Параметры пути

Параметр Тип Обязательное? Description
subscriptionId строка Обязательное поле Идентификатор подписки для связанной подписки.
location строка Обязательное поле Расположение для просмотра использования для ex: eastus
api-version строка Обязательное поле Версия API, используемая для данной операции. Имеет формат ГГГГ-ММ-ДД.

Поддерживаемые версии

Пример запроса

curl -X GET https://management.azure.com/subscriptions/00000000-0000-0000-0000-000000000000/providers/Microsoft.CognitiveServices/locations/eastus/usages?api-version=2023-05-01 \
  -H "Content-Type: application/json" \
  -H 'Authorization: Bearer YOUR_AUTH_TOKEN' 

Удаление ресурсов

При попытке удалить ресурс Azure OpenAI из портал Azure если все развертывания по-прежнему присутствуют, будут заблокированы до тех пор, пока связанные развертывания не будут удалены. Удаление развертываний сначала позволяет правильно освободить выделение квот, чтобы их можно было использовать в новых развертываниях.

Однако при удалении ресурса с помощью REST API или другого программного метода необходимо сначала удалить развертывания. При этом связанное выделение квот будет оставаться недоступным для назначения новому развертыванию в течение 48 часов до очистки ресурса. Чтобы активировать немедленную очистку удаленного ресурса, чтобы освободить квоту, следуйте инструкциям по очистке удаленного ресурса.

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