Управление квотой службы OpenAI Azure
Квота обеспечивает гибкость для активного управления распределением ограничений скорости между развертываниями в вашей подписке. В этой статье описывается процесс управления квотой Azure OpenAI.
Предварительные условия
Внимание
Для любой задачи, требующей просмотра доступной квоты, мы рекомендуем использовать роль Cognitive Services Usages Reader. Эта роль обеспечивает минимальный доступ, необходимый для просмотра использования квот в подписке Azure. Дополнительные сведения об этой роли и других ролях, необходимых для доступа к Azure OpenAI, см. в руководстве по управлению доступом на основе ролей Azure.
Эту роль можно найти в портале Azure в разделе Подписки>Управление доступом (IAM)>Добавление назначения роли, найдите Читатель использования Cognitive Services. Эта роль должна применяться на уровне подписки, она не существует на уровне ресурса.
Если вы не хотите использовать эту роль, роль читателя подписки будет предоставлять эквивалентный доступ, но она также предоставит доступ на чтение за пределами области, необходимой для просмотра квоты и развертывания модели.
Общие сведения о квоте
Функция квоты Azure OpenAI позволяет назначать ограничения скорости для развертываний до глобального ограничения, называемого квотой. Квота назначается вашей подписке отдельно для каждого региона и модели в единицах «токены в минуту» (TPM). При подключении подписки к Azure OpenAI вы получите квоту по умолчанию для большинства доступных моделей. Затем вы назначите TPM каждому развертыванию по мере его создания, а доступная квота для этой модели будет сокращена на эту сумму. Вы можете продолжать создавать развертывания и назначать им TPM, пока не достигнете предела квоты. После этого можно создать новые развертывания этой модели только путем уменьшения количества TPM, назначенного другим развертываниям этой же модели (таким образом освобождая TPM для использования), или запрашивая увеличение квоты модели в нужном регионе и получая на это одобрение.
Примечание.
С квотой 240 тыс. TPM для GPT-35-Turbo в Восточных США клиент может создать одно развертывание на 240 тыс. TPM, два развертывания по 120 тыс. TPM каждое, или любое количество развертываний в одном или нескольких ресурсах Azure OpenAI, если их суммарный TPM составляет менее 240 тыс. в этом регионе.
При создании развертывания назначенный TPM напрямую сопоставляется с установленным ограничением скорости токенов в минуту для запросов на интерпретацию. Ограничение скорости запросов на минуту (RPM) также будет применяться, и его значение устанавливается пропорционально назначению TPM с использованием следующего соотношения:
6 об/мин на 1000 TPM.
Гибкость распределения TPM (доверенного платформенного модуля) по всему миру в рамках подписки и региона позволила Службе Azure OpenAI ослабить другие ограничения:
- Максимальное количество ресурсов в каждом регионе увеличивается до 30.
- Ограничение на создание не более одного развертывания одной модели в ресурсе было удалено.
Назначение квоты
При создании развертывания модели у вас есть возможность назначить количество токенов в минуту (TPM) для этого развертывания. TPM можно изменять с шагом в 1000, и эти изменения будут соответствовать ограничениям скорости TPM и RPM, применяемым в вашем развертывании, как обсуждалось выше.
Чтобы создать новое развертывание на портале Azure AI Foundry выберите развертывания>Развернуть модель>Развернуть базовую модель>Выбрать модель>Подтвердить.
После развертывания вы можете настроить распределение ресурсов доверенного платформенного модуля, выбрав и изменив модель на портале Azure AI Foundry на странице развертывания. Этот параметр также можно изменить на странице управления>модель квоты.
Внимание
Квоты и ограничения могут быть изменены, для наиболее актуальной информации обратитесь к нашей статье о квотах и ограничениях.
Запрос дополнительных квот
Запросы на увеличение квоты можно отправить с помощью формы запроса на увеличение квоты. Из-за высокого спроса запросы на увеличение квот принимаются и будут заполнены в том порядке, в который они получены. Приоритет предоставляется клиентам, которые создают трафик, который потребляет существующее выделение квот, и ваш запрос может быть отклонен, если это условие не выполнено.
Конкретные параметры модели
Различные развертывания моделей, также называемые классами моделей, имеют уникальные максимальные значения TPM, которыми вы теперь можете управлять. Это определяет максимальное количество TPM, которое может быть выделено для этого типа развертывания модели в определенном регионе.
Все остальные классы моделей имеют общее максимальное значение TPM.
Примечание.
Выделение токенов квоты в минуту (TPM) не связано с максимальным лимитом входных токенов модели. Ограничения входных маркеров модели определяются в таблице моделей и не влияют на изменения, внесенные в TPM.
Просмотр и запрос квоты
Для общего вида ваших размеров квот в развертываниях в регионе выберите Управление>квоты в портале Azure AI Foundry :
- Развертывание: развертывания модели, разделенные на класс модели.
- Тип квоты: для каждого типа модели имеется одно значение квоты для каждого региона. Квота охватывает все версии этой модели.
- Распределение квоты: Для имени квоты показывается, сколько квот используется развертываниями, а также общая квота, утвержденная для этой подписки и региона. Этот объем квоты также представлен в графе линейчатой диаграммы.
- Квота запроса: значок переходит к этой форме, где можно отправить запросы на увеличение квоты.
Перенос существующих развертываний
В рамках перехода на новую систему квот и распределение на основе TPM все существующие развертывания модели Azure OpenAI были автоматически перенесены для использования квоты. В случаях, когда существующее распределение TPM/RPM превышает значения по умолчанию из-за предыдущих увеличений ограничения скорости, эквивалентный TPM был назначен затронутым развертываниям.
Общие сведения об ограничениях скорости
Назначение TPM развертыванию устанавливает ограничения скорости токены в минуту (TPM) и запросы в минуту (RPM) для развертывания, как описано выше. Ограничения скорости на основе TPM определяются максимальным числом маркеров, предположительно обрабатываемых в момент получения запроса. Это не то же самое, что и счетчик токенов, используемый для выставления счетов, который вычисляется после завершения всей обработки.
По мере получения каждого запроса Azure OpenAI вычисляет предполагаемое максимальное количество обработанных токенов, включающее следующее:
- Запрос текста и подсчета
- Настройка параметра max_tokens
- Настройка параметра best_of
По мере поступления запросов в конечную точку развертывания, предполагаемое максимальное количество обработанных токенов добавляется к суммарному числу токенов всех запросов, которое сбрасывается каждую минуту. Если в течение этой минуты в любой момент достигнуто ограничение скорости запросов, дальнейшие запросы получат код ответа 429 до сброса счетчика.
Внимание
Количество маркеров, используемое в вычислении ограничения скорости, — это оценка, основанная частично на количестве символов запроса API. Оценка токена ограничения скорости не совпадает с вычислением токенов, используемых для выставления счетов или определения того, что запрос находится ниже предела входных токенов модели. Из-за приблизительного характера вычисления маркера ограничения скорости ожидается, что ограничение скорости может сработать раньше, чем можно было бы ожидать в сравнении с точным подсчетом количества маркеров для каждого запроса.
Ограничения скорости RPM основаны на количестве запросов, полученных с течением времени. Ожидается, что ограничение частоты запросов обеспечит равномерное распределение запросов в течение одной минуты. Если этот средний поток не поддерживается, запросы могут получить ответ 429, даже если лимит не превышен при измерении в течение минуты. Для реализации этого поведения служба Azure OpenAI оценивает частоту входящих запросов в течение небольшого периода времени, обычно 1 или 10 секунд. Если число полученных запросов в течение этого времени превышает ожидаемое значение в заданном пределе RPM, новые запросы получат код ответа 429 до следующего периода оценки. Например, если Azure OpenAI отслеживает частоту запросов по 1-секундным интервалам, ограничение скорости будет происходить для развертывания 600-RPM, если в течение каждого 10-секундного периода получаются более 10 запросов (600 запросов в минуту = 10 запросов в секунду).
Рекомендации по ограничению скорости
Чтобы свести к минимуму проблемы, связанные с ограничениями скорости, рекомендуется использовать следующие методы:
- Задайте max_tokens и best_of минимальными значениями, которые служат потребностям вашего сценария. Например, не устанавливайте большое значение max-token, если вы ожидаете, что ваши ответы будут небольшими.
- Используйте управление квотами для увеличения количества транзакций в минуту при развертывании с высоким трафиком и для уменьшения количества транзакций в минуту при развертывании с ограниченными потребностями.
- Реализуйте в приложении логику повторных попыток.
- Избегайте внесения резких изменений в рабочую нагрузку. Увеличивайте рабочую нагрузку постепенно.
- Протестируйте различные шаблоны увеличения нагрузки.
Автоматизация развертывания
В этом разделе представлены краткие примеры шаблонов, которые помогут вам начать программное создание внедрений, использующих квоту для установки ограничений скорости модуля TPM. При вводе квоты необходимо использовать версию 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
Параметры пути
Параметр | Тип | Обязательное? | Описание |
---|---|---|---|
accountName |
строка | Обязательное поле | Имя вашего ресурса Azure OpenAI. |
deploymentName |
строка | Обязательное поле | Имя развертывания, выбранное при развертывании существующей модели или имя, которое будет иметь новое развертывание модели. |
resourceGroupName |
строка | Обязательное поле | Имя связанной группы ресурсов для развертывания этой модели. |
subscriptionId |
строка | Обязательное поле | Идентификатор подписки для связанной подписки. |
api-version |
строка | Обязательное поле | Версия API, используемая для данной операции. Имеет формат ГГГГ-ММ-ДД. |
Поддерживаемые версии
-
2023-05-01
Спецификация Swagger
Текст запроса
Это только подмножество доступных параметров текста запроса. Полный список параметров см. в справочной документации по REST API.
Пример запроса
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
Параметры пути
Параметр | Тип | Обязательное? | Описание |
---|---|---|---|
subscriptionId |
строка | Обязательное поле | Идентификатор подписки для связанной подписки. |
location |
строка | Обязательное поле | Местоположение для просмотра использования, например: eastus |
api-version |
строка | Обязательное поле | Версия API, используемая для данной операции. Имеет формат ГГГГ-ММ-ДД. |
Поддерживаемые версии
-
2023-05-01
Спецификация Swagger
Пример запроса
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 часов, пока ресурс не будет очищен. Чтобы активировать немедленную очистку удаленного ресурса, чтобы освободить квоту, следуйте инструкциям по очистке удаленного ресурса.
Следующие шаги
- Чтобы просмотреть квоты по умолчанию для Azure OpenAI, ознакомьтесь со статьей о квотах и ограничениях