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


Общие сведения о возможностях шлюза искусственного интеллекта в службе "Управление API Azure"

ПРИМЕНЯЕТСЯ ДЛЯ: Все уровни управления API

В этой статье представлены возможности управления API в Azure для работы с API генеративного ИИ, таких как те, которые предоставляются службой Azure OpenAI. Azure API Management предоставляет ряд политик, метрик и других функций для повышения безопасности, производительности и надежности API, обслуживающих ваши интеллектуальные приложения. В совокупности эти функции называются возможностями шлюза ИИ для создаваемых API-интерфейсов искусственного интеллекта.

Примечание

  • Эта статья сосредоточена на возможностях управления API, предоставляемыми службой Azure OpenAI. Многие возможности шлюза искусственного интеллекта применяются к другим API-интерфейсам большой языковой модели (LLM), включая доступные через API вывода моделей ИИ Azure.
  • Возможности шлюза искусственного интеллекта — это функции существующего шлюза API управления API, а не отдельного шлюза API. Для получения дополнительной информации об управлении API см. обзор Azure API Management.

Проблемы в управлении генеративными API ИИ

Один из основных ресурсов, имеющихся у вас в услугах генеративного ИИ, — это токены. Сервис Azure OpenAI выделяет квоту для развертывания ваших моделей, выраженную в токенах в минуту (TPM), которая затем распределяется между потребителями ваших моделей - например, различными приложениями, командами разработчиков, отделами внутри компании и т.д.

Azure упрощает подключение одного приложения к сервису Azure OpenAI: вы можете подключиться напрямую, используя ключ API с ограничением TPM, настроенным непосредственно на уровне развертывания модели. Однако, когда вы начинаете расширять свое портфолио приложений, вам предстоит иметь дело с множеством приложений, обращающихся к одному или даже нескольким конечным точкам службы Azure OpenAI, развернутым как плата по факту использования или экземпляры Provisioned Throughput Units (PTU). Это связано с определёнными трудностями:

  • Как отслеживается использование токенов в нескольких приложениях? Можно ли рассчитать перекрестные затраты для нескольких приложений/команд, которые используют модели Azure OpenAI Service?
  • Как вы гарантируете, что одно приложение не исчерпает всю квоту TPM, оставив другие приложения без возможности использовать модели Azure OpenAI Service?
  • Как надежно распределяется ключ API между несколькими приложениями?
  • Как распределяется нагрузка между несколькими конечными точками Azure OpenAI? Можете ли вы гарантировать, что все заявленные мощности в PTU были исчерпаны перед переключением на инстансы с оплатой по факту использования?

Остальная часть этой статьи описывает, как Azure API Management может помочь вам справиться с этими проблемами.

Импортируйте ресурс службы Azure OpenAI в качестве API

Используйте импорт API с конечной точки Azure OpenAI Service в управление API Azure с помощью простого щелчка. Управление API упрощает процесс подключения, автоматически импортируя схему OpenAPI для Azure OpenAI API и настраивая аутентификацию к конечной точке Azure OpenAI с использованием управляемой идентичности, устраняя необходимость в ручной настройке. В рамках того же удобного пользовательского интерфейса вы можете предварительно настроить политики для ограничений на токены и излучения токенов.

Снимок экрана плитки Azure OpenAI API в портале.

Политика ограничения токенов

Настройте политику ограничения токенов Azure OpenAI, чтобы управлять и обеспечивать соблюдение лимитов для каждого потребителя API на основе использования токенов сервиса Azure OpenAI. С этой политикой вы можете установить ограничение скорости, выраженное в токенах в минуту (TPM). Вы также можете установить квоту на токены на определенный период, например, ежечасно, ежедневно, еженедельно, ежемесячно или ежегодно.

Диаграмма ограничения токенов сервиса Azure OpenAI в управлении API.

Эта политика обеспечивает гибкость в установлении лимитов, основанных на токенах, для любого счетчика, например, для ключа подписки, исходящего IP-адреса или произвольного ключа, определяемого через выражение политики. Политика также позволяет заранее рассчитывать токены запросов на стороне управления Azure API, минимизируя ненужные запросы к бэкенду службы Azure OpenAI, если запрос уже превышает лимит.

