Нейронная сеть в браузере
Нейронная сеть в браузере

На сайте TensorFire приводится пример веб-приложения, реализующего нейронную сеть, которая позволяет стилизовать одно изображение под другое

Источник: tenso.rs


09:17 18.09.2017   |  Сердар Йегулалп |  InfoWorld, США

Рубрика Технологии |   3170 прочтений



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

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

Библиотека, получившая название TensorFire, создана группой ученых Массачусетского технологического института. Она позволяет выполнять модели машинного обучения, совместимые с фреймворком Google TensorFlow, на любом графическом процессоре. При этом, в отличие от других библиотек машинного обучения вроде Keras-js, ей не требуется связующее ПО для конкретных видеочипов.

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

Вся мощь машинного обучения — в вашем браузере

TensorFire работает, пользуясь стандартом WebGL, который представляет собой кросс-платформенную систему рендеринга графики в браузере, ускоряемого с помощью видеопроцессора. WebGL поддерживает GLSL, Си-подобный язык программирования, используемый для написания шейдеров — коротких программ для преобразования данных непосредственно на графическом процессоре.

Обычно шейдеры используются в конвейере WebGL для преобразования изображений, например для рендеринга теней и других визуальных эффектов. Но в TensorFire шейдеры применяются для параллельного выполнения вычислений, необходимых для формирования умозаключений на основе моделей TensorFlow. Система также комплектуется библиотекой для импорта существующих моделей TensorFlow и Keras.

Фреймворк позволяет развернуть обученную модель в браузере и в нем же генерировать на ее основе прогнозы. При этом пользователю не нужно ничего загружать, устанавливать или компилировать — вся работа выполняется непосредственно в браузере. Данные, используемые для формирования умозаключений, тоже целиком обрабатываются на клиентской системе. Не имеет значения и марка графического процессора — поддерживаются чипы как AMD, так и Nvidia.

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

Создатели TensorFire утверждают, что библиотека работает быстрее, чем другие подобные решения, одно из узких мест которых — перенос данных между графическим и центральным процессором; TensorFire избегает этой процедуры, стараясь обрабатывать максимально возможный объем данных на графическом процессоре.

Всю работу делает ваш компьютер

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

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

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

На сегодня технология Nvidia CUDA считается предпочтительной для ускорения машинного обучения средствами графических процессоров, поскольку она обеспечивает более высокую производительность, чем открытый стандарт OpenCL, поддерживающий более широкий круг оборудования. У AMD есть идеи по преодолению нехватки производительности OpenCL, но TensorFire дает разработчикам возможность полностью обойти проблему.

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

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

Разработчики TensorFire собираются опубликовать библиотеку в виде проекта с открытым кодом по лицензии MIT, благодаря чему механизмы ускорения, реализованные в TensorFire, можно будет использовать во многих видах приложений, в том числе не относящихся к машинному обучению. Создатели фреймворка отмечают, что низкоуровневый API GLSL в TensorFire также можно использовать для выполнения произвольных параллельных вычислений общего назначения, то есть на базе библиотеки можно создавать другие фреймворки для клиентских вычислений в браузере, выполняемых на графическом ускорителе.


Теги: Браузеры Google Нейронные сети Графические процессоры Машинное обучение TensorFlow

На ту же тему: