Код
#статьи

Что такое Machine Learning и стоит ли его изучать

Зачем бизнесу нейросети и можно ли освоить ML без математической подготовки.

Иллюстрация: Dalee / Openai / Tong / Rawpixel / Annie для Skillbox Media

Александр Белоусов


Разработчик приложений, использующих ML. IT‑консультант, основатель и СTO в ML‑проекте Giftbox. Создал русскоязычную версию Wordle.


Ссылки


Заниматься машинным обучением я начал ещё в университете и даже использовал его в дипломном проекте. Позже работал в аутсорс-агентстве, которое специализировалось на заказной разработке нейросетей, что помогло узнать массу нюансов. Например, даже развернуть модель в продакшен — непростая задача.

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

Разберёмся с терминами

Машинное обучение — часть Computer Science, объекты изучения и разработки в которой — алгоритмы, способные обучаться за счёт анализа данных. Эти алгоритмы применяют для решения задач довольно широкого спектра: классификации, прогнозирования, регрессии и так далее. А самая продвинутая методика на сегодняшний день — использование нейросетей, поэтому под ML чаще всего подразумевают именно работу с нейросетями.

Сейчас использование нейросетей стало повсеместным, и встретить их можно даже в популярных текстовых и табличных редакторах. Простейший пример — парсинг и выгрузка с сайтов в Google-таблицы картинок и другого контента. Можно даже не писать код: достаточно просто ввести в ячейки то, что вам нужно (название, цену товара в магазине и так далее), — и все данные подтянутся сами, как на видео:

Чуть более навороченный кейс, который широко развирусился, — нейросеть DALL‑E от OpenAI и её опенсорс-аналог DALL‑E mini. Принцип их работы такой: пользователь вводит текст, а нейросеть генерирует по этому запросу изображение:

Примеры изображений по запросу «cat ice cream»
Скриншот: Craiyon 

У этих сервисов большой потенциал: возможно, в будущем они сильно упростят работу с Photoshop и прочими графическими редакторами, позволят заметно ускорить работу дизайнеров, иллюстраторов, да и обычных пользователей. Больше не нужно будет искать исполнителя, согласовывать с ним техзадание и долго спорить с ним в духе: «Я вам не это заказывал! — Я художник, я так вижу!» Сравнительно несложные картинки и коллажи можно теперь сделать самостоятельно за несколько минут.

Точно так же нейросети могут стать мощным инструментом для создания собственных продуктов, выполнения ежедневных рутинных операций, облегчения жизни людей. Например, недавно я работал над заказом одной крупной зарубежной компании. В их CRM-систему поступали тысячи обращений разной тематики в день. Нужно было разделить их по категориям, не привлекая менеджеров, — то есть сделать что-то, похожее на классификатор «Яндекс.Новостей». И таких задач с каждым днём всё больше.

Бизнес ловит нейросетью

Думаю, со временем создание нейросетей станет гораздо проще и даже человек без навыков программирования сможет дообучать готовые нейросети под свои задачи. Если провести аналогию с сайтами, то раньше сайт мог сделать только программист. А сейчас есть большое количество no-code-конструкторов сайтов, с помощью которых сайт может сделать даже человек без навыков программирования.

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

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

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

Важный нюанс заключается в том, что нейросети обучаются на больших коллекциях данных, а их нужно где-то взять. Поэтому основная часть работы специалистов по ML — это сбор данных, очистка их от ненужного, не влияющего ни на что «белого шума» и правильная разметка. Процесс занимает много времени.

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

В США и Европе есть большие стартапы, которые предоставляют бизнесу инструменты для разметки данных. В основном их клиенты — крупные компании, которые уже собрали большое количество данных и как-то с ними взаимодействуют: банки, телеком-операторы, медицинские сети и так далее.

Чтобы разметить данные, сейчас уже не нужно самостоятельно писать ПО для разметки или искать людей на подобную работу — можно использовать «Яндекс.Толоку» или другие платформы.

Как освоить машинное обучение

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

Начать стоит с простых туториалов. Если человек владеет основами программирования, он сможет создать свою нейросеть. Раньше их приходилось писать самому с нуля, а сейчас есть готовые фреймворки: TensorFlow от Google или Hydra от «Фейсбука»*. Они позволяют быстрее обучать нейросети.

Проблема в том, где взять данные и мощности, чтобы их обучить. Например, сделать такие мощные нейросети, как GPT-3 или mGPT от «Сбера», на локальном компьютере сложно. Впрочем, есть сервис Google Colab, который бесплатно предоставляет виртуальную машину для обучения нейросетей в исследовательских целях. Многие используют её для быстрого тестирования, обучения и демонстрации возможностей нейросети. В интернете довольно много готовых решений, которые тоже можно запускать, тестировать и изменять через Google Colab.

