Engineering practices in ML

Lev Kovalenko

Зачем этот курс?

  • Познакомиться с повсеместными проблемами отрасли и их глубиной.
  • Узнать их негативное влияние на разных уровнях (разработчик, команда, компания, индустрия).
  • Изучить инструменты и практики позволяющие снизить это влияние.
  • Поднять уровень компетенций в области ML.

Почему такое название?

Инженерные практики в разработке ПО

  • Test driven development
  • Refactoring
  • Design Improvement
  • Continuous integration - continuous delivery
  • Pair programming
  • Automated tests

Что же с DS/ML?

мы математики, нам это не надо

Какой план?

  • Понимание проблематики
  • Организация процесса в команде
  • Инструменты воспроизводимости исследований

I dont’t like jupyter notebooks1

  • скрытые состояния, которые можно забыть или испортить
  • возможность запускать код в произвольном порядке
  • нет поддержки линтеров, форматеров и автокомплита
  • не поддерживают модульность и переиспользование кода
  • поощрают написание не тестируемого кода
  • приходиться писать смешанный код
  • не удобны для версионировании в гите
  • нет requirements

Резюме: jupyter notebooks поощряют вредные привычки и плохие процессы, а также препятствуют появлению хороших привычек.