Управление квотой службы 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, выберите "Развертывание модели развертывания>", чтобы развернуть базовую модель>select model>Select Model>Confirm.
После развертывания вы можете настроить выделение доверенного платформенного модуля, выбрав и изменив модель на странице "Развертывания" в Azure AI Studio. Этот параметр также можно изменить на странице квоты модели управления>.
Внимание
Квоты и ограничения могут быть изменены, для наиболее актуальной информации обратитесь к нашей статье о квотах и ограничениях.
Конкретные параметры модели
Различные развертывания моделей, также называемые классами моделей, имеют уникальные значения TPM, которые теперь можно управлять. Это представляет максимальный объем доверенного платформенного модуля, который может быть выделен для этого типа развертывания модели в определенном регионе.
Все остальные классы моделей имеют общее максимальное значение доверенного платформенного модуля.
Примечание.
Выделение маркеров квоты в минуту (TPM) не связано с максимальным ограничением входного маркера модели. Ограничения входных маркеров модели определяются в таблице моделей и не влияют на изменения, внесенные в TPM.
Просмотр и квота запроса
Чтобы просмотреть все распределения квот в разных развертываниях в определенном регионе, выберите "Квота управления>" в Azure AI Studio:
- Развертывание: развертывания модели, разделенные на класс модели.
- Тип квоты: для каждого типа модели имеется одно значение квоты для каждого региона. Квота охватывает все версии этой модели.
- Выделение квоты. Для имени квоты это показывает, сколько квот используется развертываниями и общая квота, утвержденная для этой подписки и региона. Этот объем квоты также представлен в графе линейчатой диаграммы.
- Квота запроса: значок переходит в форму, в которой можно отправить запросы на увеличение квоты.
Перенос существующих развертываний
В рамках перехода на новую систему квот и распределение на основе TPM все существующие развертывания модели Azure OpenAI были автоматически перенесены для использования квоты. В случаях, когда существующее распределение TPM/RPM превышает значения по умолчанию из-за предыдущих увеличений ограничения скорости, эквивалентный TPM был назначен затронутым развертываниям.
Общие сведения об ограничениях скорости
Назначение доверенного платформенного модуля развертыванию задает ограничения скорости token-per-Minute (TPM) и Requests-Per-Minute (RPM) для развертывания, как описано выше. Ограничения скорости доверенного платформенного модуля основаны на максимальном количестве маркеров, которые, по оценкам, обрабатываются запросом во время получения запроса. Это не то же самое, что и счетчик маркеров, используемый для выставления счетов, который вычисляется после завершения всей обработки.
По мере получения каждого запроса 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, если вы ожидаете, что ваши ответы будут небольшими.
- Используйте управление квотами для увеличения доверенного платформенного модуля в развертываниях с высоким трафиком и сокращения доверенного платформенного модуля при развертывании с ограниченными потребностями.
- Реализуйте в приложении логику повторных попыток.
- Избегайте внесения резких изменений в рабочую нагрузку. Увеличивайте рабочую нагрузку постепенно.
- Протестируйте различные шаблоны увеличения нагрузки.
Автоматизация развертывания
В этом разделе содержатся краткие примеры шаблонов, которые помогут приступить к программному созданию развертываний, использующих квоту для установки ограничений скорости доверенного платформенного модуля. При вводе квоты необходимо использовать версию 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, используемая для данной операции. Имеет формат ГГГГ-ММ-ДД. |
Поддерживаемые версии
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
Параметры пути
Параметр | Тип | Обязательное? | Description |
---|---|---|---|
subscriptionId |
строка | Обязательное поле | Идентификатор подписки для связанной подписки. |
location |
строка | Обязательное поле | Расположение для просмотра использования для ex: 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, ознакомьтесь со статьей о квотах и ограничениях