Данный репозиторий создан в рамках хакатона "Цифровой прорыв". Презентация: https://docs.google.com/presentation/d/1Ny17g1TYdZ-pausKevPJIfbtxVnKugiMXOYhkQMXY3Y/edit?usp=sharing
Создать интеллектуального ассистента методиста, способного транскрибировать лекцию и создать список основных терминов.
Приложение состоит из бэкенд и фронтенд части, взаимодействующей с помощью FastAPI.
Фронтэнд и бэкенд части проекта размещены в папках front/
и back/
соответственно.
1) Запуск бэкенда:
make setup
run all together:
make application - web app,
make whisper - consumer with whisperx for transcribation,
make llm_glosary - consumer with Mistral7B for generation glosary,
make llm_conspect - with Mistral7B for generation conspect
2) Запуск фронта:
cd ./front
yarn install
yarn start
-
Транскрибация
- были проведены эксперименты с моделями
whisper-large
иwhisperX
- итоговое решение основывается на модели
whisperX
зарекомендовавшей себя как решение, обеспечивающее необходимое качество транскрибаций и высокую скорость работы
- были проведены эксперименты с моделями
-
Выделение глоссария Предлагается два решения по формированию глоссария (выбирается в конфигурационном файле):
а) [быстрый baseline] Базовый способ основывается на модели
Saiga-Mistal-7b
и библиотекеlangchain
.Модель обрабатывает текст по частям, формируемым с помощью специализированного модуля, учитывающего особенности токенайзера
Saiga-Mistal-7b
и структуру лекции. Внутри каждой выделенной части модель выделяет термины и определения, далее, полученные результаты агрегируются по всем частям и группируются. В ходе агрегации отдельный блок дополнительно очищает выделенные данные от некорректно сформированных определений. Для терминов, которые были определены в лекции несколько раз - определение включает все формулировки определения.б) [высокое качество] Данный подход является развитием baseline и включает в себя более продвинутую фильтрацию и формирование наиболее полных и точных определений.
На основе полученных терминов, специально разработанный RAG пайплайн, с применением one-shot и airboroso техник дает каждому термину определение, учитывающее всю информацию, полученную из лекции с использованием векторной базы данных и семантического поиска. Далее, производится фильтрация терминов, которые не связаны с тематикой лекции или на которых не было достаточного фокуса - то есть тех терминов, с которыми студенты уже были потенциально знакомы.
-
Получение таймкодов Таймкоды для терминов и их определений получаются с помощью комбинации модели
whisperX
и векторной базыChroma
- на базе utterance-ов ASR модели и векторного поиска по релевантным понятиям. Также предлагается более сложный подход, подробно описываемый в лекции. -
Генерация тестов Генерация заданий осуществляется с помощью модели
Saiga-Mistal-7b
, при формировании корректных ответов на вопросы теста также используется RAG пайплайн, позволяющий получить наиболее полные и точные ответы. -
Перевод материалов (выбирается в конфигурационном файле) Перевод материалов на другие языки осуществляется с помощью специльного модуля модели
whisperX