Skip to content

Тестовое для смены в сириус 2023

Notifications You must be signed in to change notification settings

VesVlad/sirius-test

 
 

Repository files navigation

sirius-test

Кейс по NLP для смены по машинному обучению от Тинькофф в Университете "Сириус". В рамках задания необходимо обучить свою диалоговую языковую модель и сделать телеграм бота для взаимодействия с ней. Что нужно сделать:

  1. Скачать диалоговые данные из Telegram. Можно взять любой открытый чат
  2. Затюнить открытую модель с хаггинфейса (в качестве базовой модели рекомендуем взять https://huggingface.co/tinkoff-ai/ruDialoGPT-medium)
  3. Для сёрвинга модели напишите телеграм бота
  4. Будет плюсом, если вы обернёте телеграм бота в докер. Дополнительным плюсом будет, если вы также сделаете отдельный сервис для модели и будуте сёрвить её в отдельном докере

В качестве решения задания нужно прислать публичный репозиторий, в котором должен быть код решения задачи и readme с описанием решения. Для обучения модели рекомендуем использовать google colab.

Вспомогательные инструкции

Как получить сырые данные из телеграма

В настройках выгрузки нужно выбрать формат json и убрать галочки со всех медиа файлов. Так как данные могут скачиваться долго, в репозитории лежит пример выгруженных данных.

Как распарсить данные

python prepare_messages.py --tg-history-path 'chata_export.json' --output-path 'data.csv'

Ход решения

I. Cбор данных

    Для обучения модели ruDialoGPT-medium была взят за основу чат рускоговорящего сообщества Docker'а

    Основная тематика чата: Docker, помощь в решении проблем и обсуждения вокруг этого.

II. Обучение модели

    В качестве базовой модели была выбрана ruDialoGPT-medium от Hugging Face. Затем, с помощью предобработки, данные были подготовлены для обучения. Модель была обучена в google colab на предоставляемых ими ресурсах.     Полученная модель была запушена на huggingface для более простого скачивания: Клац

III. Telegram бот

     Бот написан с помощью библиотеки python-telegram-bot.     Бот может отвечать как на текстовые, так и на аудиосообщения, транскрибируя их с помощью модели Whisper. Контекст и юзеры сохраняются в базе данных Postgres.

Развертывание Docker

  1. Клонируем репозиторий: git clone https://github.com/VesVlad/sirius-test.git
  2. Добавить телеграм токен и создать свою БД postgres.
  3. Выполняем сборку контейнеров с помощью команды Docker-compose up

About

Тестовое для смены в сириус 2023

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Jupyter Notebook 86.0%
  • Python 14.0%