Machine learning experience

В эту пятницу (25.06.2021) я был на тюменском митапе, посвященный машинному обучению. Если коротко машинное обучение — это просто способ решать задачи, которые не получаеться решить формулами.
Докладов было три.

«Быстрое развертывание machine learning» Автор Юсупов Фаниль.

Автор поделился опытом, как за 4 дня сделать готовый сервис с интерфейсом и прогнозированием цены нефти на основе machine learning на примере победного участия в хакатоне. Все кинулись прогнозировать цену на нефть на основе тех. анализа, а команда автора пошла другим путём, прогнозирование при помощи новостей. Других факторов, конечно было много, но новости имели максимальный вес в модели.
Я думал, как же новости можно превратить в структуру понятную для компьютера. Оказалось всё банально, заголовок новости разбивался на слова и каждому корню слова давалось место в хеш-таблице и вот и смотрелось влияние номера из хеш-таблицы на цену нефти.
При чём его команда убила целые сутки, чтобы понять, что заголовки российских новостей на цену на нефть не влияют никак. 🙂
А вот западные оказывают и даже очень хорошо. Но влияние у него получилось бинарное, цена или растёт или падает и не важно на 100 пунктов и на 0,01 пункта.
Если чисто субъективно, это пока игрушка, скачиваются новости, скармливаются нейронной сети, и она выдаёт прогноз – вверх или вниз.
Для трейдера – это пока не интересно, ему бы знать, а на сколько вверх, или на сколько вниз, а как долго эта тенденция продолжиться и т.д.
Докладчик про это прекрасно знает, но если делать коммерческий продукт, нужен инвестор и под его запросы будет создаваться команда, закупаться оборудование и т.д. Просто делать продукт и непонятно кто его купит неэффективно.
Но эффективность полученной модели составила 66,67%, что робота, который перестал гадать и начал угадывать, весьма неплохо.

Machine learning experience

«Опыт доведения ASR до прода» Автор. Глазков Максим

Доклад о подводных камнях при выведении своего распознавания речи в прод.
У автора стояла задача реализовать вопросно-ответную систему по обращениям граждан во время появления COVID. Т.е. идёт серия телефонных звонков и задаются вопросы о COVID.
Задача перевести голос в текст оказывается весьма и весьма трудоёмкая. И микрофон у сотового телефона не самый лучший, и постоянные шумы от транспорта и включенное радио. Даже просто очистить аудиофайл от «мусора» задача весьма нетривиальная.
Кроме того, обычные люди далеко не профессиональные дикторы и кто что сказал, не то, что робот не поймёт, а даже другой человек.

Machine learning experience


У всякой проблемы всегда есть решение – простое, удобное и, конечно, ошибочное. А может взять уже готовую нейронку? Всё хорошо, но есть маленький нюанс, существующие модели нейронный сетей для распознавания голоса ориентированы на бытовую лексику, и слова «COVID» они не знают, а раз не знают, значит это шум.
И дообучение этих нейронных сетей процесс далеко не быстрый, можно учить пару недель, а полученная модель выдаёт низкий процент распознавания. Гарантированный геморрой при негарантированном результате.
Но при помощи доброго «матерного» слова и напильника, задачу всё-таки решили 🙂
Мне доклад понравился, ребята довели до результата, с тем, что есть, не смотря на многочисленные проблемы.

Machine learning experience

«Машинное обучение — это просто! Нужно только…» Автор Марюфич Михаил, старший разработчик по машинному обучению, Одноклассники.


Автор рассказывал про организацию внедрения машинного обучения в продакшен, на примере системы рекомендаций в Одноклассниках. Например, пользователю нейронная сеть рекомендует группы для подписки на основе его интересов. Но пользователей много, а групп ещё больше, а мест для рекомендаций сильно фиксировано.
Но проблема в другом, хорошо, если бы была одна нейронная сеть, а что делать если их сотни. А если надо хотя бы 20-30 нейронных сетей переобучить на новых данных, а затем проверить эффективность? А что делать, если программист, который этим занимался заболел\в отпуске? Как бы сделать так, чтобы этим не программист, а DevOps занимался? Частая ситуация, нейронка одновременно сломалась со всех сторон, и если бы фарш прокрутить назад, т.е. откатить на прошлую версию и где её взять?

Machine learning experience

В общем, в однокласниках реализовали CI\CD только для нейронных сетей, на базе Apache Airflow и ml-flow. Т.е. после того, как программист, создал нейронную сеть, обучил, протестировал, он пишет скрипты для Airflow, чтобы воспроизвести весь свой процесс в автоматическом режиме. Да, время разработки удлиняется, но не существенно.
И ещё далеко не всё автоматизировано. Но эффект уже есть, и программисты стали больше времени заниматься программированием, а не сборкой старых проектов под новые данные.

Machine learning experience

Мне митап понравился, давно из-за COVID оффлайн мероприятий для программистов не было, а это как глоток свежего воздуха.

Вот видеоверсия митапа