👋 дочитал ML System Design от @cryptovalerii и @partially_unsupervised
это одна из самых полезных книг не про модели и не про то, как натянуть очередной алгоритм на задачу, а про то, почему ML-проекты разваливаются уже после красивого demo
главная мысль лично для меня:
ml system design — это сначала понять проблему, цену ошибки, ограничения, как будем интегрировать, что нужно мониторить и только потом уже учить что-то умное.
вообще я бы назвал эту книжку настольной. Иногда перечитывать и заострять свое внимание на важных моментах очень полезно.
вот как раз эти мысли, про которые было бы хорошо вспоминать при разработке различных систем:
1. понимание problem space важнее чем solution space
очень частая ошибка в командах разного уровня: тебе говорят "давайте сделаем персональные рекомендашки" и инженеры начинают блестать своими знаниями о зоопарке различных алгоритмов.
А потом оказывается, что крутая модель по оффлайн метрикам вообще не вывозит онлайн, так как рассматривает товары по одиночке, а бизнесу, например, важно собирать наборы товаров.
книга напоминает: сначала решаем для кого делаем решение, что реально у них болит, как выглядит успешное решение, сколько стоит цена различных ошибок.
2. дизайн док — это не бюрократия, а способ не потратить 3 месяца вникуда. Док нужен, чтобы вовремя понять — может 90% результата можно достигнуть обычными правилами
3. валидация важнее, чем кажется
можно получить красивые оффлайн метрики и потом убить систему в production просто потому, что split был нереалистичным. Банально, если в реальности данные меняются со временем, то random split для разделения выборки часто рисует тебе влажные фантазии а не реальность
4. мониторинг — это не только цпу/рам и задержка!
Нужно смотреть минимум на 4 слоя: инфра, качество данных, качество модели, бизнес метрики.
Да, модель может не сломаться технически, но, например, по метрикам модели или бизнес метрикам вы можете заметить что модель начала деградировать из за дрифта, нового сегмента пользователей или изменения продукта
5. Главная мысль для сеньор уровня.
ml system design = правильно поставить задачу -> выбрать честные метрики -> собрать и провалидировать данные -> построить baseline -> улучшать через анализ ошибок -> упаковать в пайплайн -> встроить в продукт -> мониторить дрифт модели и KPI метрики -> заранее обеспечить поддержку системы в будущем.
В книге это и есть настоящий e2e взгляд на ml систему, где модель лишь один из компонентов, а не центр решения проблемы.
В целом книга понравилась. Иногда было водянисто, но полезные советы выцепить не трудно.
Книга очень коррелирует с моими мыслями: лучше стабильный бейзлайн и итеративное его улучшение, чем крутая модель с полугодовой разработкой, которая после месяца использования деграднет 🕺
Post #11879
168
Forwarded from Тоже Паша Техник