«Хотим демократизировать вход в машинное обучение». Два разработчика делают сервис, который помогает тренировать нейросети «без кода»

Cтартап
10 мая 2019, 08:07

iOS-разработчики Александр Карцев и Алексей Коротков разработали IDE, в которой любой разработчик — и не только разработчик — может тренировать нейронную сеть «без кода». Стартаперы хотят демократизировать вход в машинное обучение и сделать эту область доступной для многих. Первую версию Make ML для iOS-приложений уже выпустили на Product Hunt.

Ребята, расскажите, как вас, двух iOS-разработчиков, занесло в стартап?

Алексей: На самом деле, до Make ML я участвовал как минимум в трёх стартапах, но их сложно назвать успешными. Социальная сеть HERO, в которой с помощью «лайка» можно поддержать различные проекты, отправив им криптовалютное вознаграждение, не взлетела.

По теме
Все материалы по теме

Потом был AR-стартап, который из фото делал 3D-модель и прикреплял лицо к какому-то мультяшному персонажу — например, мексиканскому музыканту. Я сделал свою часть работы, но чуваки куда-то пропали, и в итоге всё схлопнулось. И тогда мы с коллегой стартовали приложение для проектирования товаров в дополненной реальности ARcraft.me. Технически сделали всё красиво, но маркетинг подкачал, не удалось найти правильную аудиторию: сперва ориентировались на звёзд, потом на обычных пользователей. Приложение доступно в AppStore, но я в него больше не верю.  

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

Алексей: Всё получилось спонтанно. Когда мы закончили с разработкой ARcraft.me, и начался этап тестирования идей маркетинга, у разработчиков появилось немного свободного времени. И в этот момент мой знакомый попросил меня сделать приложение, которое будет «замазывать» женские соски на видео. Для этого нужно было натренировать нейронную сеть, определяющую нужную часть тела. Поиск данных и их разметка не были самыми затратными по времени этапами работы. А вот подготовка, которая включает в себя поиск инструмента для разметки, фреймворка, в котором ты будешь тренировать сеть, настройка python-зависимостей — всё это заняло примерно две недели. И я решил, что такая задача может решаться гораздо быстрее, нет причин, по которым она должна так затягиваться.

В чём основная идея Make ML?

Алексей: Мы хотим демократизировать вход в область машинного обучения, сделать так, чтобы как можно больше людей могло без кода натренировать нейронную сеть и интегрировать ML-модель со своим приложением. Пока я решал задачу моего знакомого, мне пришлось изучать различные туториалы, как натренировать нейронную сеть, и многие из них были уже не актуальны буквально через пару месяцев. Я начинал по ним работать, а у меня всё крэшилось, и я не понимал, в чём дело. Так и родилась идея сделать приложение, которое будет брать на себя всю подготовительную часть.

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

Расскажите подробнее о функционале и том, как работает Make ML.

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

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

Конкуренты у Make ML есть?   

Алексей: Да, есть приложения, которые позволяют без кода натренировать нейронную суть, но там совсем black box. Они не позволяют тебе шагать дальше, понимать больше о том, что ты делаешь. У нас же гибкая IDE.

Александр: Когда Data Scientist работает в нашей среде разработки, он может выделять параметры, менять переменные — всё это даёт ему свободу.

В чём добавленная стоимость вашей гибкой среды разработки?

Алексей: Заходя на Github, ты видишь огромное количество алгоритмов для тренировки нейронных сетей, но понятия не имеешь, что с этим всем делать. У нас всё это собрано воедино. Плюс на рынке не так уж много тулзов, которые делают разметку. Например, под формат, который был нужен нам, ничего не подходило, и я нашёл какой-то Python-скрипт, через который перегнал всё, что разметил, в нужный формат. В общем, геморрой получился. Если же эти алгоритмы будут расшарены с использованием предложенного нами формата, это будет работать по принципу «скачал и запустил». Тебе не нужно мучиться с долгой настройкой — у нас встроенная разметка. Make ML самостоятельно определяет тип объекта и проводит его границы.

Какие этапы работы с нейронными сетями Make ML не автоматизирует?

Алексей: Основное, что Data Scientist’ам нужно сделать самим — это найти большое количество данных. По времени это очень затратно. Это может быть, например, 50 000 размеченных разноплановых фотографий с разным освещением, ракурсом и пр. Также никто, кроме тебя, не имплементирует полученную ML модель в мобильное или десктопное приложение.  

Был ли у вас опыт работы с нейронными сетями до Make ML? Как глубоко пришлось погружаться в доменную область?

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

Алексей: Погружаться нужно было скорее не в само ML, а в программерские вещи, например, как настроить python-зависимости, как из приложения запускать python-алгоритмы, как вытаскивать данные, работать с ресурсами и пр. Сейчас перед нами стоит ещё одна задача — как запускать тренировки на сервере. Пытаемся её решить.

Каков порог входа в ваше приложение?

Александр: Никакими специальными навыками в нейронных сетях обладать не нужно. Даже журналист может натренировать ML-модель. Но если ты, например, iOS-разработчик, тебе нужно понимать, что с этим делать дальше, — знать, как встроить модель в приложение, как её запустить и пр.

Насколько точна будет модель, сделанная виртуальным Data Scientist’ом?

Александр: Всё зависит от данных, их качества и количества. Также важно, какой алгоритм будет использовать разработчик. Мы не претендуем на уровень экспертов в Data Science и не предоставляем алгоритмы, которые натренируют самую лучшую в мире нейросеть. У нас задача в другом — позволить людям из других областей попробовать, что это такое, и с помощью нашего инструмента быстро запустить процесс тренировки модели. 

