И угадай что? Никакого финансирования не требовалось. Но ему действительно нужны были люди (и до сих пор)

Наконец-то прошел мой первый платеж от реального клиента. Product Pix заработал всего 65,36 доллара. Я чувствую, что наконец-то могу немного рассказать о своем пути к созданию SaaS (программного обеспечения как услуги). Я наконец могу сказать наверняка, что кто-то думает, что мой сайт приносит реальную пользу.

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

Это хороший знак, правда? Так элегантно. Вот я, консультант по машинному обучению, пишу код в свободное время, и я заставляю людей платить мне за его использование. Настоящая элегантность. Вот блок-схема:

Что ж, оказывается, в этой блок-схеме не хватает нескольких элементов.

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

Как это началось

Больше всего мне нравится создавать продукты для машинного обучения. Мне так нравится это делать, что это моя постоянная работа как фрилансер. Но, подумал я, разве не было бы круто создать продукт от А до Я, где машинное обучение является основным компонентом? Разве не было бы круто запустить веб-страницу, пригласить клиентов и немного заплатить за код, который я написал?

Поэтому я решил посмотреть, за что люди могут заплатить и что можно решить с помощью машинного обучения.

Поиск проблемы начинается

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

Я несколько раз возвращался к чертежной доске и, наконец, остановился на том, что мне понравилось. Похоже, люди, которые продают в Интернете, - это своего рода большое дело (Shopify, достигшая оценки в 20 миллиардов долларов, является примером). И всем этим продавцам приходится выполнять кропотливый ручной труд по удалению фона с фотографий товаров. Мало того, некоторые из них платят людям за это.

Машина может это сделать! Давайте создадим сервис, удаляющий фон изображения продукта!

Пусть начинается веселье

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

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

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

Хорошо Хорошо. Судите меня.

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

Я бы взял несколько таких фонов:

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

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

Как только я увидел, что модель начинает давать нормальные результаты, я потерял пару выходных, пытаясь ее улучшить. И улучшить это пришлось.

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

И да, я пробовал собирать в Интернете «фото продукта с фоном». Вам будет очень сложно получить реалистичные фотографии «до».

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

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

Создать сайт (с небольшой помощью моих друзей)

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

Я никогда раньше не писал ни строчки на Javascript или Ruby, но опять же - изучение новых навыков было здесь половиной цели. Так что я изменил свое мнение. Запустил веб-сайт, опубликовал об этом в нескольких группах Reddit. А также…

барабанная дробь…

Несколько человек зашли на сайт, я даже заплатил пару десятков долларов за рекламу в Google. Люди заходили, загружали фото и больше никогда не возвращались. В конце концов один из пользователей Reddit объяснил мне это с очень redditesque уровнем вежливости:

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

Будьте рядом с вашим продуктом

На это потребовалось время, но в конце концов мне пришлось смириться с реальностью. То, что почти, иногда работает, впечатляет для инженера, который видит потенциал, но неприемлемо для пользователя, которому нужно решить проблему. Момент времени, когда я перешел от 0 к 1 с точки зрения «есть ли пользователи, которые продолжают возвращаться», был, когда я объединился с первым графическим дизайнером. Теперь любой пользователь загружает поток в очередь, которую должны исправить графические дизайнеры. Если это не фотография продукта, они ее уронят. Если это так - дизайнеры удаляют фон, и пользователь получает отличный результат по почте.

Прелесть в том, что пользователь получает что-то ценное, а моя модель получает золото: настоящую фотографию продукта с реальным ярлыком того, как должна выглядеть очищенная фотография!

И заставьте своих пользователей извлекать из этого выгоду

Я изначально подумал: давайте покажем пользователю автоматический результат и позволим пользователю при желании ввести адрес электронной почты, если результат не идеален, с обещанием, что пользователь получит фиксированный вручную результат, как только это будет сделано. Конечно, если пользователь получит результат, который ее не устраивает, она наберет свой адрес электронной почты, чтобы получить идеальный результат? Верно?

Неправильный. 4,5% пользователей ввели свой адрес электронной почты.

Я говорил об этом с людьми, которые разбираются в маркетинге. И у них было очень проницательное предложение: скрыть автоматический результат. Хотите увидеть ваш автоматический результат? Введите адрес электронной почты, и вы его увидите. Результат? Пятикратное увеличение вероятности того, что пользователь отправит ей электронное письмо. И этот пользователь всегда будет получать в ответ сообщение электронной почты с идеальным результатом ручной работы с безупречным удалением фона.

Поговорите со своими пользователями

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

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

Почти все откликнулись. И они мне много чего рассказали:

  • Пользователи сказали мне, что им нужно более высокое разрешение (поэтому я его изменил)
  • Им нужна панель управления, чтобы видеть свои результаты в одном месте (поэтому я ее создал)
  • Они должны иметь возможность загружать фотографии в пакетном режиме (поэтому я добавил это)
  • Они должны иметь возможность загружать более 12 фотографий (сейчас их 500).
  • Они сказали мне, что не знают, как загружать фотографии из моего электронного письма, поскольку они были встроены в письмо (поэтому я добавил инструкции в электронное письмо)

Наконец, через несколько месяцев после жестокого сообщения Reddit, в котором я узнал, что мое приложение - дерьмо, я начал получать такие сообщения:

Если вы его построите, они придут (но только если вы упорствуете)

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

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

Вперед!

Так что мой первый платеж был не таким чистым «пользователь подходит к коду и платит за вывод кода». Это была комбинация автоматических результатов, человеческих обзоров и кода, который помогает людям предоставлять пользователям результаты с неизменным качеством. Далеко от моей users -> code -> money блок-схемы.

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

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

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