Skip to content

something-original/mlops_itmo

Repository files navigation

itmo_mlops

Проект по курсу MLOps в ИТМО.
Студент: Киселев Георгий

Описание проекта

Проект посвящен анализу корпоративных документов (счета, договоры и т.д). Пользователь загружает 2 файла (PDF, Word или изображения), например, оригинал документа и его предполагаемую копию. На выходе пользователь получает статистику выявленных расхождений и оценку степени схожести документов. Используются OCR и NLP пайплайны.

Git Workflow

При работе над проектом используется Github Flow: есть релизная ветка main (master), на каждую новую фичу (домашнее задание) создается отдельная ветка. После завершения работы над фичей (домашним заданием), проверки преподавателем и исправления ошибок эта ветка вливается в main. Выбор модели ветвления обусловлен ее удобством при работе над проектом одному, так как не нужно создавать и поддерживать большое количество веток одновременно.

Работа с системой версионирования

В качестве системы версионирования выбран DVC, хранилище - HuggingFace. В директории (ocr_model_training) находятся скрипты для генерации датасета и обучения моделей компьютерного зрения с использованием фреймворков EasyOCR и Doctr. Исходный датасет с изображениями (текст только на кириллице) хранится на стороннем репозитории HuggingFace. Он берется за основу, в дополнение к нему генерируются собственные изображения, включающие не только кириллицу, но и латиницу и специальные символы. После генерации полученный датасет сжимается и с помощью DVC загружается в собственный репозиторий HuggingFace, при этом обовляется версия датасета. Далее происходит обучение, валидация и тест модели на соответствующих данных, после чего обученная модель загружается на HuggingFace. После этого происходит сравнение обеих моделей актуальных версий на тестовой выборке данных, результаты сохраняются в таблицу.

Используемые инструменты:

  • Для управления зависимостями - poetry
  • Система версионирования - DVC
  • Для больших данных - HuggingFace (GIT LFS)
  • Линтер - flake8
  • Docker

Описание CI-пайплайнов

CI-пайплайны реализованы с помощью GitHub Actions и описаны в файлах в папке .github/workflows. Пайплайны запускаются при push в любую из веток. Включают в себя проверку линтером, сборку Docker-образа и сборку документации.

Запуск проекта

  1. Клон репозитория: git clone https://github.com/something-original/mlops_itmo.git && cd mlops_itmo
  2. Установка зависимостей с помощью poetry: poetry install --no-root
  3. Для использования pre-commit хуков: poetry run pre-commit install
  4. Можно использовать Docker: docker build --tag "mlops_itmo" . или docker-compose docker-compose up

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages