Comments 14
Задумывались над тем, чтобы перейти к "полуавтоML" посредством сервиса диалога с пользователем?
Что-то наподобие:
- есть выбросы в колонке target. фильтруем, или оставляем?
- да
На самом деле на данный момент инструмент примерно так и работает: во-первых, в сервисе подробно логгируется множество вещей; во-вторых, сейчас активно прорабатывется система автопредупреждений (в частности, там будет и предупреждение о наличии выбросов). Всё это позволяет пользователю проанализировать результаты обучения в полной мере и самому решить, нужно ли перезапускать AutoML или нет.
Вообще идея с диалогом очень интересная, возьмём на заметку) При разработке такого сервиса очень важно отталкиваться от пожеланий пользователей и выбрать верный формат коммуникаций с ними.
Не понятно насчет размера выборки: "10 млн" - сколько это в ГБ будет?
Выборка размером 10 млн со всеми признаками из FeatureStore (которых более 2000) занимала до 300 ГБ. Загружать такую выборку в оперативку больно и по памяти, и по времени. Наше решение этой проблемы описано в разделе "Предобработка и предварительный отбор фичей". После предобработки выборка 10 млн с отобранными признаками занимает до 75-100 ГБ.
Спасибо за содержательный обзор. Возник вопрос - как выглядит работа с вашей реализацией automl с точки зрения пользователя? Анлогично LightAutoML, т.е. pip install, импорт бибиотеки в сессию, оперделение пайплайна, фит, предикт, или принципиально по другому?
Благодарим! С точки зрения пользователя - да, библиотека через pip install, fit/predict. Принципиальное отличие заключается в том, что модели обучаются не на ресурсах машины пользователя, а на отдельных серверах в кластере (т.е. fit отправляет запрос в backend, запускающий нужный DAG). Это позволяет запускать несколько экспериментов одновременно, и не блокирует работу пользователя, пока AutoML обучается. Подробнее про архитектуру наших сервисов можно почитать вот здесь: https://habr.com/ru/companies/alfa/articles/804085/
Ну и другие удобности по мелочам - есть абстракции задач и выборок - пользователю удобно трекать запуски и не надо перезагружать выборки каждый раз
Текст сплошная вода и по сто раз слово "фича" вообще непонятно что значащая в данном контексте. Что в итоге осмысленного и полезного для бизнеса так нигде и не прозвучало.
Основная мысль : специалист которому дали задачу выдать больше кредитов знает что можно например обзвонить миллион человек, но это деньги, а кому звонить из 100500 контактов не знает. Но есть история кому раньше звонили и кто после этого взял кредит. И этот специалист не может понять почему женщиены за 40 после звонка брали кредит чаще чем мужчины от 18 до 19. Запихивает это в черный ящик и тот с какой-то вероятностью 75% находит зависимости. По мне дак просто нужен опытный спец, который обозначит 3-5 параметров, за 15 сделает пару запросов в БД, подправит условия пару раз и за день сформирует список который отработает с ожиданиями 90-95 %. Но беда что такого спеца днем с огнем.
Основная мысль машинного обучения заключается в том, что ML получает намного более высокое качество за намного меньшее время, чем система вида "аналитик, строящий правила". При этом, конечно же, ценность аналитики никуда не уходит - они не должны бороться друг с другом, а наоборот дополнять, что и происходит на практике)
Кстати говоря, интерпретируемость это существенно более сложный вопрос, чем кажется на первый взгляд: правила от аналитика более интерпретируемы, чем какой-нибудь бустинговый ансамбль, но они имеют существенно более низкое качество - следовательно, хуже моделируют процесс, а значит и наша интерпретация меньше его объясняет. И что тогда лучше - модель, которая хуже понимает процесс, но более понятная для нас, или наоборот?
Будете делать его Open Source?
Честно говоря, в ближайшие планы это не входило)
В текущей реализации сделать наш инструмент open-source кажется невозможным, так как он сильно завязан на внутрибанковской инфраструктуре (не только на FeatureStore, откуда берутся данные, но и на AirFlow, Jenkins, Kubernetes и т.д. Подробно это описано в статье об ANNA).
Можно подумать о публикации именно модельной части (cкорее даже её отдельных частей): сетки перебора гиперпараметров, смешиватель скоров моделей и т.д. Но это так же требует детальной проработки.
Не увидел (пропустил) где эффект от внедрения автомл? Как изменится диаграмма распределения времени ДС по трем типам задач?
И как оценили это распределение на имеющихся графиках? Это экспертная оценка?
Инструментом начали пользоваться совсем недавно, поэтому о четких оценках сказать не могу, однако целимся в существенное снижение времени на построение типовой модели и ее time2market'а.
Уже во время использования увидели, что AutoML помогает не только при моделировании, но и на других этапах разработки - прокопать данные, проверить гипотезу, понять стоит ли вообще идти в эту задачу и др.
На графиках экспертные оценки, да)
Удивился, что сами кат. фичи энкодите)
Если не секрет, в каких задачах бустинги используются чаще, чем нейронки?
Самим энкодить это кстати очень полезно, ибо встроенные методы работы с ними прямо существенно все замедляют, особенно на больших данных.
К сожалению, не могу более четко ответить, но в целом, бустинговые модели всегда зависят от признаков - если по задаче можно построить сильные признаки, бустинги как правило являются основой решения. Если нет - подключаются уже нейронки, например на сырых последовательностях (https://habr.com/ru/companies/alfa/articles/680346/) или текстах (https://habr.com/ru/companies/alfa/articles/684774/)
AutoML на практике — как делать автоматизацию, а не её иллюзию