Skip to content

Продвинутая RAG-система для комплексной корректуры русского текста, использующая архитектуру "Комитет экспертов". Построена на LlamaIndex, Mistral-7B и Gradio

License

Notifications You must be signed in to change notification settings

Runoi/Advanced-Russian-RAG-Corrector

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 

Repository files navigation

Advanced Russian RAG Corrector

"Итеративный комитет экспертов" — продвинутая RAG-система для комплексной корректуры русскоязычных текстов.

Python LlamaIndex HuggingFace Gradio License: MIT


📖 Обзор проекта

Этот проект представляет собой не просто программу для исправления ошибок, а полноценное научно-инженерное исследование возможностей и ограничений современных гибридных языковых систем. Целью было создание RAG-корректора, способного выполнять комплексную редактуру русскоязычных текстов, включая орфографию, пунктуацию, грамматику и стилистику.

Ключевой особенностью проекта является глубокая проработка архитектуры RAG-пайплайна и отказ от стандартных, высокоуровневых абстракций в пользу "ручной" настройки для достижения максимальной точности и гибкости.

▶️ Демонстрация работы: [Сюда можно вставить ссылку на работающее Gradio-приложение, если вы его где-то развернули, или просто скриншот/гифку]

🚀 Ключевые особенности и архитектура

В ходе исследования было протестировано несколько архитектур. Финальная, наиболее эффективная версия, "Итеративный комитет экспертов", основана на следующих принципах:

  1. Гибридная База Знаний: Система использует три гетерогенных источника данных для формирования контекста:

    • Примеры ошибок: Кастомный датасет из 100+ пар "ошибка → исправление".
    • Свод правил: "Правила русской орфографии и пунктуации" 1956 г.
    • Орфографический словарь: Полный словарь на 165,000+ статей (может быть модульно отключен для ускорения).
  2. Контролируемая индексация: Вместо автоматического VectorStoreIndex.from_documents() используется пошаговый процесс с явным выбором:

    • Стратегии чанкинга для каждого типа данных.
    • Модели для эмбеддингов (paraphrase-multilingual-mpnet-base-v2).
    • Разделения ресурсоемкой офлайн-индексации и быстрой онлайн-загрузки с помощью persist/load_from_storage.
  3. Архитектура "Комитета экспертов": Для минимизации "галлюцинаций" и повышения качества ответа применяется принцип декомпозиции когнитивной нагрузки. Вместо одного сложного запроса, система делает несколько параллельных вызовов к LLM, где каждая выступает в роли "эксперта" по своей базе знаний. Финальный ответ синтезируется из этих предобработанных, осмысленных "отчетов".

  4. Итеративные объяснения: Система не просто исправляет текст, а генерирует детальный отчет. Для каждой правки запускается отдельный RAG-цикл для поиска релевантного правила/примера, что делает объяснения точными и подкрепленными "доказательствами".

  5. Интерактивный конвейер: Весь пайплайн обернут в 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).

  1. Среда: Откройте ноутбук в Google Colab и выберите среду выполнения с GPU (T4), рекомендую L4 или увеличить ОЗУ.
  2. Установка: Выполните первую ячейку для установки всех необходимых зависимостей.
  3. Подготовка Баз Знаний (Этап I): Выполните вторую ячейку. Этот процесс (особенно индексация словаря) может занять 15-20 минут. Он выполняется один раз и сохраняет готовые индексы в папках storage_*.
  4. Запуск корректора (Этап II и III): Выполните третью ячейку, которая загрузит готовые индексы, определит финальную архитектуру и запустит Gradio-приложение. В консоли появится публичная ссылка на веб-интерфейс.

📈 Пути для дальнейшего улучшения

  • Оптимизация производительности: Переход от файловых docstore к специализированной векторной БД (ChromaDB, Milvus) для устранения "холодного старта".
  • Повышение точности: Дообучение (Fine-tuning) LLM на датасете ошибок для формирования у модели "навыка", а не только "знания".
  • Улучшение объяснений: Разработка более сложных промпт-шаблонов с принудительным цитированием и техниками Chain-of-Thought.

Лицензия Этот проект распространяется под лицензией MIT.

About

Продвинутая RAG-система для комплексной корректуры русского текста, использующая архитектуру "Комитет экспертов". Построена на LlamaIndex, Mistral-7B и Gradio

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published