Российские энтузиасты технологий создали экспериментальную RAG-систему, способную анализировать текущие новости через призму наследия Владимира Ленина. Проект родился из попытки ответить на вопрос, как великий революционер оценил бы современные события, используя только сохранившиеся тексты его работ и труды оппонентов. Для реализации замысла разработчики решили обойтись малыми вычислительными мощностями, но столкнулись с классическими проблемами ИИ-генерации: галлюцинации, шаблонные ответы и неточные цитаты.
Идея возникла не на пустом месте. Широкое распространение блогеров как аналитиков современности показало, что общество нуждается в экспертной оценке информации. Авторы проекта задались вопросом: а что, если эту роль взял бы на себя ИИ, опирающийся на проверенные исторические источники? Выбор Ленина в качестве «исторической личности» оказался неслучайным. Сохранившиеся работы как сторонников, так и противников вождя революции предоставили богатый материал для анализа. К тому же, конец XIX — начало XX века стали периодом активной систематизации интеллектуального наследия, что сделало такие источники особенно ценными для машинного обучения.
Техническая реализация проекта началась с подготовки текстового корпуса. Всего в распоряжении разработчиков оказалось несколько тысяч страниц произведений Ленина, его оппонентов и философских трудов, на которые он опирался. Первым этапом стала очистка текстов от типографского шума, номеров томов и страниц. Затем последовало «чанкование» — разбиение на логические фрагменты с учётом структуры книг и статей. Каждому фрагменту присваивалась специализированная метка, определяющая его роль: тезис, антитезис или поддерживающий аргумент. Этот процесс занял более недели непрерывной работы видеокарты RTX 4060 на 8 ГБ — не самый мощный, но достаточно производительный железный конфигуратор для тестов.
Следующим шагом стало преобразование текстов в векторные представления. Использовались плотные эмбеддинги размерностью 2048, которые хранились в базе данных Qdrant. Здесь разработчики применили гибридный поиск, сочетающий плотные векторы и классический BM25. Результаты двух подходов объединялись с помощью механизма RRF, что позволило получать более точные ответы по всему текстовому корпусу. Сама система представляет собой локальный RAG-пайплайн, состоящий из офлайн и онлайн контуров. Офлайн-часть отвечает за обработку литературных источников, а онлайн — за работу с новостями.
Для анализа текущих событий использовался RSS-поток новостей. Парсер периодически проверял источники, отсеивая повторные публикации с помощью SQLite. Основной проблемой стали ложные срабатывания: система могла генерировать нежелательный контент, включая карикатурные ответы в духе революционной риторики. Чтобы этого избежать, был реализован модуль цензурирования с несколькими уровнями фильтрации. Один из слоёв работал на основе поиска подстрок в загруженных YAML-словарях со стоп-словами, что позволяло оперативно обновлять список триггеров. Однако полнота таких списков никогда не гарантировала абсолютной защиты — иногда нежелательный контент всё равно пробивался.
Центральным элементом системы стал оркестратор, реализующий диалектический метод анализа. Он заставлял модель рассматривать каждый вопрос с трёх противоположных позиций: прямой позиции (тезис), поддерживающих аргументов (влияние согласия) и критической позиции (влияние оппозиции). Такой подход, вдохновлённый гегелевской триадой, позволял синтезировать сбалансированный вывод, избегая одномерных ответов. Если критическая позиция (R3) оказывалась пустой, система выдавала предупреждение и формировала ответ на основе доступных данных.
На этапе разработки генерация текстов происходила локально с использованием модели GigaChat3 на видеокарте Ryzen 7 5800X с 64 ГБ оперативной памяти. Для продакшен-версии пришлось перейти на внешние API из-за ограничений VPS-хостинга. Однако переход оказался не таким простым, как казалось. Разные модели по-разному интерпретировали структурированные промпты, добавляя собственные «творческие» элементы. Например, одна из моделей начала вставлять блоки «ограничение/условие применимости» в середину ответа, что нарушало целостность структуры.
Проблемы с качеством генерации заставили разработчиков пересмотреть подходы. Выдумывание цитат удалось решить, жёстко ограничив модель только RAG-данными и добавив пост-валидацию. Шаблонные ответы устранили с помощью структурированного формата «Факт — Механизм — Вывод». Поверхностный анализ был исправлен требованием причинно-следственных связей в промпте, а галлюцинации — жёсткими запретами на генерацию информации вне предоставленного контекста. Сегодня система всё ещё требует доработки, но уже демонстрирует потенциал узкоспециализированных RAG-решений для исторического анализа.




Подписаться
Уведомления о новых комментариях пока не подключены.
Пожалуйста, войдите, чтобы прокомментировать
0 комментариев