RAG Agents LLM

Архитектура RAG-системы (общее)

  • Зачем нужен Guardrails в агентной системе? Какие узлы должны быть помимо RAG и SQL-агента (UX, эскалация на оператора)?
  • Как реализовать роутинг между узлами в мульти-агентной системе?

Парсинг и подготовка данных

  • Какие ресурсы нужны для парсинга PDF через Docling? Каков обычный латенси для тысяч документов?
  • Как организовать pipeline обновления документации по расписанию (Airflow, ночные джобы)?

Эмбеддинги и поиск

  • Что такое dense-вектора и sparse-вектора, чем они отличаются?
  • Какой алгоритм для sparse-векторов используется в Qdrant? Это BM25 или нет?
  • Какую модель эмбеддинга выбрать (BGE-M3 vs альтернативы)? Сколько ресурсов CPU/RAM нужно для inference?

Дообучение эмбеддера

  • Как формировать датасет для дообучения эмбеддера (запрос → релевантный чанк)?
  • Как майнить hard negatives через несколько моделей-учителей?
  • В какой пропорции hard negatives относительно позитивов? Нужны ли random negatives?
  • Как генерировать синтетические данные через LLM? Какую модель использовать для генерации, какую для валидации?
  • В каких случаях LoRA выигрывает у полного SFT при дообучении эмбеддера?

Метрики качества ретривера

  • Какие метрики качества эмбеддера замеряют (NDCG, Recall@5)?
  • Что такое NDCG? Как нормализуется? Какой у него диапазон?
  • Что значит NDCG=0.3? Можно ли оперировать этим значением для понимания, насколько глубоко в выдаче находится релевантный документ?
  • Почему именно Recall выбирают как метрику для ретривера?
  • Когда лучше смотреть Precision вместо Recall?

Cross-Encoder и реранкинг

  • Какие Cross-Encoder используют для реранкинга?
  • Как объединять результаты dense + sparse поиска перед реранкингом (MRR, Reciprocal Rank Fusion)?
  • Сколько времени отрабатывает Cross-Encoder на 50 чанках? Как ускорить?
  • Когда выгоднее лёгкая LLM в качестве реранкера, а когда обученный BGE-reranker?

LLM в проде

  • Сколько ресурсов GPU нужно для развертывания LLM на 14B параметров?
  • Что такое vLLM и SGLang? В чём разница? Что такое Radix-кэш?
  • Какие плюсы и минусы 4-bit квантования (AWQ) для inference больших LLM? Как оно влияет на качество и память?
  • Когда есть смысл дообучать LLM-ку для генерации, а когда нет?

SQL-агент

  • Как работает SQL-агент: chain-of-thought, инструменты, схема БД в контексте?
  • Как валидировать SQL-запрос (через EXPLAIN)?
  • Как реализовать LLM-judge для оценки сгенерированного SQL? Какие критерии (синтаксис, оптимизированность, соответствие схеме)?
  • Как реализовать human-in-the-loop парадигму перед исполнением SQL?
  • Что такое rate-limiting в итеративной рефлексии агента?

Прототипирование и production

  • Какие технологии используют для прототипирования RAG (LangChain, Chroma, ChainLit)?
  • Как в FastAPI открыть Swagger? Что нужно прописать, чтобы он появился?
  • В чём преимущество FastAPI перед Flask?

Code-review

  • На какие 5 вещей смотришь при code-review? (type hints, edge cases, mutable default arguments, дублирование кода, изобретение колеса)

Нагрузочное тестирование

  • Как проводить нагрузочное тестирование агентной системы? Что замерять?
  • Что такое P95, P99 латентность? Как обосновать P95 = 1 минута для агента?