Что такое подготовленная пропускная способность?

Возможность подготовленной пропускной способности позволяет указать объем пропускной способности, которую требуется в развертывании. Затем служба выделяет необходимую емкость обработки модели и гарантирует, что она готова к работе. Пропускная способность определяется с точки зрения подготовленных единиц пропускной способности (PTU), который является нормализованным способом представления пропускной способности для развертывания. Каждая пара версий модели требует разных объемов PTU для развертывания и предоставления разных объемов пропускной способности на PTU.

Что предоставляет подготовленный тип развертывания?

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

Развертывание Azure OpenAI — это единица управления для конкретной модели OpenAI. Развертывание предоставляет клиентам доступ к модели для вывода и интегрирует дополнительные функции, такие как модерация содержимого (см. документацию по кон режим палатки рациям).

Примечание.

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

Что получится?

Раздел Подготовлено
Что это такое? Обеспечивает гарантированную пропускную способность с меньшим шагом, чем существующее подготовленное предложение. Развертывания имеют согласованную максимальную задержку для заданной версии модели.
Кто это для? Клиенты, которые хотят гарантированной пропускной способности с минимальной задержкой.
Квота Подготовленные управляемые единицы пропускной способности для данной модели.
Задержка Максимальная задержка ограничена моделью. Общая задержка — это фактор фигуры вызова.
Загруженность Подготовленная управляемая мера использования, предоставляемая в Azure Monitor.
Оценка размера Предоставленный калькулятор в скрипте студии и тестирования.

Разделы справки получить доступ к подготовленным?

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

Основные понятия

Подготовленные единицы пропускной способности

Подготовленные единицы пропускной способности (PTU) — это единицы емкости обработки модели, которые можно зарезервировать и развернуть для обработки запросов и создания завершений. Минимальное развертывание PTU, увеличение и пропускная способность обработки, связанные с каждой единицей, зависит от типа модели и версии.

Типы развертывания

При развертывании модели в Azure OpenAI необходимо задать для управляемого sku-name объекта. Указывает sku-capacity количество ПТП, назначенных развертыванию.

az cognitiveservices account deployment create \
--name <myResourceName> \
--resource-group  <myResourceGroupName> \
--deployment-name MyDeployment \
--model-name gpt-4 \
--model-version 0613  \
--model-format OpenAI \
--sku-capacity 100 \
--sku-name ProvisionedManaged 

Квота

Подготовленная квота пропускной способности представляет определенный объем общей пропускной способности, которую можно развернуть. Квота в службе Azure OpenAI управляется на уровне подписки. Все ресурсы Azure OpenAI в подписке используют эту квоту.

Квота указана в единицах пропускной способности подготовки и зависит от типа развертывания, модели, региона). Квота не является взаимозаменяемой. Это означает, что нельзя использовать квоту для GPT-4 для развертывания GPT-35-turbo. Вы можете создать запрос на поддержку для перемещения квоты между типами развертывания, моделями или регионами, но переключение не гарантируется.

Несмотря на все попытки обеспечить возможность развертывания квоты, квота не представляет собой гарантию доступности базовой емкости. Служба назначает емкость во время операции развертывания и если емкость недоступна, развертывание завершается ошибкой из-за отсутствия емкости.

Определение количества ПТП, необходимых для рабочей нагрузки

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

Несколько общих рекомендаций.

  • Поколения требуют больше емкости, чем запросы
  • Более крупные вызовы постепенно дороже вычислений. Например, для 100 вызовов с размером запроса на 1000 маркеров потребуется меньше емкости, чем 1 вызов с 100 000 маркерами в запросе. Это также означает, что распределение этих фигур вызова важно в общей пропускной способности. Шаблоны трафика с широким распределением, включающее некоторые очень большие вызовы, могут снизить пропускную способность на PTU, чем более узкое распределение с одинаковыми средними размерами запросов и маркеров завершения.

Принцип работы принудительного применения использования

Подготовленные развертывания предоставляют выделенный объем емкости обработки модели для выполнения данной модели. Provisioned-Managed Utilization Метрика в Azure Monitor измеряет заданное использование развертываний на 1 минуту приращения. Подготовленные управляемые развертывания оптимизированы, чтобы обеспечить обработку принятых вызовов с помощью consis режим палатки l-обработки (фактическая задержка зависит от характеристик вызова). Когда рабочая нагрузка превышает выделенную емкость PTU, служба возвращает код состояния HTTP 429 до тех пор, пока использование не будет удалено ниже 100 %.

Что делать, когда я получаю ответ 429?

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

retry-after Заголовки retry-after-ms в ответе сообщают вам время ожидания до принятия следующего вызова. Способ обработки этого ответа зависит от требований приложения. Ниже приведены некоторые рекомендации.

  • Вы можете перенаправить трафик на другие модели, развертывания или интерфейсы. Этот параметр является решением с наименьшей задержкой, так как действие можно предпринять сразу после получения сигнала 429.
  • Если вы в порядке с более длительными задержками на вызов, реализуйте логику повторных попыток на стороне клиента. Этот параметр обеспечивает максимальную пропускную способность на PTU. Клиентские библиотеки Azure OpenAI включают встроенные возможности для обработки повторных попыток.

Как служба решает, когда отправлять 429?

Мы используем вариант алгоритма утечки контейнера для поддержания использования ниже 100 % при этом, что позволяет обеспечить некоторую вспышку в трафике. Высокоуровневая логика выглядит следующим образом:

  1. Каждый клиент имеет набор емкости, которую они могут использовать в развертывании

  2. При выполнении запроса:

    a. Если текущее использование превышает 100 %, служба возвращает код 429 с retry-after-ms заголовком, заданным для времени, пока использование не превышает 100 %

    b. В противном случае служба оценивает добавочное изменение использования, необходимое для обслуживания запроса путем объединения маркеров запроса и указанного max_tokens в вызове. max_tokens Если параметр не указан, служба оценивает значение. Эта оценка может привести к снижению параллелизма, чем ожидалось, если количество фактически созданных маркеров невелико. Для максимальной параллелизма убедитесь, что max_tokens значение максимально близко к размеру истинного поколения.

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

    a. > Если фактическая оценка, то разница добавляется в использование развертывания b. Если фактическая < оценка, то разница вычитается.

  4. Общее использование уменьшается на непрерывной скорости на основе числа развернутых PTUS.

Примечание.

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

Diagram showing how subsequent calls are added to the utilization.

Сколько одновременных вызовов можно использовать при развертывании?

Количество одновременных вызовов зависит от фигуры каждого вызова (размер запроса, max_token параметр и т. д.). Служба будет продолжать принимать вызовы до тех пор, пока использование не достигнет 100 %. Чтобы определить приблизительное количество одновременных вызовов, можно моделировать максимальные запросы в минуту для определенной фигуры вызова в калькуляторе емкости. Если система создает меньше количества маркеров выборки, таких как max_token, оно будет принимать больше запросов.

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