Вступление
За годы разработки ML- и DL-проектов у студии Surf накопились и большая кодовая база, и много опыта, и интересные инсайты и выводы. При старте нового проекта эти полезные знания помогают увереннее начать исследование, переиспользовать полезные методы и получить первые результаты быстрее.
Очень важно, чтобы все эти материалы были не только в головах разработчиков, но и в читаемом виде на диске. Это позволит эффективнее обучить новых сотрудников, ввести их в курс дела и погрузить в проект.
Конечно, так было не всегда. Мы столкнулись с множеством проблем на первых этапах
- Каждый проект был организован по-разному, особенно если их инициировали разные люди.
- Недостаточно отслеживали, что делает код, как его запустить и кто его автор.
- Не использовали виртуализацию в должной степени, зачастую мешая своим коллегам установкой существующих библиотек другой версии.
- Забывались выводы, сделанные по графикам, которые осели и умерли в горé jupyter-тетрадок.
- Теряли отчеты по результатам и прогрессу в проекте.
Для того, чтобы эти проблемы решить раз и навсегда, мы решили, что нужно работать как над единой и правильной организаций проекта, так и над виртуализацией, абстракцией отдельных компонентов и переиспользуемостью полезного кода. Постепенно весь наш прогресс в этой области перерос в самостоятельный фреймворк — Ocean.
Вишенка на торте — логи проекта, которые агрегируются и превращаются в красивый сайт, автоматически собранный с помощью выполнения одной команды.
В статье мы расскажем на маленьком искусственном примере, из каких частей состоит Ocean и как его использовать.