"Итеративный комитет экспертов" — продвинутая RAG-система для комплексной корректуры русскоязычных текстов.
Этот проект представляет собой не просто программу для исправления ошибок, а полноценное научно-инженерное исследование возможностей и ограничений современных гибридных языковых систем. Целью было создание RAG-корректора, способного выполнять комплексную редактуру русскоязычных текстов, включая орфографию, пунктуацию, грамматику и стилистику.
Ключевой особенностью проекта является глубокая проработка архитектуры RAG-пайплайна и отказ от стандартных, высокоуровневых абстракций в пользу "ручной" настройки для достижения максимальной точности и гибкости.
В ходе исследования было протестировано несколько архитектур. Финальная, наиболее эффективная версия, "Итеративный комитет экспертов", основана на следующих принципах:
-
Гибридная База Знаний: Система использует три гетерогенных источника данных для формирования контекста:
- Примеры ошибок: Кастомный датасет из 100+ пар "ошибка → исправление".
- Свод правил: "Правила русской орфографии и пунктуации" 1956 г.
- Орфографический словарь: Полный словарь на 165,000+ статей (может быть модульно отключен для ускорения).
-
Контролируемая индексация: Вместо автоматического
VectorStoreIndex.from_documents()
используется пошаговый процесс с явным выбором:- Стратегии чанкинга для каждого типа данных.
- Модели для эмбеддингов (
paraphrase-multilingual-mpnet-base-v2
). - Разделения ресурсоемкой офлайн-индексации и быстрой онлайн-загрузки с помощью
persist/load_from_storage
.
-
Архитектура "Комитета экспертов": Для минимизации "галлюцинаций" и повышения качества ответа применяется принцип декомпозиции когнитивной нагрузки. Вместо одного сложного запроса, система делает несколько параллельных вызовов к LLM, где каждая выступает в роли "эксперта" по своей базе знаний. Финальный ответ синтезируется из этих предобработанных, осмысленных "отчетов".
-
Итеративные объяснения: Система не просто исправляет текст, а генерирует детальный отчет. Для каждой правки запускается отдельный RAG-цикл для поиска релевантного правила/примера, что делает объяснения точными и подкрепленными "доказательствами".
-
Интерактивный конвейер: Весь пайплайн обернут в Gradio-приложение, которое поддерживает:
- Обработку больших файлов (
.txt
,.docx
) с помощью метода скользящего окна. - Эвристическую фильтрацию нелитературного контента.
- Визуализацию правок в реальном времени.
- Обработку больших файлов (
Проект является не только работающим прототипом, но и комплексным исследованием. Ключевые выводы:
- Доказана неэффективность "наивных" RAG-архитектур из-за информационной перегрузки LLM.
- Экспериментально подтверждена эффективность архитектуры "Комитет экспертов" для снижения когнитивной нагрузки и улучшения качества синтеза.
- Выявлен феномен "диссоциации компетенций" у LLM (способность исправить ошибку, но неспособность корректно вербализовать правило), что является важным наблюдением для дальнейших исследований в области Explainable AI.
- Определены практические ограничения текущей реализации: система требует финальной верификации человеком и наиболее эффективна для корректуры небольших фрагментов текста.
- Язык: Python
- Оркестрация RAG: LlamaIndex
- LLM:
IlyaGusev/saiga_mistral_7b_gguf
(запуск через LlamaCPP) - Embedding Model:
sentence-transformers/paraphrase-multilingual-mpnet-base-v2
- Векторный поиск: FAISS (через интеграцию LlamaIndex)
- UI: Gradio
- Обработка данных:
PyMuPDF
,python-docx
Данный проект реализован в формате ноутбука Google Colab (.ipynb
).
- Среда: Откройте ноутбук в Google Colab и выберите среду выполнения с GPU (T4), рекомендую L4 или увеличить ОЗУ.
- Установка: Выполните первую ячейку для установки всех необходимых зависимостей.
- Подготовка Баз Знаний (Этап I): Выполните вторую ячейку. Этот процесс (особенно индексация словаря) может занять 15-20 минут. Он выполняется один раз и сохраняет готовые индексы в папках
storage_*
. - Запуск корректора (Этап II и III): Выполните третью ячейку, которая загрузит готовые индексы, определит финальную архитектуру и запустит Gradio-приложение. В консоли появится публичная ссылка на веб-интерфейс.
- Оптимизация производительности: Переход от файловых
docstore
к специализированной векторной БД (ChromaDB, Milvus) для устранения "холодного старта". - Повышение точности: Дообучение (Fine-tuning) LLM на датасете ошибок для формирования у модели "навыка", а не только "знания".
- Улучшение объяснений: Разработка более сложных промпт-шаблонов с принудительным цитированием и техниками Chain-of-Thought.
Лицензия Этот проект распространяется под лицензией MIT.