RAG и context на собеседовании AI PM

Зачем RAG на собесе AI PM

RAG (Retrieval-Augmented Generation) — стандарт для LLM-фич, где модель должна знать про специфические данные (документы компании, knowledge base, продуктовый каталог). Без RAG LLM знает только то, что было в training data — это устарело и не специфично.

На собесе AI PM RAG — частая тема. Кейс: «спроектируй AI-помощник, который знает про наш продукт».

Слабый ответ — «fine-tune LLM на наших данных». Сильный — про embedding + vector store + retrieval + LLM generation.

Как работает RAG

User query → embed query → search vector store → retrieve top-K chunks → 
inject в prompt → LLM generates answer

Преимущества:

  • Свежие данные (update vector store не fine-tune)
  • Источники цитируются (transparency)
  • Стоит дешевле fine-tuning
  • Reduces hallucinations

Минусы:

  • Retrieval quality критично
  • Latency + cost (extra steps)
  • Chunking complexity

Embeddings

Что это: dense vectors, представляющие semantic meaning текста.

Модели:

  • OpenAI text-embedding-3-large
  • Cohere embed-v3
  • BGE / E5 (open-source)
  • Sentence-Transformers
  • В РФ: YandexGPT / GigaChat embeddings

Размер: 384, 768, 1024, 1536 dim. Larger = более expressive, но дороже.

Vector stores

Хранят embeddings + metadata, делают similarity search.

Open-source:

  • Chroma — local, простой, для prototyping
  • Qdrant — Rust, scale, popular в РФ
  • Weaviate — Go, GraphQL API
  • pgvector — PostgreSQL extension, для small data

Managed:

  • Pinecone — managed, simple
  • Weaviate Cloud
  • В РФ: in-house на Qdrant / pgvector

Search:

  • Cosine similarity, dot product, Euclidean
  • Indexes: HNSW (default), IVF для huge data

Chunking

Документы разбивают на chunks для embeddings.

Стратегии:

  • Fixed size: 500-1000 токенов. Простой.
  • Sentence-based: chunks по предложениям.
  • Recursive: разбиваем по headers → paragraphs → sentences.
  • Semantic chunking: ML определяет boundaries.

Overlap: 10-20% — preserves context на границах.

Trade-offs:

  • Small chunks → точнее retrieval, но missing context
  • Large chunks → больше context, но noise

Retrieval strategies

Naive: top-K nearest по cosine. Простой baseline.

Re-ranking:

  • Stage 1: vector search retrieves 50 candidates
  • Stage 2: cross-encoder re-ranks → top 5
  • Cohere Rerank, BAAI re-rankers

Hybrid search: combine vector + keyword (BM25). Лучше для exact terms.

Query rewriting:

  • LLM rephrases user query → better embedding
  • HyDE (Hypothetical Doc Embeddings) — LLM генерирует hypothetical answer, embeds его

Multi-step:

  • LLM decides, что искать
  • Agentic retrieval

Prompt structure для RAG

[System] Ты — помощник, отвечающий на основе документов.
Если в документах нет ответа — скажи «не знаю».

[Context]
Документ 1: <chunk_1>
Документ 2: <chunk_2>
Документ 3: <chunk_3>

[User] <user_query>

Citations: включай документ IDs в output → frontend показывает источники.

Evaluation RAG

Retrieval metrics:

  • Hit@K — есть ли правильный chunk в top-K
  • MRR (Mean Reciprocal Rank) — на какой позиции correct
  • NDCG — для ranking quality

Generation metrics:

  • Faithfulness — output grounded в context?
  • Answer relevance — output adressирует question?
  • Hallucination rate

Tools: Ragas, TruLens, LlamaIndex evaluators.

Cost и latency

RAG adds:

  • Embedding cost (small per query)
  • Vector store query latency (10-50ms)
  • Extra LLM tokens (context inclusion → больше токенов)

Optimization:

  • Cache embeddings для repeat queries
  • Smaller embedding model для retrieval, larger LLM для generation
  • Streaming generation (UX)

Типичные кейсы

«Спроектируй AI-помощник для документации»

  1. Source: документы (Notion / Confluence).
  2. Chunking: recursive по headers, 800 tokens + 100 overlap.
  3. Embeddings: text-embedding-3-large.
  4. Vector store: Qdrant.
  5. Retrieval: top 5 cosine + re-rank.
  6. Generation: GPT-4 с citations.
  7. Eval: Ragas faithfulness + answer relevance.

«RAG или fine-tuning?»

RAG: для свежих / specific фактов, citations. Fine-tune: для consistent style / format / behavior.

«Hallucinations в RAG?»

Reduce, но не eliminate. Mitigation: strict system prompt («только из context»), citations, output validation.

«Vector store на 1 миллион docs — какой выбрать?»

Qdrant или Pinecone (managed). pgvector — для маленьких; на 1M+ — слабо.

Частые ошибки

  • Fine-tune вместо RAG. Дороже, без citations, не updateable.
  • Слишком большие chunks. Retrieval noise.
  • Без re-ranking. Top-K vector search часто miss.
  • Без citations в UI. User не доверяет.
  • Без eval pipeline. Не знаем, RAG лучше baseline или хуже.

FAQ

RAG обязателен для AI-фич?

Только если LLM нужно знать про specific data. Для general purpose (general advice) — нет.

Какой embedding model в РФ?

YandexGPT / GigaChat embeddings, BGE (open-source), Multilingual-E5.

Сколько токенов context в prompt?

Зависит от LLM context window. GPT-4 — до 128k, Claude — 200k. Для cost обычно ограничивают 2-5k.

Chunking ручной или автоматический?

Recursive с overlap — стандартный auto. Manual для very specific documents.

Multi-modal RAG (изображения)?

CLIP embeddings для images. Можно искать images по text query.

Смотрите также