Система, способная отвечать на вопросы пользователей о Банке России на естественном языке. Она использует передовые методы машинного обучения и обработки естественного языка для поиска информации из официального сайта Банка России.
Поиск информации: Система находит ответы на широкий спектр вопросов о Банке России, включая его функции, структуру, продукты и услуги.
Естественный язык: Пользователи могут задавать вопросы простыми словами, так же, как они бы спросили человека.
Высокое качество: Наше решение достигает хороших значений метрик, что подтверждает высокое качество генерации ответов.
Hybrid Document Retriever: гибридный подход к поиску информации, сочетающий в себе нейросетевые подход, так и классические методы на основе частот встречаемости слов, таких как BM25.
LostInTheMiddleRanker: анализирует найденные документы и определяет их релевантность к запросу пользователя. Алгоритм учитывает частоту встречаемости ключевых слов, структуру документа. Использование реранкера документов перед подачей в LLM позволило LLM меньше забывать детали важного контекста.
Векторная база данных: ElasticsearchEmbeddingRetriever для хранения эмбеддингов документов, что обеспечивает быстрый и эффективный поиск информации с возможностью масштабирования. Наша база данных разворачивается через докер и не стирается при отключении бэкенд или фронтенд части.
Метаданные: Векторный поиск мы осуществляем не только по контексту, но и по метаданным, в частности, по заголовку документа. Это позволяет правильно отвечать там, где информация в контексте написана слишком расплывчато и не содержит нужной концентрации информации.
Фильтрация: Наше решение предусматривает поддержку быстрого внедрения фильтрации по метаданным, что при минимальной доработке решения позволит сортировать документы практически по любым метаданным, таким как дата, заголовок, версия документа и другие.
Возможность дальнейших улучшений: База знаний может дополняться новыми данными из официального сайта Банка России для повышения качества генерации ответов.
-
Практическая ценность: Решение важной прикладной задачи для Банка России, которое позволяет ему эффективно обрабатывать запросы пользователей.
-
Простота использования: Рост в использовании и не требует от пользователей специальных знаний программирования.
-
Масштабируемость: Система может быть легко масштабирована для обработки больших объемов информации.
-
Потенциал для развития: Система имеет большой потенциал для развития, включая возможность добавления новых компонентов в архитектуре (энкодеры, ранкеры) и улучшения качества генерации ответов.
В этом проекте используется следующая структура директорий:
-
data: В этой директории хранятся данные, необходимые для векторного поиска. Включает в себя небольшие текстовые файлы, остальные ресурсы подгружаются отдельно.
-
front: Реализация GUI для наглядной демонстрации работы.
-
ml-service: Реализация backend части на FastAPI.
Папки с экспериментами:
-
extract: Здесь содержатся скрипты или модули, отвечающие за извлечение информации из документов Банка России. Это может включать в себя текстовые, структурные или семантические методы извлечения.
-
parser: Директория с кодом и скриптами, предназначенными для обработки входных данных с сайта cbr.ru.
-
prepare_data_pdf: предварительная обработка данных для документов в формате PDF.
-
semantic_search: Здесь располагаются компоненты, отвечающие за семантический поиск информации в документах Банка России.
-
smart_search: Если предусмотрен "умный" поиск, который получает топ релевантных документов для дальнейшей обработки большой языковой моделью.
В нашу систему можно подгружать любые данные для поиска по ним:
- Одобеску Роман - teamlead
- Сим Роман - ml-engineer
- Загорулько Олег - nlp-engineer
- Хакимуллин Рустем - nlp-engineer
- Александр Гавриленко - ml-engineer






