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


Перспектива Azure Well-Architected Framework в Службе Azure OpenAI

Служба Azure OpenAI предоставляет доступ REST API к большим языковым моделям OpenAI (LLMs), добавляя возможности сети и безопасности Azure. В этой статье приводятся рекомендации по архитектуре, помогающие принимать обоснованные решения при использовании Azure OpenAI в рамках архитектуры рабочей нагрузки. Руководство основано на основных принципах Azure Well-Architected Framework.

Внимание

Как использовать это руководство

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

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

Базовая архитектура, демонстрирующая основные рекомендации: базовая эталонная архитектура чата OpenAI.

Область технологий

Эта проверка посвящена исключительно Azure OpenAI.

Надежность

Цель компонента "Надежность" — обеспечить непрерывную функциональность путем создания достаточной устойчивости и возможности быстрого восстановления после сбоев.

Принципы проектирования надежности обеспечивают высокоуровневую стратегию проектирования, применяемую для отдельных компонентов, системных потоков и системы в целом.

Контрольный список проектирования

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

  • Устойчивость. Выберите подходящий вариант развертывания для оплаты по мере использования или подготовленной пропускной способности в зависимости от варианта использования. Так как зарезервированная емкость повышает устойчивость, выберите подготовленную пропускную способность для производственных решений. Подход с оплатой по мере использования идеально подходит для сред разработки и тестирования.

  • Избыточность. Добавьте соответствующие шлюзы перед развертываниями Azure OpenAI. Шлюз должен иметь возможность противостоять временным сбоям, таким как регулирование, а также перенаправление на несколько экземпляров Azure OpenAI. Рассмотрите возможность маршрутизации экземпляров в разных регионах для создания региональной избыточности.

  • Устойчивость. Если вы используете подготовленную пропускную способность, рассмотрите возможность развертывания экземпляра с оплатой по мере использования для обработки переполнения. Вы можете перенаправить вызовы к экземпляру с оплатой по мере использования через шлюз при регулировании подготовленной модели пропускной способности.

  • Устойчивость. Отслеживайте использование емкости, чтобы не превышать ограничения пропускной способности. Регулярно просматривайте использование емкости, чтобы добиться более точного прогнозирования и предотвратить прерывания работы служб из-за ограничений емкости.

  • Устойчивость. Следуйте инструкциям по тонкой настройке больших файлов данных и импортируйте данные из хранилища BLOB-объектов Azure. Большие файлы, 100 МБ или больше, могут стать неустойчивыми при отправке через многопартийные формы, так как запросы являются атомарными и не могут быть извлечены или возобновлены.

  • Восстановление. Определите стратегию восстановления, которая включает план восстановления для моделей, которые настраиваются и для обучения данных, отправленных в Azure OpenAI. Так как Azure OpenAI не имеет автоматической отработки отказа, необходимо разработать стратегию, которая охватывает всю службу и все зависимости, такие как хранилище, содержащее данные обучения.

Рекомендации

Рекомендация Преимущества
Отслеживайте ограничения скорости для оплаты по мере использования: если вы используете подход с оплатой по мере использования, управляйте ограничениями скорости развертывания модели и отслеживайте использование маркеров в минуту (TPM) и запросов в минуту (RPM). Эта важная информация о пропускной способности предоставляет сведения, необходимые для обеспечения достаточного количества доверенного платформенного модуля из квоты для удовлетворения спроса на развертывания.

Назначение достаточной квоты предотвращает регулирование вызовов развернутых моделей.
Отслеживайте использование, управляемое подготовкой, для подготовленной пропускной способности. Если вы используете подготовленную модель оплаты пропускной способности, отслеживайте использование, управляемое подготовкой. Важно отслеживать использование, управляемое подготовкой, чтобы гарантировать, что она не превышает 100 %, чтобы предотвратить регулирование вызовов развернутых моделей.
Включите функцию динамической квоты: если бюджет рабочей нагрузки поддерживает ее, выполните перепроизбытку, включив динамическую квоту для развертываний моделей. Динамическая квота позволяет развертыванию использовать больше емкости, чем квота обычно делает, если есть доступная емкость с точки зрения Azure. Дополнительная емкость квоты может потенциально предотвратить нежелательное регулирование.
Настройка фильтров содержимого: настройте фильтры содержимого, чтобы свести к минимуму ложные срабатывания из чрезмерно агрессивных фильтров. Фильтры содержимого блокируют запросы или завершения на основе непрозрачного анализа риска. Убедитесь, что фильтры содержимого настроены, чтобы разрешить ожидаемое использование рабочей нагрузки.

