Один АВ-тест в год или положить прод?
Всем хочется простого, человеческого счастья, чистого кода и стабильности ML-систем. Но это требует много времени и навыков. Поэтому в таких системах проводить изменения сложно и обычно катают один АВ-тест в год: не преувеличиваю, видел такого немало
Другая крайность - костыль на костыле в коде, АВ-тесты текут рекой, но половина из них невалидны
Сам я адепт быстрых изменений-костылей, но и за валидность АВ. Поэтому очень верю в концепцию двух репозиториев: research и prod. И я сам приложил руку к такой практике в паре компаний, и так уже работает во многих местах. Например, ML-cпецы финтеха Точка Банк недавно писали про это пост с докладом, где довольно хорошо раскрыли эту тему с примерами про масштабирование sklearn, тайпингами transformers и другими не всегда очевидными деталями.
В research код не такой красивый и быстрый, зато понятный и быстроизменяемый. В пределе research код вообще может возвращать csv-шку, которая заливается в прод на время А/В. И если эксперимент зеленый, то дорабатывается полноценное решение уже в prod репозитории с нормальными таймингами, стабильностью и регулярным обучением моделей
Самая большая сложность - внедрить правила / контракты, по которым эти репозитории дружат друг с другом. А не Jupyter notebook переписывать на Go с нуля каждый раз. Но если помучиться и сделать это, то дальше вас ждёт дивный новый мир, где research + prod = мощная коллаборация
А вы за какой вариант?
🌚 - Только стабильность prod кода и тайминги сразу, только хардкор 🔥 - За быстрые эксперименты, пусть и .csv. Если дает метрики, то по существующим договорённостям перенесём в prod решение с небольшими доработками ⚡️- Вжух-вжух и в продакшен, дальше видно будет. Мир быстро меняется: может за полгода выйдет gpt-6 и мы перепишем все с нуля
В этом посте были ссылки, но мы их удалили по правилам Сетки