Представляем концентратор NatML

Теперь с более чем 100 000 прогнозов на базе NatML

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

Во всех этих вариантах использования мы столкнулись с одним и тем же набором фундаментальных проблем: обнаружение модели; доставка модели; и оптимизация модели. И теперь, после нескольких недель взлома, я рад объявить о нашей попытке решить эти проблемы с помощью одного простого и комплексного решения: NatML Hub.

Легкое открытие модели

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

Эта динамика точно соответствует нашему основному тезису: разработчики интерактивных медиа хотят интегрировать машинное обучение в свои приложения, но у них нет для этого капитала, данных, инфраструктуры и знаний. Таким образом, имеет смысл переложить ответственность за создание самодостаточных предикторов с поддержкой plug-n-play на специалистов по машинному обучению. Это приводит к появлению Hub Market.

Hub Market — это биржа машинного обучения с высокой степенью федерации, где разработчики могут находить и использовать предикторы. В NatML представлена ​​концепция предикторов: легковесных примитивов, которые делают прогнозы с использованием одной или нескольких моделей ML. Эта концепция позволяет нам полностью стандартизировать использование моделей машинного обучения в коде, независимо от того, какая предварительная или постобработка требуется для модели. Это также полностью избавляет разработчиков от необходимости знакомиться с концепциями машинного обучения:

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

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

Доставка модели в масштабе

Вторая проблема, с которой мы столкнулись, связана с размерами моделей. Модели машинного обучения могут быть большими — очень большими. Типичная модель имеет размер от 20 МБ до 100 МБ; и хотя кому-то это может показаться небольшим, для разработчиков приложений оно оказывается чрезмерно большим. Поскольку мы фокусируемся на интерактивных медиа-приложениях, каждый лишний мегабайт отнимает важное место для содержимого приложения, такого как 3D-персонажи, окружение и текстуры.

К этой проблеме добавляется тот факт, что многие магазины приложений имеют ограничения на размер двоичного файла приложения. И даже если приложение оказывается ниже лимита, большие двоичные файлы означают более длительное время загрузки. Поэтому до тех пор, пока сотовые сети 5G и оптоволоконные локальные сети не станут обычным явлением — в настоящее время они только зарождаются в США и очень редки для глобальной аудитории — мы должны создавать инфраструктуру для эффективной доставки модели. Это приводит к падению хаба.

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

Hub Drop предоставляет разработчикам два существенных преимущества. Во-первых, он позволяет публиковать новые модели для ваших пользователей, не требуя обновления приложения; этот метод очень популярен среди социальных приложений, таких как Snapchat. И второе:

Оптимизация управляемой данными модели

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

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

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

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

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

Эксперимент продолжается. Я хотел бы выразить признательность Маймуне, Илтеру, Шону и другим, которые предоставили важные — и часто решающие — отзывы, чтобы добраться до этого момента. Наша следующая цель? Миллион предсказаний.

— Ланре Олокоба.

Присоединяйтесь к списку ожидания NatML и Сообществу NatSuite в Discord.