Безопасность

Цель компонента "Безопасность" заключается в обеспечении конфиденциальности, целостности и доступности для рабочей нагрузки .

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

Контрольный список проектирования

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

  • Защита конфиденциальности. Если вы отправляете обучающие данные в Azure OpenAI, используйте управляемые клиентом ключи для шифрования данных, реализуйте стратегию смены ключей и удалите данные обучения, проверки и результатов обучения. Если вы используете внешнее хранилище данных для обучения данных, следуйте рекомендациям по обеспечению безопасности для этого хранилища. Например, для Хранилище BLOB-объектов Azure используйте ключи, управляемые клиентом, для шифрования и реализуйте стратегию смены ключей. Используйте управляемый доступ на основе удостоверений, реализуйте периметр сети с помощью частных конечных точек и включите журналы доступа.

  • Защита конфиденциальности. Защита от кражи данных путем ограничения исходящих URL-адресов, к которым могут получить доступ ресурсы Azure OpenAI.

  • Защита целостности. Реализуйте элементы управления доступом для проверки подлинности и авторизации доступа пользователей к системе с помощью принципа наименьших привилегий и использования отдельных удостоверений вместо ключей.

  • Защита целостности. Реализуйте обнаружение рисков в тюрьме для защиты развертываний языковой модели от атак внедрения запросов.

  • Защита доступности. Используйте средства управления безопасностью для предотвращения атак, которые могут исчерпать квоты использования модели. Вы можете настроить элементы управления для изоляции службы в сети. Если служба должна быть доступна из Интернета, рассмотрите возможность использования шлюза для блокировки предполагаемых злоупотреблений с помощью маршрутизации или регулирования.

Рекомендации

Рекомендация Преимущества
Безопасные ключи. Если для архитектуры требуется проверка подлинности на основе ключей Azure OpenAI, сохраните эти ключи в Azure Key Vault, а не в коде приложения. Разделение секретов от кода путем их хранения в Key Vault снижает вероятность утечки секретов. Разделение также упрощает централизованное управление секретами, упрощая такие обязанности, как смена ключей.
Ограничение доступа. Отключите общедоступный доступ к Azure OpenAI, если рабочая нагрузка не требует его. Создайте частные конечные точки при подключении от потребителей в виртуальной сети Azure. Управление доступом к Azure OpenAI помогает предотвратить атаки от несанкционированных пользователей. Использование частных конечных точек гарантирует, что сетевой трафик остается закрытым между приложением и платформой.
Идентификатор Microsoft Entra: используйте идентификатор Microsoft Entra для проверки подлинности и авторизации доступа к Azure OpenAI с помощью управления доступом на основе ролей (RBAC). Отключите локальную проверку подлинности в службах ИИ Azure и установите для нее trueзначениеdisableLocalAuth. Предоставьте удостоверениям, выполняющим завершение или создание образа, роль пользователя OpenAI в Cognitive Services. Предоставление конвейерам автоматизации моделей и доступу к нерегламентированной обработке и анализу данных, например Участник OpenAI Cognitive Services. Использование идентификатора Microsoft Entra централизовано компонент управления удостоверениями и устраняет использование ключей API. Использование RBAC с идентификатором Microsoft Entra гарантирует, что у пользователей или групп есть точные разрешения, необходимые для выполнения их работы. Такой точный контроль доступа невозможен с помощью ключей API OpenAI Azure.
Используйте управляемые клиентом ключи: используйте управляемые клиентом ключи для точно настроенных моделей и обучающих данных, отправленных в Azure OpenAI. Использование ключей, управляемых клиентом, обеспечивает большую гибкость для создания, поворота, отключения и отзыва элементов управления доступом.
Защита от атак в тюрьме: используйте Студию безопасности содержимого ИИ Azure для обнаружения рисков в тюрьме. Обнаружение попыток взлома тюрьмы для выявления и блокировки запросов, которые пытаются обойти механизмы безопасности развертываний Azure OpenAI.

Оптимизация затрат

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

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

Контрольный список проектирования

