Git workflow

Лев Коваленко — Senior DS Engineer

Какие workflow существуют?

Gitflow

Github flow

Forking workflow

Почему эти flow не подходят DS?

Data Science Lifecycle Process

Data branch

Explore and experiment branches

Model branches

Хорошая методология?

Плюсы

  • В основной ветке только важный код.
  • Сохраняется информация о всех исследованиях.
  • Имеет “логичные” разделения веток для разных задач.

Минусы

  • Сложно автоматизировать воспроизведение всех исследований.
  • Информация об исследованиях “размазана” по репозиторию.
  • В теории выглядит хорошо, а на практике…

Альтернативы..?

Репозиторий исследователя

  • Ведется по github flow
  • Большое количество тетрадок
  • Одна тетрадка - одно исследование
  • Каждое исследование в своей ветке
  • Ревью в первую очередь результатов исследования, а не кода
  • Поддерживается воспроизводимость исследований
  • Данные получаются из централизованного хранилища
  • Новых данных не порождает

Репозиторий дата инженера

  • Ведется по git flow
  • Разрабатывается как пайплайн обработки данных
  • Порождает данные в централизованное хранилище
  • Высокие требования к качеству кода

Плюсы и минусы

Плюсы

  • Быстрое проведение исследований
  • Исследования и исcледователи независимы
  • Все исследования воспроизводимы
  • Единый пайплайн обработки данных
  • В пайплайне только нужный код

Минусы

  • Нужно следить и за данными и за кодом
  • Иногда появляется копипаста в исследованиях
  • Нужно поддерживать пайплайн обработки данных