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


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

Служба Azure OpenAI предоставляет доступ REST API к крупным языковым моделям (LLM) OpenAI, добавляя возможности сети и безопасности 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 ID. Используйте Microsoft Entra ID для проверки подлинности и авторизации доступа к Azure OpenAI с помощью управления доступом на основе ролей (RBAC). Отключите локальную проверку подлинности в Службах ИИ Azure и задайте для значение disableLocalAuthtrue. Предоставьте удостоверениям, которые выполняют завершение или создание образа, роль пользователя OpenAI Cognitive Services . Предоставьте конвейерам автоматизации модели и нерегламентированному доступу к обработке и анализу данных роль участника Cognitive Services OpenAI. Использование Microsoft Entra ID централизует компонент управления удостоверениями и исключает использование ключей API. Использование RBAC с Microsoft Entra ID гарантирует, что пользователи или группы имеют точно необходимые разрешения для выполнения своей работы. Такое точное управление доступом невозможно с помощью ключей API Azure OpenAI.
Использование ключей, управляемых клиентом. Используйте управляемые клиентом ключи для точно настроенных моделей и обучающих данных, отправленных в Azure OpenAI. Использование ключей, управляемых клиентом, обеспечивает большую гибкость при создании, смене, отключении и отзыве элементов управления доступом.
Защита от атак со снятой защитой. Используйте Безопасность содержимого ИИ Azure Studio для обнаружения рисков, связанных с взломом. Обнаружение попыток взлома для выявления и блокировки запросов, которые пытаются обойти механизмы безопасности развертываний Azure OpenAI.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Эффективность операционных процессов

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Политика Azure

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

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

Дальнейшие действия

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