Найти в Дзене
machine learning engineer

Подводные камни в управлении Machine Learning проектом

Тип статьи: [Опыт] (смотрите Карту блога) Пару недель назад начал работать над первым коммерческим ml-проектом, который мне предстоит реализовать целиком в одиночку. До этого у меня были проекты, но играл я на них далеко не первые роли. Сейчас же на мне весь процесс от клиентского "хотим нейросеть", до боевого приложения, оптимизирующего конкретный бизнес-процесс. На пути уже успел встретить первые подводные камни. Сейчас хочу поделиться с вами опытом и рассказать о вещах, которые для меня стали неожиданностью. Хотим нейросеть! Очень многие сейчас слышали хоть что-нибудь об искусственном интеллекте и достижениях нейронных сетей. Некоторые хотят использовать в бизнесе нейросети уже только потому, что это популярно. Вот вы решили какую-нибудь небольшую задачу по анализу текста и уже смело можете заявлять всем подряд, что в вашем бизнесе используются самые современные технологии искусственного интеллекта. При этом практически никто не понимает сильных и слабых сторон нейронных сетей.
Оглавление

Тип статьи: [Опыт] (смотрите Карту блога)

Пару недель назад начал работать над первым коммерческим ml-проектом, который мне предстоит реализовать целиком в одиночку. До этого у меня были проекты, но играл я на них далеко не первые роли. Сейчас же на мне весь процесс от клиентского "хотим нейросеть", до боевого приложения, оптимизирующего конкретный бизнес-процесс.

На пути уже успел встретить первые подводные камни. Сейчас хочу поделиться с вами опытом и рассказать о вещах, которые для меня стали неожиданностью.

Хотим нейросеть!

Очень многие сейчас слышали хоть что-нибудь об искусственном интеллекте и достижениях нейронных сетей. Некоторые хотят использовать в бизнесе нейросети уже только потому, что это популярно. Вот вы решили какую-нибудь небольшую задачу по анализу текста и уже смело можете заявлять всем подряд, что в вашем бизнесе используются самые современные технологии искусственного интеллекта.

При этом практически никто не понимает сильных и слабых сторон нейронных сетей. Ведь из-за высокого ресурсопотребления они далеко не всегда являются оптимальной моделью.

Достаточно часто алгоритмы вроде k-ближайших соседей или байесовского классификатора показывают более высокие показатели качества в решении бизнес-задач, чем нейронные сети. Это при том, что они гораздо более легковесные.

Если клиент говорит вам: "Нам нужна нейросеть для решения такой-то задачи", то скорее всего он просто не знает, какими именно инструментами эту задачу лучше решать. Но ему кажется, что тут нужны какие-то сложные алгоритмы и единственное, что приходит ему на ум - это нейронная сеть.

Так что вы можете решить задачу и через какую-то более лайтовую модель.

Звучит очевидно, но на деле после такого запроса от клиента вы можете потратить время на перебор различных архитектур нейронных сетей прежде чем поймете, что задачу можно было решить гораздо проще.

Точность модели в предварительном эксперименте 99%

Даже если на предварительных экспериментах или при испытании прототипа вы получили высокую точность, это не повод сразу говорить клиенту непосредственные значения метрик, т. к. все, что вы скажете, может быть использовано против вас :)

Если вы получили высокие значения оценок качества модели, то это повод сказать клиенту, что задача однозначно решаема, но заранее радовать его цифрами, которые могут оказаться не такими хорошими на реальных данных, не стоит. Либо же можно назвать метрики, но с обязательной оговоркой, что вы не можете гарантировать, что в боевых условиях качество останется таким же. Оно может как улучшиться, так и ухудшится.

Как вариант, вы можете фиксировать разную оплату в контракте для разного финального качества вашей модели.

Вообще говоря, люди обычно доверяют конкретным примерам больше, чем абстрактным цифрам. Небольшая демонстрация работы вашей модели придаст клиенту больше уверенности, чем заявления о 99% точности.

С серверами проблем не будет

В какой-то момент начинал замечать, что работа модели часто упирается в её размеры. Например, когда тебе нужно сделать классификатор на 5 миллионов классов, даже самые простые модели могут оказаться слишком ресурсозатратными. Тогда естественным образом встает вопрос спецификации сервера, на что клиент может отмахнуться чем-то вроде: "С серверами проблем не будет - выберем что-нибудь на облачных сервисах".

Проблема в том, что он может совсем не представлять масштабов модели. Например, датасет будет весить 2 терабайта, а матрица весов обученной модели еще 500гб. Чтобы юзать такую модель, вам нужно 68-128 гб оперативной памяти. Снимать такую машину может стоить клиенту от нескольких тысяч, до нескольких десятков тысяч долларов в месяц. И вот тут уже не многие согласятся оплачивать такие сервера.

Спасибо за прочтение статьи. Если понравилось - ставьте лайк и подписывайтесь на канал.

Обо мне.