Запустите стратегию проектирования на основе контрольного списка проверок проектирования для оптимизации затрат для инвестиций. Точно настройте структуру, чтобы рабочая нагрузка была согласована с выделенным бюджетом. Ваша разработка должна использовать соответствующие возможности Azure, отслеживать инвестиции и находить возможности для оптимизации с течением времени.

  • Управление затратами: разработка модели затрат, учитывая размеры запросов. Общие сведения о размерах ввода запросов и ответов, а также о том, как текст преобразуется в маркеры, помогает создать жизнеспособную модель затрат.

  • Оптимизация использования. Начните с цен на оплату по мере использования Azure OpenAI, пока не будет прогнозируемо использование маркеров.

  • Оптимизация скорости. Если использование маркера достаточно высоко и прогнозируемо в течение определенного периода времени, используйте подготовленную модель ценообразования пропускной способности для оптимизации затрат.

  • Оптимизация использования. При выборе моделей рассмотрите цены и возможности модели. Начните с менее дорогостоящих моделей для менее сложных задач, таких как создание текста или задачи завершения. Для более сложных задач, таких как перевод языка или понимание контента, рассмотрите возможность использования более сложных моделей. Учитывайте различные возможности модели и максимальные ограничения использования маркеров при выборе модели, подходящей для вариантов использования, таких как внедрение текста, создание изображений или сценарии транскрибирования. Тщательно выбрав модель, которая лучше всего подходит для ваших потребностей, вы можете оптимизировать затраты при достижении требуемой производительности приложения.

  • Оптимизация использования. Используйте ограничения, ограничивающие маркеры, предлагаемые вызовами API, такими как max_tokens и n, которые указывают количество завершений для создания.

  • Оптимизация использования. Максимальное увеличение точек останова цен Azure OpenAI, например точной настройки и точек останова модели, таких как создание изображений. Так как штрафная настройка взимается в час, используйте столько времени, сколько у вас есть в час, чтобы улучшить результаты точной настройки, избегая скольжения в следующий период выставления счетов. Аналогичным образом стоимость создания 100 изображений совпадает с стоимостью для 1 изображения. Максимальное увеличение ценовых точек останова в ваших преимуществах.

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

  • Настройка использования: оптимизация длины ввода и ответа запроса. Более длинные запросы повышают затраты, потребляя больше маркеров. Однако запросы, отсутствующие в достаточном контексте, не помогают моделям получить хорошие результаты. Создайте краткие запросы, которые предоставляют достаточно контекста для модели, чтобы создать полезный ответ. Кроме того, убедитесь, что вы оптимизируете предел длины ответа.

  • Экономичность: пакетные запросы, где это возможно, чтобы свести к минимуму затраты на вызов, что может снизить общие затраты. Убедитесь, что вы оптимизируете размер пакета.

  • Экономичность. Поскольку модели имеют разные затраты на настройку, рассмотрите эти затраты, если решение требует точной настройки.

  • Мониторинг и оптимизация. Настройка системы отслеживания затрат, которая отслеживает использование модели. Используйте эти сведения для информирования о выборе модели и размерах запросов.

Рекомендации

Рекомендация Преимущества
Разработка клиентского кода для установки ограничений. Пользовательские клиенты должны использовать функции ограничения API завершения Azure OpenAI, например максимальное ограничение на количество маркеров на модель (max_tokens) или количество завершений для создания (n). Ограничения на настройку гарантируют, что сервер не создает больше, чем потребности клиента. Использование функций API для ограничения потребления служб соответствует потребностям клиента. Это экономит деньги, гарантируя, что модель не создает слишком длинный ответ, который потребляет больше маркеров, чем необходимо.
Отслеживайте использование по мере использования. Если вы используете подход по мере использования, следите за использованием доверенного платформенного модуля и RPM. Используйте эти сведения для информирования об архитектурных решениях по проектированию, таких как то, какие модели следует использовать, а также для оптимизации размеров запросов. Непрерывный мониторинг TPM и RPM предоставляет соответствующие метрики для оптимизации стоимости моделей Azure OpenAI. Вы можете использовать этот мониторинг с функциями модели и ценами на модель для оптимизации использования модели. Этот мониторинг также можно использовать для оптимизации размеров запросов.
Мониторинг использования подготовленной пропускной способности. Если вы используете подготовленную пропускную способность, отслеживайте использование, управляемое подготовкой, чтобы убедиться, что вы не используете подготовленную пропускную способность, которую вы приобрели. Непрерывное мониторинг использования, управляемого подготовкой, дает вам сведения, необходимые для понимания того, не используется ли подготовленная пропускная способность.
Управление затратами: используйте функции управления затратами с помощью OpenAI для мониторинга затрат, настройки бюджета для управления затратами и создания оповещений для уведомления заинтересованных лиц о рисках или аномалиях. Мониторинг затрат, настройка бюджетов и настройка оповещений обеспечивают управление соответствующими процессами подотчетности.

Эффективность работы

Операционное превосходство в основном посвящено процедурам разработки, наблюдаемости и управлению выпусками.

