RAG Pipeline 3/N: Чанки – как резать текст, чтобы модель не получала мусор

Параметр Значение Bloom L3–L4 (Применение → Анализ) SFIA Уровень 2–3 Dreyfus Advanced Beginner → Competent Артефакт Скрипт нарезки markdown + stats Проверка 180+ файлов → 3 010 чанков, 0 ошибок Ollama TL;DR Нарезка текста на фрагменты (chunking) – этап, который влияет на качество RAG не меньше, чем выбор модели. Режем по заголовкам H2/H3, дорезаем с перекрытием 150 символов, чистим мусор. 800 символов – потолок для русского текста при 512-токенном лимите модели. ...

20 мая 2026 · 11 минут · 2317 слов · DevOps Way

RAG Pipeline 4/N: Гибридный поиск – почему одних векторов мало

Параметр Значение Bloom L4 (Анализ) SFIA Уровень 3 Dreyfus Competent Артефакт BM25 encoder + RRF fusion скрипт Проверка Hybrid search находит результаты, которые dense и sparse пропускают по отдельности TL;DR Dense-векторы находят похожее по смыслу, но теряют точные совпадения команд. BM25 находит ключевые слова, но не понимает синонимы. Гибридный поиск запускает оба параллельно и сливает результаты через RRF (Reciprocal Rank Fusion). Веса: dense 0.7, sparse 0.3. Итого ~80ms на запрос. ...

27 мая 2026 · 19 минут · 4036 слов · DevOps Way

RAG Pipeline 5/N: Cross-encoder reranking – когда порядок важнее полноты

В предыдущих сериях: Qdrant (1/N), эмбеддинги (2/N), нарезка на чанки (3/N), гибридный поиск (4/N). Нужный чанк стабильно залетает в top-15. Но порядок внутри этих 15 результатов определяет, какой чанк окажется в top-1. А top-1 – это то, что видит пользователь (или LLM при генерации ответа). Этот пост о том, как заставить систему вчитываться в результаты. Переранжирование: дешёвый двухступенчатый каскад, который не меняет recall, но переставляет результаты так, чтобы лучший оказывался первым. Проблема: RRF не читает документы Гибридный поиск (пост 4/N) работает так: ...

2 июня 2026 · 8 минут · 1 слово · DevOps Way