Пример, который приводится ниже, демонстрирует, как установить лимит TPM 500 на ключ подписки:

<azure-openai-token-limit counter-key="@(context.Subscription.Id)" 
    tokens-per-minute="500" estimate-prompt-tokens="false" remaining-tokens-variable-name="remainingTokens">
</azure-openai-token-limit>

Подсказка

Для управления и обеспечения ограничения токенов для LLM API, доступных через Azure AI Model Inference API, API Management предоставляет эквивалентную политику llm-token-limit.

Генерация метрик токена по политике

Политика метрики выпуска токенов Azure OpenAI отправляет метрики в Application Insights о потреблении токенов LLM через API службы Azure OpenAI. Политика помогает предоставить обзор использования моделей сервиса Azure OpenAI в рамках нескольких приложений или потребителей API. Эта политика может быть полезна в сценариях возврата платежей, мониторинга и планирования мощностей.

Диаграмма эмиссии метрик токенов службы Azure OpenAI с использованием управления API.

Эта политика фиксирует подсказки, завершения и общие метрики использования токенов и отправляет их в пространство имен Application Insights по вашему выбору. Более того, вы можете настроить или выбрать из заранее определённых размеров для разделения метрик использования токенов, чтобы анализировать метрики по идентификатору подписки, IP-адресу или произвольной размерности на ваш выбор.

Например, следующая политика отправляет метрики в Application Insights, разделённые по IP-адресу клиента, API и пользователю.

<azure-openai-emit-token-metric namespace="openai">
    <dimension name="Client IP" value="@(context.Request.IpAddress)" />
    <dimension name="API ID" value="@(context.Api.Id)" />
    <dimension name="User ID" value="@(context.Request.Headers.GetValueOrDefault("x-user-id", "N/A"))" />
</azure-openai-emit-token-metric>

Tip

Чтобы отправить метрики для LLM API, доступных через Azure AI Model Inference API, управление API предоставляет эквивалентную политику llm-emit-token-metric.

Балансировщик нагрузки для серверной стороны и ограничитель тока

Одним из вызовов при создании интеллектуальных приложений является обеспечение устойчивости приложений к сбоям на стороне сервера и способности справляться с высокими нагрузками. Настроив конечные точки вашей службы Azure OpenAI с использованием бэкендов в Azure API Management, вы сможете распределить нагрузку между ними. Вы также можете определить правила прерывания цепи, чтобы остановить перенаправление запросов к бэкендам службы Azure OpenAI, если они не отвечают.

Поддержка балансировщика нагрузки load balancer на стороне бекенда включает методы балансировки нагрузки round-robin, по весу и на основе приоритетов, что дает вам гибкость в определении стратегии распределения нагрузки, соответствующей вашим конкретным требованиям. Например, установите приоритеты в конфигурации балансировки нагрузки, чтобы обеспечить оптимальное использование определенных конечных точек Azure OpenAI, особенно тех, которые приобретены в виде PTU.

Схема использования балансировки нагрузки на бэкенде в управлении API.

В бэкенде функция автоматического выключателя обеспечивает динамичную продолжительность срабатывания, применяя значения из заголовка Retry-After, предоставленного бэкендом. Это обеспечивает точное и своевременное восстановление серверов, максимизируя использование ваших приоритетных серверов.

Схема использования переключателя цепи в управлении API.

Политика семантического кэширования

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

Схема семантического кэширования в управлении API.

В управлении API включите семантическое кэширование, используя Azure Redis Enterprise или другой совместимый с RediSearch внешний кэш, подключенный к Azure API Management. Используя API встраивания Azure OpenAI Service, политики azure-openai-semantic-cache-store и azure-openai-semantic-cache-lookup сохраняют и извлекают семантически схожие результаты дополнений из кеша. Данный подход обеспечивает повторное использование завершений, что приводит к снижению потребления токенов и улучшению производительности ответов.

Tip

Чтобы включить семантическое кеширование для LLM API, доступных через Azure AI Model Inference API, API Management предоставляет соответствующие политики llm-semantic-cache-store-policy и llm-semantic-cache-lookup-policy.

Лаборатории и образцы

Архитектурные и дизайнерские соображения