Найти тему
Dev.by

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

Оглавление

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

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

-2

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

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

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

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

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

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

-3

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

-4
-5
-6

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

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

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

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

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

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

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

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

-7

Какие этапы работы с нейронными сетями 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 до следующей беты, и там у него всё заработало. Когда пользователю настолько нужен твой продукт, что он не поленился и обновился до следующей беты, — наверное, твоя разработка имеет смысл.

-8

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

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

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

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

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

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

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

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

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

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

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

-9

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

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

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

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

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

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

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

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

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

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

«Потолок карьеры с PhD намного выше, чем без». Денис Ярец изучает AI в научной лаборатории Facebook. Говорим про ML, RL, мотивацию и перспективы
«Потолок карьеры с PhD намного выше, чем без». Денис Ярец изучает AI в научной лаборатории Facebook. Говорим про ML, RL, мотивацию и перспективы

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

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

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

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

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

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

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

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