Всем привет! В прошлой статье я рассказывал про жизненный цикл машинного обучения, когда его внедрение происходит стихийно. Теперь поговорим про более осознанный подход, к которому я пришел через хаотичное внедрение и боль.
Ниже будет инструкция по поиску проекта для ML-инженера с амбициями PM или для PM с пониманием ограничений сферы ML. Хотя для тех, кто «просто спросить», тоже есть что почитать.
С чего начать
Давайте сначала поймем общее положение дел, относительно которых мы будем рассуждать. Для рождения ML-проекта нужна инициатива. Она может идти как «снизу», так и «сверху». От ее источника и энергии инициатора глобально зависит то, доживет ли проект до этапа внедрения.
С инициативой «сверху» кажется все относительно просто — есть биг босс, который по своим причинам двигает проект. Для рядового ML-инженера или PM это данность, с которой мы сталкиваемся каждый день. Наша задача здесь тоже относительно проста — помогать двигать проект в сторону успеха и желательно заранее подсвечивать подводные камни всем заинтересованным.
Когда же речь идет про инициативу «снизу», то ситуация становится немного интереснее. Интересна она тем, что в этом случае отсутствует административный ресурс, который позволяет снять некоторые барьеры для движения проекта. Вместо административного ресурса в ход идет «социальный капитал», который наработал инициатор. По сути, это ресурсы, которые инициатор может получить благодаря своим личным связям и отношениям в компании.
На старте хорошо бы оценить, хватит ли социального капитала для внедрения проекта. Если сомневаетесь, то все равно стоит попробовать, предварительно заручившись помощью более «влиятельных» коллег.
Однако одной инициативы для начала проекта мало, необходима еще бизнес-ценность проекта.
Как выявить бизнес-ценность идеи?
На поиск заинтересованных в проекте может уйти много ресурса, а может идея будет настолько крута, что вас будут просить сделать проект «еще вчера». Поиск такой идеи я начинаю с исследования текущих бизнес-процессов и определения тех мест, где машинное обучение может быть полезным. Конечно, мое представление о полезности ограничено глубиной понимания процесса и квалификацией ML-инженера, из-за этого первый этап воронки идей формируется максимально широко. В поиске помогает кофе-брейк: коллеги всегда готовы поделиться своей болью на проекте, предложить идеи или проблемы, которые могут быть решены с помощью машинного обучения.
Если в компании уже существуют внедренные проекты с ML под капотом, то выявить новые места можно через конкурентов или экспертов в домене. Часто хорошие идеи внутри доменной области можно найти на профессиональных конференциях или внутри комьюнити. Здесь важно понимать, что знание доменной области иногда создает «слепоту» к инновациям, из-за чего сбор идей лучше не ограничивать одной доменной областью. Например, если вы работаете в логистической компании, то ваши идеи могут вращаться вокруг логистики и есть риск упустить хорошую идею из маркетинга или клиентской поддержки.
Хорошо, допустим, мы собрали пул идей. Как их отранжировать по бизнес-ценности и выбрать лучшую?
В этом вопросе без внедрения метрики ценности не обойтись. Конечно, не все можно измерить, но мы будем стараться.
Я пришел к мысли, что метрику можно сформировать через 5-балльную шкалу. Если в компании существует пирамида метрик, с ее помощью вы можете многие улучшаемые показатели перевести в счастье юзера. В используемую шкалу входят следующие пункты:
улучшение эффективности бизнес-процесса: автоматизация дает рост производительности труда, что экономит человеческие ресурсы;
прямое уменьшение расходов или рост выручки: улучшили алгоритм расстановки товаров на полке — получили больше выручки;
улучшение качества продукта: более абстрактная метрика, чем деньги, но тоже поддается расчету. Например, можно использовать модель Кано (статья) для оценки удовлетворенности потребителя от использования продукта;
неэкономические выгоды: улучшение опыта клиентов или репутации компании;
альтернативные решения: существует ли более простой способ внедрить изменения и при этом не использовать ML?
В зависимости от стратегии компании каждому пункту можно придать разные веса в итоговой метрике счастья.
Многие забывают про оценку ценности уже внедренных проектов. Но ML невозможно забыть, проекты требуют внимания и актуализации. Поэтому оценка ценности должна выполняться регулярно — это позволяет определить, нужно ли дополнительно вложить ресурсы в разработку или заняться дообучением моделей. Существование альтернативных решений тоже можно легко упустить, ведь мы — ML-инженеры с молотком в руках, а значит, нам везде видятся гвозди.
Итак, у нас появился список проектов и даже оценка ценности каждого из них. Что делать дальше?
Определение готовности к внедрению проекта
В теории оценка бизнес-ценности выглядит логично — мы определили критерии, оценили их в метрике счастья или другом важном показателе, можем идти в светлое будущее!
На практике внедрять проект будет не только его инициатор, но и коллеги из других отделов со своим списком задач и набором KPI. Для коллег ценность проекта может быть не такой, какой ее видит инициатор. Чтобы оценить реальную возможность запустить проект, стоит посмотреть на эти факторы:
ресурсы: наличие финансовых, человеческих и технических ресурсов для реализации проекта;
данные: наличие достаточных и качественных данных для обучения моделей, наличие инструментов доставки данных до моделей;
стратегия: отвечает ли проект стратегическим целям, к которым движется компания;
культура: открытость компании и коллег к использованию новых технологий и внедрению изменений;
зрелость затронутых бизнес-процессов: нет смысла автоматизировать процессы, которые еще не готовы к автоматизации и интеграции с новыми инструментами.
Да, здесь тоже можно взять 5-балльную шкалу, думаю, идею вы уже уловили.
Два пункта из этого списка оценить сложнее других — это культура компании и зрелость процессов. В моем представлении это две стороны одной медали. Культура порождает процессы, процессы поддерживают культуру. В компаниях с позитивной и инновационной культурой сотрудники более открыты к новым технологиям и более склонны к сотрудничеству. Идеально, когда культура компании позволяет принимать риски новых технологий без последствий для карьеры. Если в компании налажены горизонтальные коммуникации и компания стремится к принятию решений на основе данных, то вы попали в компанию мечты и на этом моменте можно порадоваться.
Но если какого-то пункта в вашей компании нет — это не повод расстраиваться. Ведь только от вас зависит, какой будет культура в компании и атмосфера в коллективе.
А как же техническое задание?
У каждого проекта есть атрибуты готовности. Даже если проекта еще нет, некоторые артефакты к нему уже могут появиться. Особенно любят показывать roadmap, технические задания или другие визуализации плана по покорению мира. Малая часть из этих документов живут месте с проектом и остаются актуальными на всех его этапах.
Эта тема заслуживает отдельного обсуждения, а я поделюсь быстрым решением — Шаблоном документа для дизайна ML-систем от известной в наших кругах Ирины Голощаповой и ее коллег. Если ваш проект требует обстоятельной подготовки, этот шаблон поможет учесть множество нюансов. На мой взгляд в небольших проектах шаблон избыточен, но с ним лучше, чем без него.
Kickoff-встреча или как за 15 минут начать проект
Мы ведь помним, что любая инициатива ничего не дает без реальных действий? Видел случаи, когда компании начинали «пустые» проекты, но не могли продвинуть действительно крутые инициативы. Во многом судьба проекта решалась на установочной встрече, к которой почему-то не готовились инициаторы. Возможно, из-за убежденности, что ценность проекта очевидна всем вокруг. Многие очевидные для инициаторов вещи не будут очевидны их коллегам. Поэтому так важно привлекать к работе коллег, которые в будущем могут быть затронуты проектом. Ведь такая подготовка нужна не инициатору проекта, а коллегам для осознания той самой бизнес-ценности.
Алгоритм запуска проекта следующий:
Оцениваем затраты своего «социального капитала».
Выявляем бизнес-ценность проекта, используя важную вам метрику. Можно воспользоваться метрикой, предложенной в статье.
Определяем степень готовности проекта к внедрению и возможно заполняем ML System Design Doc.
15-минутная встреча с презентацией предложений на основе предыдущих пунктов.
По такому алгоритму у меня запущено 3 последних проекта из 3 предложенных.
Все это нужно, чтобы проект получил приоритет и попробовал принести реальную бизнес-пользу. Если вы прошли все этапы, то в конце с большой вероятностью услышите фразу: «Мы готовы внедрять, погнали!».
Вам предстоит еще много подготовки, но глобально идею вы «продали», поздравляю!
В следующей статье расскажу, как довести проект до реальной бизнес-пользы, с какими демонами можно столкнуться и что делать с проектами-зомби.
P.S. Больше размышлений о буднях ML-инженера в тг-канале «Заметки дата-сатаниста»: https://t.me/my_datascience