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

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

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

С какими проблемами сталкиваются компании, занимающиеся машинным обучением?

  1. Архитектура — для этого обычно требуется докторская степень или ее эквивалент, если вы начинаете архитектуру модели с нуля, но с каждым днем ​​все меньше и меньше смысла начинать с нуля.
  2. Обучение — здесь две проблемы: время и стоимость. У нас есть массивный сервер графического процессора с 8 Tesla P100 для обучения, и наше время обучения все еще довольно медленное, я не могу себе представить, что мне придется арендовать серверы у AWS, стоимость будет парализующей.
  3. Точность — Точность — это многоголовый зверь. В нашем случае производительность одной камеры может увеличиться, в то время как производительность другой камеры может измениться от приемлемой до неудовлетворительной. Лезвие этой бритвы — это постоянная прогулка по догадкам и проверкам.
  4. Управление моделями — За последние 3 года мы обучили (включая переобучение) около 100 моделей. Какая версия находится в производстве, какая версия работала лучше в каких ситуациях. Отслеживание этого — отстой и требует создания какой-то платформы только для того, чтобы сохранить ваше здравомыслие.
  5. Развертывание. В конечном счете, было бы замечательно развернуть новую модель в производстве на нескольких избранных устройствах, прежде чем переходить к новой сборке. Даже при тщательном контроле качества ничто не будет лучше, чем настоящие камеры ваших клиентов.

Каковы некоторые уникальные проблемы логического вывода на основе границ?

  1. Сеть — это несколько специфично для нашего приложения, но иногда сети других людей не работают или они запускают службу через точку доступа 3G. Это создает много проблем при диагностике проблемы. Для нас это проявляется как «Я не вижу свою камеру», чья основная проблема может быть буквально где угодно в нашем стеке, но во многих случаях… это просто сеть.
  2. Полоса пропускания. Вы не можете транслировать камеры в облако, получать аналитику и принимать меры на основе этой аналитики в режиме реального времени без непомерно высоких затрат. Принимая во внимание пропускную способность, возникают новые проблемы, с которыми не часто приходится сталкиваться при выполнении облачных проектов.
  3. Вычислительные ресурсы. Иногда вы можете потребовать от клиента наличие графического процессора, а иногда — более дешевое решение. В любом случае, как правило, это никогда не бывает так, как вам хотелось бы. Сбалансировать точность, время вывода и общую емкость каждого пограничного устройства (в нашем случае количество камер, которые можно запустить на пограничном узле) — задача непростая. Много времени должно быть потрачено на управление ожиданиями, потому что те, кто не знаком с машинным обучением, часто ожидают «отчета меньшинства», когда на самом деле уровень техники находится только на уровне «горячего пуха».
  4. Безопасность. Черт возьми, как трудно защитить встроенные устройства, которые физически доступны. Вот почему существуют целые компании, такие как Wind River. Хотите безопасную встроенную ОС с вашим приложением? 100к для начала.

Так как же должно выглядеть решение Святого Грааля?

  1. Вытащите произвольную модель с github.
  2. Переобучите его с моими данными, или купите данные, которые мне нужны, или загрузите данные, которые мне нужно аннотировать, и они будут немедленно аннотированы.
  3. Измерьте его производительность для моего варианта использования.
  4. Сохраните модель с MAP и другими ключевыми показателями.
  5. Автоматически оптимизировать себя для вывода на основе моей цели развертывания.
  6. Разверните его на встроенном устройстве.
  7. Автоматически сгенерируйте простой API для логического вывода.
  8. Удаленно контролируйте работоспособность узла и производительность модели.

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

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

ИОТ — проверить. ИИ — Проверить… Блокчейн?

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

  1. Продавайте свои данные. Используйте блокчейн для сохранения ваших данных и генерируйте токены, когда вы разрешаете другим использовать ваши данные.
  2. Сохраняйте свои данные неизменными, распределенными и конфиденциальными. Пограничные узлы могут подписывать транзакцию и шифровать данные, а расшифровать данные могут только главные ключи (возможно, даже узел не может расшифровать данные).
  3. Обучите свою собственную модель и дайте ее другим людям арендовать. Взимать плату за использование, выплачиваемую в токенах в зависимости от использования.
  4. Сдавайте в аренду место на графическом процессоре для обучения, когда вы его не используете.
  5. Блокчейн включил федеративное обучение.

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

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