Проект представляет собой Retrieval Augmented Generation в основе которой лежит Llama 2
Папки clickhouse, embedding и llama содержат в себе докер контейнеры серверов.
- clickhouse - разворачивается колоночная СУБД Clickhouse. Она используется для быстрого поиска по эмбеддингам уже решенных вопросов или нормативным актам банка.
- embedding/server.py - разворачивает сервер для конвертации текста в эмбеддинг. Взаимодействие происходит с помощью POST HTTP запроса. Эмбеддинги формируются с помощью модели e5-base-v2 которая обеспечивает высокую точность и качество векторных представлений.
- Llama/server.py - разворачивает сервер (взаимодействие так же происходит с помощью POST HTTP запроса) llama2-13b-orca-8k-3319 с 8ми битным квантованием, которая поднимает процесс обработки данных на новый уровень, предоставляя уникальные возможности для анализа и интерпретации информации.
Каждый из этих 3х микросервисов запускается следующими командами:
docker compose builddocker compose up
Папка rag содержит в себе все этапы запроса от клиента:
- rag/clickhouse_client.py - класс взаимодействия СlickHouse (поиск по по косинусноуму расстоянию по таблицам документов и вопросов)
- rag/embedding_client.py - класс для создания embeddings
- rag/llama_client.py - класс для взаимодействия с Llama2
- rag/rag_client.py - поэтапно прописанная реализация retrieval augmented generation
Папка tg_bot_UI содержит в себе реализацию telegram бота для удобного взаимодействия пользовотеля с системой
Все сервисы разворачиваются на удаленном сервере с следующими параметрами:
GPU - Tesla A10 24 Gb
RAM - 32 Gb
SSD - 160 Gb
Попробовать качество работы можно в telegram боте https://t.me/cbhack_bot
Torch-ки
- Агибалов Сергей - https://github.com/ItsMyPain
- Березин Даниил - https://github.com/BerezinDaniil
- Бойков Максим - https://github.com/maxxxims