Contextual Retrieval — это техника для RAG, в которой к каждому чанку документа добавляют короткий, чанк-специфичный контекст до построения эмбеддингов и индекса BM25. Anthropic впервые описала её в engineering-посте от 19 сентября 2024 года как способ снизить промахи поиска, когда обычный чанкинг вырезает важные соседние детали.
Английский термин: Contextual Retrieval. Также встречается: Contextual Embeddings и Contextual BM25 — это две части одной схемы у Anthropic; в русскоязычном тексте чаще оставляют оригинал или говорят «контекстное извлечение».
Простыми словами
Можно представить, что вы вырезали абзац из большой инструкции. Без дополнительной подписи он выглядит как обрывок, а не как часть целого документа. Contextual Retrieval прикладывает к такому абзацу короткую записку: где он находится, о чём именно речь и зачем этот кусок нужен.
Именно эта записка помогает поиску не перепутать похожие фрагменты. Грубо говоря, вы ищете не голый чанк, а чанк с его местом в контексте документа.
Как это работает
По официальному описанию Anthropic, схема состоит из двух шагов: сначала для чанка получают краткий контекст из полного документа и самого чанка, а затем этот контекст добавляют перед индексированием.
Документ ──> чанки
│
├─> Claude пишет короткий чанк-специфичный контекст
│
├─> контекст + чанк ──> embeddings index
│
└─> контекст + чанк ──> BM25 index
↓
first-pass retrieval
↓
reranking top 20
↓
ответ
Anthropic отдельно называет две версии метода: Contextual Embeddings и Contextual BM25. В их рекомендациях retrieval-пайплайн включает первый проход по примерно 150 чанкам и reranking топ-20.
На своём бенчмарке Anthropic пишет о снижении top-20 retrieval failure на 35% только за счёт contextual embeddings и на 49% при добавлении contextual BM25. Это полезный ориентир, но не универсальная гарантия: результат зависит от ваших документов, запросов и способа оценки.
Где применяется
- Внутренние базы знаний, где абзацы и разделы теряют смысл после чанкинга.
- Поиск по длинным политикам, техдокам и юридическим материалам, где важны соседние определения и оговорки.
- RAG-ассистенты на Claude API и других стековых решениях, где нужно уменьшить число нерелевантных чанков до генерации ответа.
- Эксперименты с retrieval-пайплайнами в коде и ноутбуках из официальных cookbooks и demo-репозиториев Anthropic.
Если вы ищете не технику, а готовое поведение внутри самого Claude, это уже другой слой: help page про RAG for Projects говорит, что функция доступна на Free, Pro, Max, Team и Enterprise и включается автоматически, когда knowledge проекта приближается к лимиту контекста.
Практический пример
Ниже — схематичный сценарий для собственной базы документов. Это не готовый SDK-вызов Anthropic, а иллюстрация логики.
for chunk in chunks:
# Сжато объясняем, где чанк находится в исходном документе и что он означает
context = llm_summarize(document, chunk)
# Добавляем контекст перед индексированием
enriched_text = context + 'nn' + chunk.text
embed(enriched_text) # contextual embeddings
bm25_index.add(enriched_text) # contextual BM25
Если запрос пользователя относится к оговорке из соседнего раздела, обогащённый чанк чаще поднимется в выдаче, чем голый фрагмент без подписи. После этого reranking отбирает уже небольшой набор кандидатов для финального ответа.
Чем отличается от…
| Термин | Что делает | Главное отличие |
|---|---|---|
| Обычный чанкинг | Режет документ на фрагменты и индексирует их как есть. | Контекст вокруг куска теряется, а Contextual Retrieval добавляет его обратно до индексации. |
| Reranking | Переоценивает уже найденные кандидаты после первого поиска. | Это более поздний этап пайплайна; Contextual Retrieval работает раньше — на этапе подготовки индекса. |
| Prompt tuning (мягкий промпт) | Меняет поведение модели через промпт или мягкую настройку. | Не трогает индекс и retrieval-слой. |
Если вы хотите совсем быстро отделить генеративные параметры от retrieval-подходов, смотрите также Temperature (параметр генерации): температура влияет на случайность ответа, но не на построение индекса. А для safety-слоя полезен материал AI Safety (безопасность ИИ) — Contextual Retrieval не заменяет ограничения доступа и проверку источников.
Ограничения и заблуждения
- Заблуждение: это отдельный публичный endpoint или SDK-фича с кнопкой «включить». На практике: по публичным материалам Anthropic это техника и паттерн индексации, а не отдельный продуктовый API.
- Заблуждение: метод всегда улучшает качество. На практике: Anthropic показывает эффект на своём бенчмарке, но в вашей системе его нужно измерять отдельно.
- Заблуждение: это то же самое, что RAG for Projects в Claude. На практике: это разные уровни: один — техника подготовки чанков, второй — продуктовая функция проекта.
- Заблуждение: за Contextual Retrieval есть отдельный тариф. На практике: в pricing docs Anthropic отдельной строки нет; стоимость завязана на обычные токены и prompt caching. В текущей документации читаемые запросы prompt caching биллятся по 0.1x базового input, записи на 5 минут — по 1.25x, на 1 час — по 2x.
- Практическая оговорка: Anthropic пишет, что API-доступ зависит от официальной доступности Claude в вашей стране; в странах без официального доступа API может быть недоступен.
Практический вывод: Contextual Retrieval полезен, когда чанки без соседнего контекста начинают путать поиск. Но это не магия и не отдельный продукт — проверяйте эффект на своих данных и своём retrieval-пайплайне.
Связанные термины, инструменты и исследования
- Prompt tuning (мягкий промпт) — помогает менять поведение модели, но не индекс.
- Temperature (параметр генерации) — регулирует сэмплинг ответа, а не retrieval.
- AI Safety (безопасность ИИ) — полезно помнить, когда retrieval работает с чувствительными данными и доступами.
- Continue — open-source AI-ассистент для VS Code и JetBrains — удобно, если вы хотите быстро тестировать retrieval-идеи в рабочей среде.
- You.com — API для поиска, Contents и Research — смежный поисковый инструмент, полезный для сравнения подходов к retrieval.
Для проверки самой методики и её оценки смотрите официальный пост Anthropic и приложение Appendix II: там есть описание процедуры, примеры и материалы бенчмарка.
Источники
- Contextual Retrieval in AI Systems | Anthropic
- Contextual Retrieval Appendix II
- Pricing – Claude API Docs
- What is the External Researcher Access Program? | Claude Help Center
- Retrieval augmented generation (RAG) for projects | Claude Help Center
- Engineering | Anthropic
- claude-cookbooks retrieval_augmented_generation guide notebook
- anthropic-retrieval-demo
Вопросы и ответы
Это отдельная функция Claude API?
По публичным материалам Anthropic — нет. Это техника предварительной обработки и индексации, а не отдельный endpoint с собственной кнопкой включения.
Чем Contextual Retrieval отличается от обычного RAG?
В обычном RAG индексируют исходные чанки как есть. Здесь каждый чанк сначала дополняют кратким контекстом, и только потом строят embeddings и BM25-индекс.
Нужно ли это, если у меня уже есть reranking?
Не обязательно, но это дополняющие уровни. Reranking работает после первого поиска, а Contextual Retrieval улучшает сам материал, из которого ищутся кандидаты.
Как это влияет на стоимость?
Отдельной строки в pricing docs Anthropic нет. Вы платите за обычное использование Claude/API и, если применяете prompt caching, по текущим правилам кеширования.
Можно ли использовать, если Claude API недоступен в моей стране?
Anthropic пишет, что доступ к API зависит от официальной доступности Claude в вашей стране. Если Claude не доступен официально, API-доступ может быть недоступен тоже.