Принципы проектирования операционного превосходства обеспечивают высокоуровневую стратегию разработки для достижения этих целей в отношении требований рабочей нагрузки.

Контрольный список проектирования

Запустите стратегию проектирования на основе контрольного списка проверок проектирования для повышения эффективности работы. Этот контрольный список определяет процессы для наблюдаемости, тестирования и развертывания, связанных с Azure OpenAI.

  • Язык и региональные параметры Azure DevOps. Обеспечение развертывания экземпляров Azure OpenAI в различных средах, таких как разработка, тестирование и рабочая среда. Убедитесь, что у вас есть среды для поддержки непрерывного обучения и экспериментов на протяжении всего цикла разработки.

  • Наблюдаемость: мониторинг, агрегат и визуализация соответствующих метрик.

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

  • Развертывание с уверенностью. Используйте инфраструктуру в качестве кода (IaC) для развертывания Azure OpenAI, развертываний моделей и другой инфраструктуры, необходимой для точной настройки моделей.

  • Развертывание с уверенностью. Следуйте рекомендациям по выполнению операций с крупной языковой моделью (LLMOps) для управления виртуальными машинами Azure OpenAI, включая развертывание, настройку и проектирование запросов.

  • Автоматизация для повышения эффективности. Если вы используете проверку подлинности на основе ключей, реализуйте стратегию автоматической смены ключей.

Рекомендации

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

Уровень производительности

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

Принципы проектирования эффективности производительности предоставляют высокоуровневую стратегию проектирования для достижения этих целей емкости в отношении ожидаемого использования.

Контрольный список проектирования

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

  • Емкость: оценка требований эластичности потребителей. Определите высокоприоритетный трафик, который требует синхронных ответов и низкоприоритетного трафика, который может быть асинхронным и пакетным.

  • Емкость: требования к потреблению маркеров теста на основе предполагаемых требований от потребителей. Попробуйте использовать средство проверки пропускной способности Azure OpenAI, чтобы проверить пропускную способность при использовании подготовленных развертываний единиц пропускной способности (PTU).

  • Емкость. Используйте подготовленную пропускную способность для рабочих нагрузок. Подготовленная пропускная способность обеспечивает выделенную память и вычислительные ресурсы, зарезервированную емкость и согласованную максимальную задержку для указанной версии модели. Предложение с оплатой по мере использования может страдать от шумных проблем соседей , таких как увеличение задержки и регулирование в регионах при интенсивном использовании. Кроме того, подход с оплатой по мере использования не предлагает гарантированной емкости.

  • Емкость. Добавьте соответствующие шлюзы перед развертываниями Azure OpenAI. Убедитесь, что шлюз может направляться в несколько экземпляров в одном или разных регионах.

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

  • Емкость: синхронно отправлять высокоприоритетные запросы. Очереди низкоприоритетных запросов и их отправку в пакетах при низком спросе.

  • Емкость. Выберите модель, которая соответствует вашим требованиям к производительности, учитывая компромисс между скоростью и сложностью вывода. Производительность модели может значительно отличаться в зависимости от выбранного типа модели. Модели, предназначенные для ускорения, обеспечивают более быстрое время отклика, что может оказаться полезным для приложений, требующих быстрого взаимодействия. И наоборот, более сложные модели могут обеспечить более качественные выходные данные за счет увеличения времени отклика.

  • Обеспечение производительности. Для таких приложений, как чат-боты или диалоговые интерфейсы, рекомендуется реализовать потоковую передачу. Потоковая передача может повысить производительность приложений Azure OpenAI, предоставляя пользователям ответы постепенно, повышая взаимодействие с пользователем.

  • Достичь производительности. Определите, когда следует использовать точную настройку перед фиксацией для точной настройки. Хотя существуют хорошие варианты использования для точной настройки, например, когда информация, необходимая для управления моделью, слишком длинна или сложна, чтобы вписаться в запрос, убедитесь, что подходы проектирования и извлечения дополненного поколения (RAG) не работают или явно дороже.

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

Рекомендации

Для повышения эффективности производительности Azure OpenAI не рекомендуется использовать рекомендуемые конфигурации.

Политика Azure

Azure предоставляет широкий набор встроенных политик, связанных с Azure OpenAI и его зависимостями. Некоторые из предыдущих рекомендаций можно проверять с помощью Политика Azure. Рассмотрим следующие определения политик:

Эти определения Политика Azure также являются рекомендациями по обеспечению безопасности Помощника по безопасности Azure OpenAI.

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

Рассмотрим следующие статьи как ресурсы, демонстрирующие рекомендации, выделенные в этой статье.