Сколько времени вам потребовалось на разработку Make ML?

Александр: Наученные опытом предыдущих проектов, когда мы долго делали приложения, вылизывали дизайн, а потом оказывалось, что это никому не нужно, в этот раз мы решили действовать иначе. Стараемся делать сложный продукт максимально быстро, показываем его аудитории, собираем фидбэк, дорабатываем, выкатываем новую версию. Активно кодить мы начали в январе 2019 года. Первая версия Make ML появилась на Product Hunt в марте, и была только для  iOS-разработчиков, которые могли делать модели для iPhone. После релиза многие нам писали: «Ребята, нужно больше моделей!». Сейчас работаем над улучшением и расширением пула возможностей.

Что пользователи писали вам после Product Hunt?

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

Какая у вас бизнес-модель?

Александр: Мы будем брать деньги за тренировку нейронных сетей на нашем облачном сервисе, ценник будет примерно как на Amazon. Скорее всего это будет почасовая или поминутная оплата.

Обычную продажу и подписку тоже рассматриваем, но первое нам не совсем подходит. Кто-то, может быть, не хочет платить сразу большую сумму, потому что решил просто посмотреть, что это такое. Ему проще купить несколько часов, натренировать модель, скажем, на определение сосков. А потом он вообще может понять, что ему это неинтересно, и сказать: «Всё, соски больше видеть не хочу». А кто-то, наоборот, будет постоянно использовать наше приложение. В общем, если сделаем подписку, то скорее всего на количество часов тренировки в облаке.

Сколько людей сейчас в команде и какой формат занятости?

Александр: Мы вдвоём работаем над проектом фултайм. Возможно, в будущем нам понадобится штатный Data Scientist, который сделает функционал анализа датасета. Это позволит обычному пользователю лучше понимать, как улучшить нейронную сеть.

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

Александр: Если ты сам не готов рискнуть своей работой, зарплатой, то почему инвестор должен это делать?

За что тогда живёте сейчас?

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

Алексей: Ранний найм команды — это причина № 1, которая убивает стартапы. Когда над проектом работают только фаундеры, их продуктивность и вовлечённость очень высока, а burn rate маленький. А когда нанимаешь персонал, тебе нужно отвлекаться на объяснения, что мы делаем, зачем и прочее. Ещё один плюс — мы не тратим деньги на оплату труда и можем в таком состоянии пребывать достаточно долго. Мы можем протестировать одну идею, другую, третью. А с командой, если что-то не зашло, вы уходите в убыток, люди разочаровываются, ты палишь деньги, и тебе может их просто не хватить, чтобы добраться до следующего уровня.

В перспективе нам нужно будет кастомизировать приложение под Ubuntu и Windows, сейчас у нас только iOS. Поэтому, возможно, понадобится человек, который поможет с серверной частью. Но работать с наймом мы будем очень аккуратно.

Справляетесь вдвоём?

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

Смотрите в сторону акселераторов?

Александр: Да, мы подались в YC и 500 Startups. В 500 Startups прошли до последнего интервью, но не попали, потому что у нас нет ревенью. 500 Startups в большей степени специализируется на росте пользователей, маркетинге.

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

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

Ваши ближайшие цели и задачи.

Алексей: У нас есть идеи, что можно делать с проектом дальше. Например, мы хотим добавить анализатор датасета, собственно, работа Data Scientist’а в этом и состоит. Если в Make ML будет анализатор, то, возможно, для некоторых команд этого может вполне хватить, чтобы вовсе не нанимать специального человека для этой работы. Но, если после релиза пользователи попросят сделать что-то другое, мы переключимся на то, что им нужно.


«Стоит как можно раньше понять, будет ли пользоваться спросом проект»

По просьбе dev.by, сервис протестировал инженер Денис Ярец. Он работает в научной лаборатории FAIR в Facebook и занимается исследованиями машинного обучения с подкреплением в Нью-Йоркском университете

По теме
Все материалы по теме
Какова практическая значимость проекта?

Ребята пытаются разработать программу, которая позволит людям с нулевым знанием ML тренировать заготовленные модели. Также они надеются, что это поможет их пользователям легко обмениваться моделями между Data Scientists и людьми, которые будут их тренировать (без знания ML).

Правильно ли стартап выбрал проблему, которую решает? Может, этот инструмент вовсе никому не нужен?

У программы очень узкая специализация. Но, как ребята заметили, они ориентируются на людей, у которых опыт в машинном обучении минимальный или вообще отсутствует. Я вижу это приложение полезным для быстрого прототипирования какой-то идеи, но затрудняюсь представить его пользу для команды, у которой есть хотя бы есть один Data Scientist / ML Engineer. Существуют стандартные решения, такие как jupyter lab или же google colab, которые позволяют легко обмениваться моделями. Главная проблема, которую я вижу: для разработки чуть более серьёзного решения с использованием ML потенциальным пользователям будет крайне неудобно использовать настолько высокоуровневый интерфейс, из-за того, что у каждого приложения будут свои особенности. В итоге люди просто будут делать надстройки над более общими библиотеками для ML (tensorflow, pytorch, core ml).

Насколько хорошо реализована идея?

Прототип, который мне показали ребята, ещё сырой, и в данный момент может только установить необходимые пакеты для ML, тренировку одной конкретной модели для object detection и лэйблирования картинок.

Какие советы дашь ребятам?

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

подписка на главные новости 
недели != спам
# ит-новости
# анонсы событий
# вакансии
Обсуждение