Сейчас основной язык для машинного обучения — Python. Большинство курсов и книг по ML, а также основные фреймворки заточены под него. Но тот же TensorFlow от Google можно запускать даже в браузере, то есть использовать JavaScript.

Фундаментальные знания лучше получить в приличном университете. Скажем, топовые компании вроде «Сбера» или «Яндекса» на проекты с нейросетями и машинным обучением ищут стажёров в рейтинговых технических вузах — МФТИ, Бауманке и так далее. Если вы там отучились, это станет преимуществом. Вам будет легче «попасть на радары» и получить достойные предложения ещё во время учёбы.

Впрочем, если профильного высшего образования нет, выучиться можно и самостоятельно. Сейчас для этого существует довольно много бесплатных ресурсов — например, курсы на Coursera, Stepik и других платформах.

Например, могу порекомендовать курс «Специализация. Глубокое обучение». Его авторы — ведущие учёные в области ML.

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

А вот без чего точно не получится вкатиться в ML, так это без основ программирования. Работа с нейросетями скорее подойдёт уверенным джунам, которым не нужно объяснять азы программирования и Computer Science.

Тем, кто решился погрузиться в машинное обучение, рекомендую читать и смотреть такие ресурсы:

  • Telegram-канал «Мишин Лернинг» — там делятся новостями, открытиями в ML, готовыми моделями;
  • Telegram-канал Machine Learning in Art — здесь собраны колабы и освещаются значимые события из мира машинного обучения в изобразительном искусстве;
  • Telegram-канал Дениса Ширяева, в котором он делится новостями из мира ML;
  • ветка о машинном обучении на Reddit;
  • новости на Y Combinator.

Как я запустил собственный ML-стартап

Сейчас я развиваю собственные проекты, связанные с машинным обучением и не только, — среди них русскоязычная версия игры Wordle, приложение для подбора подарков на основе интересов из «ВКонтакте» с помощью нейросети и другие.

Так выглядят рекомендации подарков
Скриншот: Giftbox 

Идея создать Giftbox пришла ещё несколько лет назад. Дело в том, что в декабре и январе у многих моих близких дни рождения. Выбор подарков для них отнимал много времени. Я человек ленивый, поэтому решил сделать приложение, которое автоматически подбирает идеи. Занимался им около месяца по вечерам после работы.

Из ML-фреймворков использовал TensorFlow, дополнительно разобрался с MLflow — это такой опенсорс-инструмент для запуска ML-моделей в продакшен.

Я определил около 80 интересов, сделал список групп и подписок и собрал нейросеть через VK API по ключевым словам, которые соответствуют каждому интересу. Потом с помощью фрилансеров распределил группы по темам (разметил данные). Например, ключевое слово «дизайн» может относиться к веб-дизайну, а может к дизайну интерьеров — это разные темы. Также я поручил фрилансерам проверить работу друг друга.

Всего было обработано около 40 тысяч источников.

Чтобы людям было проще, я сразу выгрузил все нужные данные в CSV. Это позволило делать всё прямо в «Google Таблицах», что существенно ускорило процесс. Часть данных использовалась для обучения классификационной нейросети, а часть — для оценки качества обучения. Приложение Giftbox работает в партнёрстве с онлайн-магазинами. Нейросеть подбирает подарок исходя из действий пользователя на его странице и его интересов.

Любой из выбранных подарков можно купить на сайте партнёра. Сервис входит в сеть партнёрских приложений социальной сети «ВКонтакте». Его использует 150 тысяч покупателей ежемесячно.

Стартапов на основе ИИ в России будет меньше

Мои проекты позволяли мне не работать по найму. Вместо этого я развиваю свои сервисы, занимаюсь поддержкой пользователей и маркетингом. По моим ощущениям, в течение следующего года число стартапов с ML в России станет меньше. Крупные компании от этого выиграют и смогут занять нишу, которую раньше занимали западные конкуренты. А вот маленьким проектам найти финансирование станет гораздо сложнее. Сейчас многие венчурные фонды перестали рассматривать инвестиции в Россию, что негативно скажется на появлении новых инновационных продуктов.


* Решением суда запрещена «деятельность компании Meta Platforms Inc. по реализации продуктов — социальных сетей Facebook и Instagram на территории Российской Федерации по основаниям осуществления экстремистской деятельности».


Изучайте IT на практике — бесплатно

Курсы за 2990 0 р.

Я не знаю, с чего начать
Научитесь: Профессия Python-разработчик Узнать больше
Понравилась статья?
Да

Пользуясь нашим сайтом, вы соглашаетесь с тем, что мы используем cookies 🍪

Ссылка скопирована