AWS представила паттерн query-aware компрессии для RAG-приложений на Amazon Bedrock, который позволяет сократить количество входных токенов, передаваемых основной модели, до 80% без потери качества ответов. Решение описано в блоге AWS Machine Learning Blog и доступно для реализации через AWS Lambda.

Retrieval Augmented Generation (RAG) — популярный подход к построению ИИ-приложений, при котором модель получает релевантные фрагменты из базы знаний для генерации ответа. Однако на каждый запрос модель получает несколько тысяч токенов контекста, что при масштабировании приводит к значительным затратам. Query-aware компрессия решает эту проблему, добавляя промежуточный шаг: после получения top-k фрагментов (обычно 5–20) меньшая и более дешевая модель, например Claude Haiku, анализирует их вместе с запросом и оставляет только релевантные части. Затем основная модель, например Claude Sonnet, получает сжатый контекст и генерирует ответ.

КомпонентРоль
РетриверВозвращает top-k фрагментов из векторного индекса
Компрессионная модель (Claude Haiku)Фильтрует фрагменты, оставляя релевантные части
Основная модель (Claude Sonnet)Генерирует ответ на основе сжатого контекста

Архитектура решения проста: приложение отправляет запрос в ретривер (например, Amazon Bedrock Knowledge Bases), который возвращает top-k фрагментов. Далее AWS Lambda функция вызывает Claude Haiku через Converse API, получает сжатый контекст и передает его в Claude Sonnet для финального ответа. Единственное добавленное звено — компрессионный вызов, который стоит значительно дешевле, чем обработка полного контекста основной моделью. По оценкам AWS, сокращение входных токенов может достигать 80%, что напрямую снижает затраты.

Архитектура использует каскад моделей: Claude Haiku сжимает контекст, Claude Sonnet генерирует ответ, что снижает стоимость и уменьшает галлюцинации.

Query-aware compression architecture: a retriever returns top-k chunks to a Lambda function, a smaller model compresses them, then the primary model generates the answer
Query-aware compression architecture: a retriever returns top-k chunks to a Lambda function, a smaller model compresses them, then the primary model generates the answer · Источник: AWS Machine Learning Blog

Помимо экономии, компрессия уменьшает поверхность для галлюцинаций, так как модель получает только релевантный контекст. Паттерн совместим с существующими возможностями Amazon Bedrock, такими как prompt caching, Intelligent Prompt Routing и Rerank API, что позволяет комбинировать их для дополнительной экономии. Однако стоит учитывать компромисс с задержкой: компрессионный вызов добавляет около 1–2 секунд к времени ответа, что может быть критично для приложений реального времени.

AWS приводит пример реализации на Lambda и инструкции по оценке качества ответов, включая сравнение с базовым RAG-пайплайном. Паттерн особенно полезен для технической документации и юридических RAG-нагрузок, где объем контекста велик. Это не единственный способ оптимизации RAG: существуют методы сжатия контекста, такие как LLMLingua, и подходы с использованием reranker'ов, но query-aware компрессия выделяется простотой интеграции и совместимостью с управляемыми сервисами AWS.