Справочник - AIP-C01 AWS Certified Generative AI Developer - Professional
Последняя проверка: май 2026 г.
Сжатый справочник архитектурных шаблонов, проверяемых на экзамене AIP-C01. Читайте сверху вниз или переходите к нужному разделу.
Интеграция базовых моделей, управление данными и соответствие требованиям
Выберите базовую модель Bedrock для конкретного варианта использования.
Длинноконтекстные рассуждения + использование инструментов → Claude (Sonnet/Opus). Чат, оптимизированный по стоимости → Claude Haiku или Titan Text Lite. Код → Claude или Llama. Встраивания (Embeddings) → Titan Embeddings V2 или Cohere Embed. Генерация изображений → Titan Image, Stable Diffusion или Nova Canvas. Модели с открытыми весами и собственным хостингом → Llama, Mistral или Custom Model Import.
Почему: Ни одна модель не является лучшей по всем параметрам: стоимость, задержка, возможности и условия лицензирования. Сопоставьте класс модели с узким местом.
Документы имеют естественные сдвиги тем внутри абзацев; разбиения фиксированного размера прерывают предложения на полуслове.
Семантическое разбиение на фрагменты. Базы знаний Bedrock группируют последовательные предложения, встраивания (embeddings) которых близки, и разделяют их по смысловым границам.
Почему: Сохраняет связные идеи внутри фрагмента → более чистый поиск, более высокое качество ответов.
Исходный PDF-файл содержит текст + диаграммы; пользователи задают вопросы, требующие понимания диаграмм.
Включите расширенный синтаксический анализ KB Bedrock с использованием базовой модели (Claude/Nova) в качестве парсера. Диаграммы и таблицы описываются с помощью зрения, затем встраиваются (embedded).
Почему: Парсинг по умолчанию обрабатывает только текст. Мультимодальный парсинг преобразует визуальный контент в описательный текст перед встраиванием (embedding).
V2 поддерживает настраиваемые измерения (256/512/1024) и превосходит G1 в многоязычных бенчмарках. G1 фиксирован на 1536. Выберите V2 для сценариев с ограниченным хранилищем или для неанглоязычных случаев; G1 только для обеспечения обратной совместимости.
Каталог продукции на 500 тыс. позиций: короткие названия (50 слов) + длинные спецификации (500 слов). Оптимизируйте качество поиска + стоимость.
Встраивайте каждый элемент один раз (объединенные или отдельные поля). Используйте Titan Embeddings V2 с уменьшенными измерениями (256 или 512) для экономии; встраивайте запрос и документ одной и той же моделью.
Почему: Смешивание моделей встраивания или пропуск нормализации нарушает поиск сходства. Меньшие измерения сокращают затраты на хранение и запросы с незначительной потерей качества.
Выберите векторное хранилище для баз знаний Bedrock.
По умолчанию / самая быстрая настройка → Amazon OpenSearch Serverless (автоматически управляемый). Задержки менее миллисекунды с частыми обновлениями схемы + реляционные соединения → Aurora PostgreSQL с pgvector. Существующий клиент Pinecone / MongoDB Atlas / Redis → сохраните его. Маленькая KB (<10 тыс. документов) с оптимизацией стоимости → Aurora pgvector или Neptune Analytics.
Почему: OpenSearch Serverless - это путь наименьшего сопротивления по умолчанию. Aurora pgvector выигрывает, когда вам нужны транзакции или соединения по метаданным.
KB возвращает семантически релевантные документы, но они относятся к устаревшим/неверным региональным версиям.
Добавьте метаданные к исходным файлам (`version`, `region`, `effective_date`) и применяйте фильтры метаданных во время запроса через `retrievalConfiguration.vectorSearchConfiguration.filter`.
Почему: Чистое векторное сходство игнорирует актуальность и авторитет. Фильтрация по метаданным сужает пул кандидатов перед ранжированием.
RAG пропускает запросы, содержащие точные идентификаторы (SKU, коды ошибок, номера нормативных актов), потому что семантический поиск переоценивает текст со схожим значением.
Включите гибридный поиск в KB (семантический + по ключевым словам/BM25). Объединяет векторное сходство с лексическим соответствием для ID, кодов и имен собственных.
При Top-k=5 извлекается 5 фрагментов, но наиболее релевантный часто находится на 3-м или 4-м месте.
Увеличьте `numberOfResults` до 20, затем включите модель переранжирования (Cohere Rerank или Amazon Rerank) для повторного упорядочивания по релевантности к исходному запросу.
Почему: Сходство встраивания (embedding similarity) ≠ релевантность задачи. Переранжировщики с кросс-кодировщиком видят запрос + фрагмент вместе и точно оценивают.
Исходные документы S3 часто обновляются; KB должна всегда отражать последние версии без ручной синхронизации.
Настройте источник данных KB для автоматической синхронизации через уведомления о событиях S3 → EventBridge → StartIngestionJob или используйте запланированную синхронизацию KB. Избегайте использования кнопки "Sync" в ручной консоли.
Модель QA для длинных документов галлюцинирует на вопросы, ответы на которые находятся в середине документа.
Не передавайте полные документы в промпт - разбивайте на фрагменты + извлекайте через RAG, чтобы только релевантные фрагменты достигали модели. Если полный документ обязателен, используйте модель с сильной долгосрочной контекстной памятью (Claude Sonnet 200K) и размещайте вопрос после документа.
Почему: Большинство LLM демонстрируют деградацию запоминания "потеряно в середине". RAG обходит это; размещение помогает, когда RAG недоступен.
Выберите самую дешевую кастомизацию, которая соответствует требованиям качества.
Попробуйте по порядку: (1) промпт-инжиниринг, (2) RAG с KB, (3) дообучение (fine-tuning), (4) продолженное предварительное обучение (continued pre-training), (5) Custom Model Import. Остановитесь на первом, который соответствует требованиям.
Почему: Усилия и текущие затраты растут на каждом шаге. Дообучение (fine-tuning) + Provisioned Throughput намного дороже, чем RAG.
Адаптируйте базовую модель к специализированной лексике (юридическая, медицинская, научная) с использованием большого количества неразмеченного текста из предметной области.
Продолженное предварительное обучение на неразмеченном корпусе предметной области. Отличается от дообучения инструкциям (instruction fine-tuning), для которого нужны пары промпт-завершение.
Почему: Продолженное предварительное обучение обновляет понимание языка; дообучение инструкциям учит поведению при выполнении задач. Разная форма данных, разная цель.
Данные о взаимодействии с клиентами для дообучения содержат имена, электронные письма, номера телефонов.
Очистите или токенизируйте PII перед загрузкой обучающего набора данных в S3. Как только веса поглотят PII, фильтрация вывода не сможет надежно ее замаскировать.
Почему: Дообученная модель может воспроизводить фрагменты обучающих данных. Очистка на уровне данных - единственное надежное средство снижения рисков.
Разверните дообученную модель Bedrock в продакшене.
Приобретите Provisioned Throughput. Пользовательские (дообученные, продолженно предварительно обученные, импортированные) модели не могут быть вызваны по запросу.
Приложение Claude с высоким трафиком достигает квот для каждого региона в пиковые часы; требуется более высокая пропускная способность без приобретения Provisioned Throughput.
Профили вывода между регионами. Bedrock прозрачно маршрутизирует вызовы между несколькими регионами для увеличения эффективных квот TPM/RPM.
Почему: Однорегиональные квоты по запросу ограничивают во время пиков; профили между регионами примерно умножают квоты без изменений кода приложения, за исключением использования ARN профиля вывода.
Пользователи APAC видят значительно более высокую задержку, чем пользователи из США/ЕС, при использовании приложения Bedrock, развернутого в us-east-1.
Разверните региональные конечные точки Bedrock в ap-northeast-1 / ap-southeast-1 / ap-south-1 (где модель общедоступна). Маршрутизируйте пользователей через политику задержки или геолокации Route 53.
Почему: Время выполнения LLM в оба конца доминирует для длинных контекстов; только RTT через Тихий океан составляет 150-250 мс.
Приложение, регулируемое HIPAA, должно обобщать PHI с помощью Bedrock.
Используйте только базовые модели, соответствующие HIPAA (согласно списку услуг, соответствующих HIPAA). Подпишите BAA с AWS. Шифруйте промпты/ответы с помощью управляемых клиентом ключей KMS. Отключите логирование вызовов модели или ограничьте его частным бакетом S3 с ограниченным доступом.
Определите, какие данные могут поступать в Bedrock, исходя из их конфиденциальности (общедоступные / конфиденциальные / ограниченные).
Общедоступные → без ограничений. Конфиденциальные → только через конечные точки VPC + CMK + логирование вызовов в частных бакетах. Ограниченные (коммерческая тайна, регулируемые PHI/PCI) → полностью заблокировать доступ к Bedrock или использовать режим соответствия, подходящий для Bedrock + редактировать перед вызовом.
Многоаккаунтная организация хочет, чтобы Аккаунт А делился пользовательской моделью Bedrock с Аккаунтом Б без копирования весов.
Совместное использование пользовательских моделей через AWS RAM. Владелец делится ARN пользовательской модели; аккаунты-потребители вызывают ее через стандартную среду выполнения Bedrock с использованием IAM-субъектов между аккаунтами в политике ресурсов.
Почему: Позволяет избежать избыточных затрат на дообучение и централизует жизненный цикл модели. RAM контролирует, кто может использовать общий ресурс.
Требуется нишевая сторонняя модель (например, специализированная LLM для здравоохранения), отсутствующая в стандартном каталоге Bedrock.
Amazon Bedrock Marketplace. Подпишитесь на модель из каталога Marketplace, разверните на конечной точке Bedrock, вызывайте через стандартный API среды выполнения.
Почему: Объединяет выставление счетов сторонних разработчиков, IAM, KMS и наблюдаемость с моделями Bedrock от первого лица.
Приложение для поиска с большим объемом данных повторно встраивает одни и те же документы при каждом обновлении запроса; стоимость встраивания (embedding) доминирует.
Предварительно вычисляйте встраивания (embeddings) при приеме документов, храните вектор в DynamoDB или OpenSearch с ключом по ID документа + хешу содержимого. Повторно встраивайте только при изменении хеша содержимого.
Почему: Многократное встраивание одного и того же текста является самой распространенной избегаемой затратой. Кеш с хеш-ключом обеспечивает пропуск O(1).
Право на забвение согласно GDPR в отношении дообученной модели: пользователь запрашивает удаление своих PII из обучающих данных.
Удалите записи из обучающего корпуса, затем дообучите новую базовую модель с нуля. Невозможно надежно удалить данные из существующих весов - фильтрация вывода недостаточна.
Почему: Как только веса поглощают обучающие данные, маскировка при выводе становится ненадежной. Защитный путь - это полное переобучение без затронутых записей.
Общая KB обслуживает несколько команд; каждая команда должна видеть только свои собственные документы.
Помечайте каждый фрагмент метаданными `tenant_id` / `team_id` / `clearance` при приеме. Во время запроса установите `retrievalConfiguration.vectorSearchConfiguration.filter` на разрешенные значения вызывающего объекта из сессии IAM или контекста приложения.
Почему: Векторное сходство игнорирует контроль доступа; фильтрация по метаданным - единственная надежная изоляция для каждого клиента в общей KB.
Клиент из ЕС требует, чтобы промпты и встраивания KB никогда не покидали eu-west-1.
Разверните Bedrock + KB + исходный бакет S3 в eu-west-1. Закрепите вызовы через ARN профиля вывода, ограниченный eu-west-1; SCP `aws:RequestedRegion` запрещает использование других регионов для `bedrock:*`.
Многоступенчатый рабочий процесс требует рассуждений LLM, вызовов внешних API/баз данных и синтеза.
Amazon Bedrock Agent. Определите инструкции, группы действий (Lambda + схема OpenAPI) и опциональную KB. Агент планирует, вызывает инструменты и объединяет результаты.
Почему: Избавляет от необходимости писать цикл оркестровки самостоятельно. Встроенные трассировка, память сессии и хуки возврата управления.
Агент Bedrock должен вызывать три внутренних API (CRM, инвентаризация, платежи).
Определите одну группу действий для каждого API. Каждая группа действий имеет схему OpenAPI, описывающую ее операции, и функцию Lambda (или конечную точку возврата управления), которая выполняет вызовы.
Агент должен выполнять высокорисковые операции (удаление учетной записи, крупные возвраты) только после подтверждения человеком/бизнесом.
Настройте группу действий с возвратом управления (Return of Control, RoC). Bedrock возвращает предлагаемое действие приложению вместо его вызова; приложение контролирует выполнение после одобрения и повторно отправляет результаты.
Почему: Высокорисковые шаги остаются вне среды выполнения агента, чтобы их можно было проверить или подтвердить человеком до их выполнения.
Агент должен помнить контекст между ходами в рамках одной пользовательской сессии.
Используйте встроенные атрибуты сессии агента и атрибуты сессии промпта. Передайте `sessionId` в InvokeAgent - Bedrock сохраняет состояние разговора в течение настроенного тайм-аута бездействия.
Рабочий процесс требует специализированных агентов (исследование, код, выставление счетов), координируемых планировщиком верхнего уровня.
Многоагентное взаимодействие Bedrock Agents: определите одного агента-руководителя и нескольких агентов-сотрудников. Руководитель делегирует подзадачи на основе описаний сотрудников и синтезирует результаты.
Требуется многоступенчатый конвейер: извлечение → классификация → маршрутизация → обобщение, с условными ветвлениями.
Amazon Bedrock Prompt Flows. Визуальный рабочий процесс с узлами промптов, узлами условий, узлами KB, узлами Lambda; версионированный и вызываемый как единый API.
Почему: Заменяет написанные вручную Step Functions для конвейеров промптов и предоставляет одну точку входа.
Многопользовательское SaaS: системные промпты для каждого клиента, предпочтения модели и версионирование.
Amazon Bedrock Prompt Management. Храните промпты как версионированные, параметризованные активы; ссылайтесь по ARN во время выполнения; A/B-тестирование различных версий для каждого клиента.
Приложение должно работать с Claude, Llama, Titan и Cohere через единый API в стиле чата.
Используйте Bedrock Converse API. Унифицированный формат списка сообщений, использование инструментов и системные промпты для всех семейств моделей. Избегайте JSON InvokeModel, специфичного для модели, когда важна переносимость.
Чат поддержки клиентов в реальном времени: потоковая передача ответов, 500 одновременных пользователей, история разговоров.
Браузер ↔ API Gateway WebSocket ↔ Lambda ↔ Bedrock ConverseStream. Сохраняйте разговор в DynamoDB с ключом `sessionId` и перезагружайте на каждом шаге.
Почему: WebSocket избегает HTTP-опроса; хранилище сессий DynamoDB сохраняет состояние при без stateless-вызовах Lambda.
Требуется, чтобы модель решала, когда вызывать функции (поиск в базе данных, калькулятор, API).
Используйте функцию Converse API tool use (`toolConfig`) - объявляйте инструменты с именем + схемой JSON; модель выдает блоки `toolUse`; приложение выполняет и возвращает `toolResult`. Работает с Claude, Llama, Mistral, Cohere Command R.
Новый тикет в сторонней системе → автоматический анализ Bedrock (настроение, срочность, категория) → маршрутизация.
Webhook → API Gateway → EventBridge → Цель Lambda → Bedrock. EventBridge разделяет производителей и потребителей и предоставляет бесплатные повторные попытки + DLQ.
Несколько микросервисов отправляют запросы на генерацию Bedrock; потребителям не нужны результаты немедленно.
Производители → SQS → Потребитель Lambda (или ECS) → Bedrock InvokeModel → сохранение результата в S3/DynamoDB. SQS сглаживает пики и повторяет неудачные операции в рамках квот сервиса.
Генерация описаний для 100 000 SKU каждую ночь; толерантность к задержкам; стремление к минимальной стоимости.
Amazon Bedrock Batch Inference. Отправьте входной JSONL в S3, Bedrock выполнит задание со стоимостью за токен до 50% ниже, чем по запросу, и запишет выходной JSONL.
Почему: Пакетная обработка обменивает задержку на стоимость. Используйте ее, когда результаты не требуются в реальном времени.
API Gateway перед Lambda + Bedrock возвращает 504 Gateway Timeout при длительных генерациях.
Тайм-аут интеграции API Gateway REST ограничен 29 секундами. Переключитесь на асинхронный шаблон (возвращать ID задания, опрашивать через вторую конечную точку) или на API Gateway WebSocket + ConverseStream, чтобы частичные токены передавались до истечения тайм-аута.
Перевод сообщений на английский язык за доли секунды с высоким качеством.
Базовая модель (Claude Haiku или Llama small) через Bedrock для тонких нюансов, ИЛИ Amazon Translate для скорости/стоимости, когда достаточно буквального перевода. Bedrock для контекстно-зависимого; Translate для транзакционного.
Постепенно переводите производственный трафик с Модели А на Модель Б с возможностью аварийного отключения.
Флаг функции AWS AppConfig, содержащий идентификатор активной модели и разделение трафика. Lambda считывает флаг при каждом вызове, маршрутизирует соответствующим образом. Мгновенный откат через откат развертывания AppConfig.
Сделайте выбор между Bedrock и SageMaker JumpStart для хостинга базовой модели.
Bedrock, когда вам нужен управляемый вывод, унифицированный API, KB/Agents/Guardrails. SageMaker JumpStart, когда вам нужна частная конечная точка, размещенная в VPC, с полным сетевым контролем/IAM или модель с открытыми весами, отсутствующая в Bedrock.
Выберите стиль определения группы действий: спецификация OpenAPI 3.0 или схема функции.
OpenAPI, если базовый API уже имеет спецификацию OpenAPI 3.0 или вам нужна полная семантика HTTP (пути, методы, типы параметров). Схема функции для встроенных/легковесных действий, определенных с помощью простых JSON-деклараций свойств.
Почему: OpenAPI является каноническим для существующих REST API. Схема функции быстрее для новых внутренних помощников агента.
Агент должен выполнять точные математические вычисления, статистический анализ или запускать небольшие фрагменты кода Python для ответа на вопросы.
Включите интерпретатор кода Bedrock Agents. Агент запускает Python в управляемой песочнице; результаты возвращаются в синтез ответа.
Почему: LLM ненадежны в точных математических вычислениях; изолированная среда выполнения дает детерминированные числовые результаты без написания пользовательских групп действий.
Промпты агента по умолчанию генерируют многословные ответы; необходимо ужесточить промпт оркестрации для продакшена.
Настройте переопределения шаблонов промптов для агента для каждого шага (предварительная обработка, оркестровка, генерация ответов KB, постобработка). Переопределения версионируются вместе с агентом.
Итерируйте над агентом в разработке, пока производственный трафик остается на стабильной версии.
Используйте версии и псевдонимы агента. `DRAFT` для активного редактирования; публикуйте нумерованные версии; маршрутизируйте через псевдонимы (`prod` → версия 7, `dev` → DRAFT). Продвигайте, обновляя псевдоним.
Агент выбирает неверную группу действий; необходимо отладить процесс рассуждения пошагово.
Включите трассировку в InvokeAgent (`enableTrace: true`). Поток ответов включает блоки `preProcessingTrace`, `orchestrationTrace`, `postProcessingTrace` и `failureTrace`, показывающие логику модели, выбор инструмента и входные данные.
Создайте Bedrock Flow для "извлечение сущностей → поиск в KB → обобщение → электронная почта".
Составьте узлы: узел промпта (извлечение), узел базы знаний (поиск), узел промпта (обобщение), узел Lambda (отправка электронной почты через SES). Используйте узлы ввода/вывода S3 для пакетных потоков; узлы условий для ветвления.
Выберите Bedrock Flows или Step Functions для многошагового конвейера GenAI.
Bedrock Flows, когда шаги в основном являются примитивами Bedrock (промпты, KB, агенты) - вызов одного API, без дополнительной связки IAM. Step Functions, когда рабочий процесс охватывает множество сервисов AWS с повторными попытками, параллельными ветвями, сложной обработкой ошибок или длительными ожиданиями.
Реализуйте цикл чата, где модель итеративно вызывает инструменты, затем формулирует окончательный ответ.
Шаблон: отправить сообщение пользователя → модель возвращает `toolUse` → приложение выполняет инструмент → приложение отправляет `toolResult` обратно через Converse → цикл до тех пор, пока модель не вернет окончательный текст. Ограничьте итерации, чтобы предотвратить бесконечные циклы.
Почему: Модель решает, когда у нее достаточно информации для остановки; приложение должно управлять циклом и устанавливать максимальное количество шагов.
Модели необходимо искать клиента + заказ + инвентарь; последовательные вызовы инструментов увеличивают задержку в 3 раза.
Модели, поддерживающие параллельное использование инструментов (Claude 3+, Nova), выдают несколько блоков `toolUse` за один ход. Выполняйте их одновременно в приложении и возвращайте все `toolResult` до следующего вывода.
Сохранение состояния многоходового чата между без stateless-вызовами Lambda с автоматической очисткой устаревших сессий.
Таблица DynamoDB с ключом `sessionId`, хранящая `messages` + `lastActivity`. Установите атрибут TTL (`expiresAt`) для автоматического удаления сессий старше 24 часов. Lambda читает/записывает на каждом шаге.
Чат обрабатывает ~1000 запросов в секунду; чтение истории сессий из DynamoDB на каждом шаге является узким местом.
Разместите ElastiCache для Redis перед DynamoDB. Кешируйте последние N сообщений для каждой сессии в хеше Redis; записывайте в DynamoDB для обеспечения долговечности. Установите TTL для ключей Redis для ограничения памяти.
Повторный вызов Bedrock InvokeModel рискует быть оплаченным дважды за один и тот же логический запрос.
Сгенерируйте ключ идемпотентности для каждого логического запроса (например, UUID v5 из входных данных + пользователь). Кешируйте ответ с ключом идемпотентности в DynamoDB или ElastiCache; возвращайте кешированный ответ при повторной попытке.
Почему: Сам Bedrock не идемпотентен - один и тот же ввод оплачивается при каждом вызове. Кеширование на уровне приложения - единственное решение для идемпотентности.
Запускайте две версии производственной модели во время миграции, не переключая всех пользователей одновременно.
Хешируйте ID пользователя в N корзин; маршрутизируйте корзину i к модели A или модели B на основе флага функции (AppConfig / Parameter Store). Отслеживайте метрики параллельно; изменяйте назначение корзины для развертывания или отката.
Безопасность, защита и управление ИИ
Чат-бот для клиентов должен блокировать вредоносный контент, запрещенные темы, утечку PII.
Amazon Bedrock Guardrails. Настройте запрещенные темы, контентные фильтры (ненависть, насилие, сексуальный контент, оскорбления, неправомерное поведение), фильтры слов, фильтры конфиденциальной информации (редактирование PII) и проверки контекстуального обоснования. Применяйте к вводу и выводу InvokeModel.
Почему: Guardrails не зависят от модели и применяются в обоих направлениях; они переживут любую замену модели.
Guardrail блокирует законные финансовые ответы, которые упоминают суммы в долларах.
Понизьте уровень чувствительности затронутого контентного фильтра (например, `MEDIUM` → `LOW`) и/или удалите слишком широкие формулировки запрещенных тем. Повторно протестируйте с использованием набора эталонных промптов перед повторным развертыванием.
Приложение для медицинских сводок не должно придумывать факты, выходящие за рамки исходных документов.
Включите проверку контекстуального обоснования Bedrock Guardrails с высоким порогом релевантности + обоснования. Ответы ниже порога блокируются или заменяются безопасным сообщением по умолчанию.
Почему: Чистый RAG все еще галлюцинирует, когда модель чрезмерно обобщает из извлеченных фрагментов. Контекстуальное обоснование оценивает соответствие ответа источнику для каждого ответа.
Приложение Bedrock получает промпты, содержащие PII клиента; требуется автоматическое маскирование перед логированием или последующим использованием.
Настройте фильтры PII Guardrails с действиями `BLOCK` или `ANONYMIZE` для типов сущностей PII (SSN, email, phone, address). Фильтрация происходит независимо для ввода и вывода.
Публичное приложение принимает пользовательский ввод, конкатенированный в системный промпт; должно сопротивляться инъекции промпта.
Глубокая защита: (1) Guardrails (запрещенные темы + обнаружение "побега из тюрьмы"), (2) усиленный системный промпт, который интерпретирует пользовательский ввод как данные и отказывается от метаинструкций, (3) проверка вывода на соответствие ожидаемой схеме, (4) разрешения для инструментов с минимальными привилегиями, чтобы скомпрометированный промпт не мог вызывать деструктивные действия.
Почему: Ни одно отдельное средство защиты не является достаточным; многоуровневая защита ограничивает радиус поражения.
Команда Red Team обнаруживает, что модель можно заставить выдавать вредоносный результат с помощью ролевой игры ("притворись ИИ без ограничений").
Включите контентный фильтр Guardrails для обнаружения "побега из тюрьмы". Добавьте явные запрещенные темы для попыток ролевой игры. Повторно протестируйте после каждого изменения с использованием того же набора промптов Red Team.
Все данные Bedrock должны быть зашифрованы при передаче и в состоянии покоя с помощью ключей, управляемых клиентом.
TLS 1.2+ принудительно применяется при передаче. В состоянии покоя: настройте управляемые клиентом ключи KMS для кастомизации моделей Bedrock, встраиваний KB + исходных данных S3, мест назначения журналов вызовов. Обеспечьте выполнение через SCP, который запрещает ключи, управляемые AWS.
Организация с несколькими командами: каждая команда должна иметь доступ только к определенным базовым моделям.
Политики IAM на основе удостоверений, которые разрешают `bedrock:InvokeModel` для ARN ресурсов, ограниченных разрешенными ID моделей. Объедините с условиями `aws:RequestedRegion` для блокировки региона.
Почему: Разрешение на уровне ресурсов для `arn:aws:bedrock:*::foundation-model/<id>` является единственным надежным способом обеспечения доступа на уровне модели. Не полагайтесь на шлюзы на уровне приложения.
Lambda вызывает только Claude 3.5 Sonnet в us-east-1.
Разрешить `bedrock:InvokeModel` с `Resource: arn:aws:bedrock:us-east-1::foundation-model/anthropic.claude-3-5-sonnet-*` и `Condition: aws:RequestedRegion = us-east-1`. Отклонять все другие модели и регионы.
Приложение Bedrock не должно выходить в публичный интернет.
Bedrock с конечными точками интерфейса VPC (PrivateLink) для API среды выполнения. Блокируйте публичные конечные точки Bedrock через SCP. Добавьте политику конечной точки, которая ограничивает действия до утвержденного набора.
Регулятор требует полного аудиторского следа каждого вызова модели Bedrock: промпт, ответ, версия модели, временная метка.
Включите логирование вызовов модели Bedrock в CloudWatch Logs или S3. Захватывает полный промпт + ответ + ID модели + временную метку. Совместите с CloudTrail для слоя метаданных вызовов API (кто/когда/откуда).
Почему: CloudTrail захватывает только метаданные; логирование вызовов захватывает содержимое. Соответствие обычно требует и того, и другого.
Определите долю ответственности компании за безопасность развертывания Bedrock.
Матрица определения области безопасности генеративного ИИ AWS. Область 1 (потребительский SaaS) → Область 5 (самообученная модель на частных данных). Bedrock с базовыми моделями по запросу обычно относится к Области 2; KB/Agent + RAG продвигается к Области 3; дообучение - Область 4; Custom Model Import - Область 5.
Защитите конечную точку GenAI API за API Gateway от злоупотреблений.
AWS WAF с правилами на основе скорости (по IP), управляемым набором правил для контроля ботов и пользовательским правилом сопоставления строк для подозрительных фраз, связанных с "побегом из тюрьмы". Блокируйте распространенные шаблоны LLM-DDoS (флуды длинными промптами).
Найдите PII или другие конфиденциальные данные в исходных корпусах S3 до того, как они попадут в KB или задание по дообучению.
Запланированное задание обнаружения Amazon Macie для соответствующих бакетов S3. Результаты отправляются в Security Hub / EventBridge для последующей редакции.
Обнаруживать изображения, сгенерированные ИИ, на последующих этапах для определения происхождения контента.
Используйте Titan Image Generator (или Nova Canvas) - выходные данные включают невидимый водяной знак. Проверьте с помощью API обнаружения водяных знаков Bedrock.
Маркетинговый чат-бот не должен называть конкурентов и делать необоснованные заявления.
Запрещенные темы Guardrails: явный список названий конкурентов + на уровне темы "непроверенные заявления о продукте". Добавьте фильтр слов для абсолютных заявлений ("гарантировано", "лучший", "100%").
Примените Guardrail Bedrock к выводам модели, не относящейся к Bedrock (например, к самостоятельно размещенной конечной точке SageMaker).
Вызовите автономный API `ApplyGuardrail` с текстом + ID Guardrail + версией. Возвращает информацию о том, был ли контент заблокирован или изменен, и какие фильтры сработали.
Почему: Разделяет Guardrails и модель. Используйте в качестве предварительной проверки пользовательского ввода или пост-проверки любого вывода модели.
Единая политика Guardrail должна применяться в us-east-1, eu-west-1 и ap-southeast-1.
Воссоздайте тот же Guardrail (с той же конфигурацией) в каждом регионе. Guardrails являются региональными ресурсами; используйте IaC (CloudFormation / CDK / Terraform) для синхронизации конфигураций.
Почему: Не существует управляемой межрегиональной репликации для Guardrails. IaC - единственное надежное средство обеспечения согласованности.
Злоумышленник отравляет документы в общедоступной KB, чтобы агент утекал системный промпт или данные при их извлечении.
Рассматривайте извлеченный контент KB как ненадежный: включите Guardrails на входах И выходах, очищайте извлеченные фрагменты с помощью обнаружения инъекций промптов или сопоставления с шаблонами, применяйте принцип наименьших привилегий для групп действий агента, чтобы скомпрометированный промпт не мог эскалировать права.
Почему: Косвенная инъекция обходит фильтрацию ввода - вредоносный промпт поступает через извлеченный контекст, а не через сообщение пользователя.
Требуется доступ к модели для каждого пользователя в многопользовательском приложении с одной бэкенд-ролью.
Передавайте атрибуты пользователя как теги сессии во время AssumeRole. Ссылайтесь на них через условия `aws:PrincipalTag/<key>` в политике идентификации Bedrock для управления `bedrock:InvokeModel` для каждого пользователя.
Выберите место назначения для логирования вызовов Bedrock.
CloudWatch Logs для коротких промптов/ответов, быстрых запросов Logs Insights, приложений меньшего масштаба. S3 для больших объемов, крупных полезных нагрузок (KB + трассировки агента), долгосрочного хранения, последующего анализа с помощью Athena/Glue. Используйте S3, если какой-либо отдельный ответ может превышать 256 КБ.
Почему: CloudWatch Logs имеет ограничения размера для каждого события; S3 не имеет их. Выбирайте по размеру полезной нагрузки и шаблону анализа.
Защитите публичный чат-API от DDoS-атак и широкомасштабного злоупотребления токеновым флудом.
AWS Shield Standard включен по умолчанию; включите Shield Advanced на критических конечных точках для защиты L7 + круглосуточная поддержка SRT. Совместите с правилами AWS WAF на основе скорости и CloudFront для поглощения на границе.
Приложение для генерации изображений должно блокировать изображения, содержащие сексуально откровенный, насильственный или разжигающий ненависть контент.
Контентные фильтры изображений Bedrock Guardrails на входе (загруженные изображения) и выходе (сгенерированные изображения). Фильтры классифицируют визуальный контент с порогами ВЫСОКИЙ/СРЕДНИЙ/НИЗКИЙ.
Рабочий процесс перед дообучением модели Bedrock на стенограммах поддержки клиентов.
Пайплайн: источник S3 → задание обнаружения Macie для идентификации PII → обнаружение + редактирование PII с помощью Comprehend (или Glue с регулярными выражениями) → очищенный набор данных в отдельный префикс S3 → дообучение Bedrock. Сбои Macie вызывают EventBridge → SNS для дежурного сотрудника по безопасности.
Почему: Как только данные попадают в веса, их удаление требует переобучения. Предварительная редакция намного дешевле, чем переобучение после инцидента.
Операционная эффективность и оптимизация
Выберите "по запросу" или "предоставленную пропускную способность" (Provisioned Throughput).
Переменный / неизвестный трафик → по запросу. Стабильный высокий объем с гарантированным SLA по пропускной способности → Provisioned Throughput (единицы модели, обязательство на 1 или 6 месяцев). Пользовательские (дообученные, импортированные) модели → Provisioned Throughput является обязательным.
Почему: По запросу - это оплата за токен, без обязательств. PT - это оплата за час, выделенная мощность, ~50% дешевле за токен при высокой загрузке.
Приложение повторно использует один и тот же системный промпт из 4000 токенов во всех взаимодействиях с пользователем; меняется только сообщение пользователя.
Включите кеширование промптов Bedrock. Отметьте статический префикс как кешируемый; последующие вызовы пропускают его повторную обработку в течение ~5-минутного TTL кеша, сокращая стоимость за вызов примерно на 90% для кешированных токенов.
Многие пользователи задают похожие, но не идентичные вопросы; требуется кешировать ответы для разных перефразирований.
Встройте (embed) пользовательский запрос и найдите ближайших соседей в векторном кеше (DynamoDB + ElastiCache или OpenSearch) выше порога сходства. Попадание в кеш → вернуть сохраненный ответ. Промах кеша → вызвать Bedrock и записать ответ.
Уменьшить стоимость за вызов в приложении Bedrock.
Ужесточите системный промпт, уберите избыточные примеры few-shot, установите явное `maxTokens` на выходе, используйте стоп-последовательности для досрочного завершения. Выберите модель меньшего размера, если позволяет качество.
Почему: Стоимость примерно пропорциональна общему количеству обработанных токенов. Выходные токены обычно дороже входных - ограничение вывода является высокоэффективным.
Завершение кода: задержка менее секунды, сбалансированная стоимость, высокий объем запросов.
Claude Haiku (или Nova Micro / Llama small) на Bedrock. Избегайте Opus или больших Llama для путей завершения токенов, чувствительных к задержкам.
KB содержит 500 тыс. документов, но только ~200 запросов в день; минимизировать стоимость.
Aurora PostgreSQL Serverless v2 с pgvector. Масштабируется почти до нуля ACU в режиме ожидания; модель оплаты за запрос превосходит постоянно работающие минимумы OCU OpenSearch Serverless при низком QPS.
OpenSearch Serverless KB имеет задержку запроса 800 мс; требуется <200 мс.
Увеличьте нижний предел OCU для коллекции поиска (больше вычислений = больше кешированных векторов). Уменьшите размерность встраивания (embedding dimension), строго увеличьте top-k, удалите метаданные, включите кеширование результатов на уровне приложения.
Долго выполняющиеся задания по дообучению, которые терпимы к прерываниям; минимизация стоимости.
Для дообучения SageMaker используйте Managed Spot Training (скидка до 90%). Собственное дообучение Bedrock доступно только по запросу - выберите SageMaker JumpStart для пользовательского обучения, поддерживающего Spot-инстансы, когда бюджет является определяющим фактором.
Распределите расходы Bedrock между командами или продуктовыми линиями.
Применяйте теги распределения затрат к ресурсам Bedrock (Provisioned Throughput, пользовательские модели, стеки приложений). Активируйте теги в Billing → Cost Allocation Tags. Отчеты будут разбиты по каждому тегу.
~100 разговоров в день, простой FAQ; минимизация стоимости.
Bedrock по запросу с наименьшей компетентной моделью (Titan Text Lite, Claude Haiku или Nova Micro). Lambda + API Gateway HTTP API. Без KB, если FAQ помещается в системный промпт; маленькая KB на Aurora pgvector, если требуется.
Определите размер Provisioned Throughput для стабильной рабочей нагрузки Bedrock.
Измерьте пиковое количество входных + выходных токенов в секунду на теневом трафике. Bedrock публикует пропускную способность для каждой единицы модели; выделите `ceil(пиковая TPS / TPS на единицу)` единиц. Проверьте с помощью теневого трафика перед подтверждением.
Почему: Недостаточное выделение приводит к регулированию; избыточное выделение тратит часовое обязательство впустую. Эмпирическое определение размера на теневом трафике - единственный надежный подход.
Распределите затраты Bedrock по приложениям или командам в общем аккаунте.
Создайте профили вывода приложения для каждого приложения, прикрепите теги распределения затрат (например, `application=chatbot-X`, `team=marketing`). Каждый вызов ссылается на ARN профиля; Cost Explorer разбивает расходы по тегам.
Сравните три базовые модели по задаче суммаризации; требуется автоматизированная, воспроизводимая оценка.
Задания по оценке моделей Amazon Bedrock (автоматические). Предоставьте набор данных промптов; Bedrock запускает каждую модель и отчитывается по BLEU, ROUGE, BERTScore, а также по токсичности/точности, если применимо.
Показатели ROUGE выглядят высокими, но читатели-люди говорят, что в резюме упущены ключевые моменты.
Переключитесь на оценку Bedrock на основе человека с пользовательскими метриками (релевантность, полнота, достоверность). Определите рубрику, направьте образец рабочей силе, агрегируйте оценки.
Почему: Метрики лексического совпадения (BLEU, ROUGE) упускают семантическую достоверность. Человеческая оценка - это истина в последней инстанции для субъективных задач.
Требуется масштабируемая, воспроизводимая оценка, но проверка только человеком слишком медленная/дорогая.
Оценка Bedrock LLM-as-a-judge. Мощная модель оценивает ответы по рубрике; результаты хорошо коррелируют с оценками людей и выполняются за минуты, а не дни.
Сгенерированные сводки портфеля должны точно соответствовать цифрам в исходном документе.
Ограничьте генерацию: низкая температура (0-0.2), строгие инструкции в промпте ("цитируйте числа дословно из источника"), проверка контекстуального обоснования Guardrails на выходе, регулярное выражение/парсер после генерации, который проверяет числа на соответствие источнику.
Почему: Даже с обоснованным RAG, модели перефразируют числа. Несколько слоев (промпт + обоснование + парсер) улавливают оставшиеся случаи.
RAG часто возвращает "У меня недостаточно информации", даже для тем, охваченных в KB.
Проверьте трассировки извлечения: оценки фрагментов, количество извлеченных фрагментов, соответствие запроса фрагменту. Распространенные исправления: включить гибридный поиск, увеличить top-k, настроить размер фрагмента, переключиться на семантическое разбиение на фрагменты, включить переформулирование запросов, снизить порог релевантности.
Агент возвращает устаревшие цены даже после недавней синхронизации KB; источник данных - S3 с версионированием.
Убедитесь, что последнее задание IngestionJob имеет `status: COMPLETE` и `documentsModified` отражает новые объекты. Версионирование означает, что неактуальные версии все еще могут быть проиндексированы, если источник данных не ограничен только текущими версиями - проверьте фильтр источника данных и повторно синхронизируйте.
HR-агент иногда раскрывает информацию о зарплате других сотрудников, когда его хитро спрашивают.
Ужесточите инструкции агента ("отвечать только о данных запрашивающего пользователя"), ограничьте группу действий с помощью атрибутов сессии, включающих ID пользователя, ограничьте IAM для Lambda, поддерживающей группу действий, чтобы запрашивать только записи пользователя, добавьте запрещенную тему Guardrails для запросов о зарплате между пользователями.
Вызовы Bedrock имеют прерывистые пики задержки p95.
Проверьте `InvocationThrottles` (достижение лимитов скорости) и `ModelLatency` в CloudWatch; включите трассировку AWS X-Ray для вызывающей функции Lambda; проанализируйте CloudWatch Logs Insights на предмет медленных вызовов инструментов или извлечения из KB. Снизьте задержку с помощью межрегионального вывода, меньшей модели, кеширования промптов или пакетной обработки.
Мигрировать с Claude v2 на Claude 3.5 Sonnet без регрессий.
Запустите задание по оценке модели Bedrock, сравнивая обе на репрезентативном наборе промптов. Затем используйте теневой трафик в продакшене: отправляйте один и тот же ввод обоим, сравнивайте выводы офлайн. Продвигайте с флагом функции AppConfig на 10% → 50% → 100%.
Запускайте оценку модели Bedrock как часть CI/CD при каждом изменении конфигурации модели.
Используйте API `CreateEvaluationJob`. Определите набор данных в S3, оценщиков (встроенных или пользовательских) и целевые модели. Опрашивайте статус задания; продвигайте при `COMPLETED` с метриками выше пороговых значений.
Почему: Интерфейс Studio предназначен для одноразовых операций; API - единственный путь к автоматизированным, повторяемым шлюзам оценки.
Избежать регрессий качества при обновлении базовой модели в продакшене.
Поддерживайте тщательно подобранный набор регрессионных тестов: 100-500 репрезентативных промптов с ожидаемыми результатами (или рубриками). Запускайте через оценку модели Bedrock при каждой замене модели. Блокируйте продвижение, если оценки падают > определенного порога.
Измерьте, выбирает ли модель правильный инструмент с правильными аргументами в чате с использованием инструментов.
Создайте размеченный набор: промпт + ожидаемый блок(и) `toolUse`. Запустите через пользовательский оценщик, который сравнивает фактическое и ожидаемое имя инструмента + аргументы JSON. Отслеживайте точность/полноту для каждого инструмента.
Почему: Лексические метрики (BLEU) не учитывают, вызвал ли агент правильное действие. Точность использования инструментов - правильная метрика для агентских рабочих нагрузок.