Поделиться через


Ограничение использования маркера API для крупной языковой модели

ОБЛАСТЬ ПРИМЕНЕНИЯ: Разработчик | Базовый | Базовая версия 2 | Стандартный | Standard v2 | Премия

Политика llm-token-limit предотвращает пики использования API больших языковых моделей (LLM) на основе ключа путем ограничения потребления маркеров LLM до указанного числа в минуту. При превышении использования маркера вызывающий объект получает 429 Too Many Requests код состояния ответа.

Используя метрики использования маркеров, возвращаемые из конечной точки LLM, политика может точно отслеживать и применять ограничения в режиме реального времени. Политика также включает предварительное вычисление маркеров запроса с помощью Управление API, минимизируя ненужные запросы к серверной части LLM, если ограничение уже превышено.

Примечание.

В настоящее время эта политика находится в предварительной версии.

Примечание.

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

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

Используйте политику с API LLM, добавленными в Azure Управление API, которые доступны через API вывода модели ИИ Azure.

Правило политики

<llm-token-limit counter-key="key value"
        tokens-per-minute="number"
        estimate-prompt-tokens="true | false"    
        retry-after-header-name="custom header name, replaces default 'Retry-After'" 
        retry-after-variable-name="policy expression variable name"
        remaining-tokens-header-name="header name"  
        remaining-tokens-variable-name="policy expression variable name"
        tokens-consumed-header-name="header name"
        tokens-consumed-variable-name="policy expression variable name" />

Атрибуты

Атрибут Description Обязательное поле По умолчанию.
counter-key Ключ, используемый для политики ограничения маркеров. Для каждого значения ключа используется один счетчик для всех областей, для которых настроена политика. Допустимы выражения политики. Да Н/П
токены в минуту Максимальное количество маркеров, потребляемых запросом и завершением в минуту. Да Н/П
estimate-prompt-token Логическое значение, определяющее, следует ли оценить количество маркеров, необходимых для запроса:
- true: оцените количество токенов на основе схемы запроса в API; может снизить производительность.
- false: не оцените маркеры запроса.

Если задано значение false, остальные маркеры counter-key вычисляются с помощью фактического использования маркеров из ответа модели. Это может привести к отправке запросов в модель, превышающую ограничение маркера. В таком случае это будет обнаружено в ответе, и все успешные запросы будут заблокированы политикой до тех пор, пока ограничение маркера не будет освобождено снова.
Да Н/П
retry-after-header-name Имя пользовательского заголовка ответа, значение которого является рекомендуемой интервалом повтора в секундах после превышения указанного tokens-per-minute значения. Выражения политики не допускаются. No Retry-After
retry-after-variable-name Имя переменной, которая сохраняет рекомендуемый интервал повторных попыток в секундах после превышения указанного tokens-per-minute значения. Выражения политики не допускаются. No Н/П
остальные токены-заголовок-name Имя заголовка ответа, значение которого после каждого выполнения политики — это количество оставшихся маркеров, разрешенных для интервала времени. Выражения политики не допускаются. No Н/П
остальные токены-переменные-name Имя переменной, которая после каждого выполнения политики сохраняет количество оставшихся маркеров, разрешенных для интервала времени. Выражения политики не допускаются. No Н/П
token-consumed-header-name Имя заголовка ответа, значение которого — количество маркеров, потребляемых как запросом, так и завершением. Заголовок добавляется в ответ только после получения ответа от серверной части. Выражения политики не допускаются. No Н/П
token-consumed-variable-name Имя переменной, инициализированной с предполагаемым количеством маркеров в запросе в разделе конвейера, backend если estimate-prompt-tokens значение равно true нулю. Переменная обновляется с указанным числом при получении ответа в outbound разделе. No Н/П

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

Примечания об использовании

  • Эту политику можно использовать несколько раз для определения политики.
  • estimate-prompt-tokens Если задано значение false, значения в разделе использования ответа от API LLM используются для определения использования маркеров.
  • Некоторые конечные точки LLM поддерживают потоковую передачу ответов. Если stream задано значение true в запросе API для включения потоковой передачи, маркеры запроса всегда оцениваются независимо от значения атрибута estimate-prompt-tokens .
  • Управление API использует один счетчик для каждого counter-key значения, указанного в политике. Счетчик обновляется во всех областях, в которых политика настроена с этим значением ключа. Если вы хотите настроить отдельные счетчики в разных областях (например, определенный API или продукт), укажите разные значения ключей в разных областях. Например, добавьте строку, которая определяет область к значению выражения.

Пример

В следующем примере ограничение маркера в 5000 в минуту определяется IP-адресом вызывающего объекта. Политика не оценивает количество маркеров, необходимых для запроса. После каждого выполнения политики остальные маркеры, разрешенные для этого ВЫЗЫВАющего IP-адреса в период времени, хранятся в переменной remainingTokens.

<policies>
    <inbound>
        <base />
        <llm-token-limit
            counter-key="@(context.Request.IpAddress)"
            tokens-per-minute="5000" estimate-prompt-tokens="false" remaining-tokens-variable-name="remainingTokens" />
    </inbound>
    <outbound>
        <base />
    </outbound>
</policies>

Дополнительные сведения о работе с политиками см. в нижеуказанных статьях.