The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

Amazon открыл код компилятора NNVM для систем машинного обучения

08.10.2017 12:07

Компания Amazon представила компилятор NNVM, предназначенный для компиляции предоставляемых системами машинного обучения высокоуровневых графов вычислений в оптимизированный набор машинных кодов. Код проекта распространяется под лицензией Apache 2.0.

Система поддерживает компиляцию моделей в форматах OpenML (поддерживаются фреймворки Keras и Caffe), Apache MXNet и недавно представленного FaceBook и Microsoft открытого формата ONNX (Open Neural Network Exchange), при помощи которого могут передавать модели обучения из фреймворков Caffe2, PyTorch и CNTK (Cognitive Toolkit). На выходе может генерироваться код для различных бэкендов, включая ядра для вычислений на стороне GPU при помощи CUDA, OpenCL и Metal, а также промежуточный код LLVM, на основе которого могут формироваться машинные инструкции для архитектур x86 и ARM или представление WebAssembly.

Компиляция включает в себя несколько стадий:

  • Формирование промежуточного представления графа вычислений на основе данных, полученных от различных фреймворков машинного обучения.
  • Оптимизация полученного графа вычислений и выделение операторов с подпрограммами обработки данных в графе.
  • Компиляция операторов в исполняемые модули и развёртывание для различных аппаратных бэкендов с минимальными зависимостями. Для построения кода на основе промежуточного представления используется стек TVM, предоставляющий предметно ориентированный язык для обеспечения работы используемых в модели операторов при помощи набора базовых реализаций, оптимизированных для различных целевых аппаратных платформ, а также вычислительных примитивов, таких как многопоточность, кэширование и разбиение циклов на блоки (tiling).

Архитектура NNVM позволяет легко добавлять новые фронтэнды, операторы и оптимизации графа, без необходимости изменения базовых интерфейсов. Полученные после компиляции модули могут быть сгенерированы в виде кода на c++, python, javascript, java, objective-c для запуска на серверах, мобильных устройствах, встраиваемых системах и в web-браузере.

Проведение тестирования генерации кода для CPU ARM и GPU NVIDIA показало, что формируемый компилятором итоговый код превосходит по производительности фреймворк MXNet. Размер формируемого модуля зависит в основном от размера runtime TVM, который при сборке для Raspberry Pi и мобильных устройств занимает около 300 Кб.



  1. Главная ссылка к новости (https://aws.amazon.com/blogs/a...)
  2. OpenNews: Facebook и Microsoft предложили открытый формат обмена моделями машинного обучения
  3. OpenNews: Facebook представил модульную систему машинного обучения Caffe2
  4. OpenNews: Yahoo открыл модель машинного обучения для выявления неприличных изображений
  5. OpenNews: Компания Sony открыла свои наработки в области нейронных сетей
  6. OpenNews: Выпуск системы машинного обучения TensorFlow 1.0 и классификатора изображений ResNeXt
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/47351-amazon
Ключевые слова: amazon, nnvm, caffe, torch, cntk, openml, onnx, mxnet
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (11) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Борщдрайвен бигдата (?), 13:04, 08/10/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • +6 +/
    Помнится, аналитики высочайшего уровня в новости об ONNX истово доказывали, что спецификация формата обмена моделями нейросеток «нинужна», васянокод и вообще EEE.
    А поди ж ты, амазон со своим тулкитом подключился.
     
     
  • 2.20, Аноним (-), 21:24, 08/10/2017 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Аналитики с опеннета такие аналитики с опеннета
     
  • 2.27, Аноним (-), 17:22, 12/10/2017 [^] [^^] [^^^] [ответить]  
  • +/
    Как же не нужна?! Без этого впаривать правильно натренированные нейросети не получится. А в чью пользу они будут натренированы - догадайся.
     

  • 1.21, Vkni (ok), 21:38, 08/10/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Рабовладельцы таки что-то отдают в OSS, удивительно.
     
     
  • 2.22, НяшМяш (ok), 21:46, 08/10/2017 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Не будешь холопов подкармливать - откуда рабы возьмутся?
     
     
  • 3.23, Vkni (ok), 01:23, 09/10/2017 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Не будешь холопов подкармливать - откуда рабы возьмутся?

    Ну Амазон - это известная галера. Даже для программистов, а что уж говорить про всяких складских людей.

     
     
  • 4.24, . (?), 03:24, 09/10/2017 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Что, не прошел интервью на программиста? Погоди ... ох ши ... даже на грузчика?! ... 8-о
     
     
  • 5.25, Vkni (ok), 04:48, 09/10/2017 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > Что, не прошел интервью на программиста? Погоди ... ох ши ... даже
    > на грузчика?! ... 8-о

    В том-то и дело, что прошёл как-то. До сих пор спамят.

     
  • 4.28, Аноним (-), 17:23, 12/10/2017 [^] [^^] [^^^] [ответить]  
  • +/
    > Ну Амазон - это известная галера. Даже для программистов, а что уж
    > говорить про всяких складских людей.

    А это не они галеру автоматизировали? Заменяя грузчиков на роботов и автоматику. Програмеров тоже заменили бы, но пока не получается.

     

  • 1.26, J.L. (?), 14:48, 09/10/2017 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    //offtop

    > промежуточный код LLVM, на основе которого могут формироваться машинные инструкции для архитектур x86 и ARM или представление WebAssembly

    это разве все существующие в LLVM бэкенды ? что ограничивает набор бэкендов только этими ?

    > Оптимизация полученного графа вычислений и выделение операторов с подпрограммами обработки данных в графе.
    > Компиляция операторов в исполняемые модули и развёртывание для различных аппаратных бэкендов с минимальными зависимостями. Для построения кода на основе промежуточного представления используется стек TVM

    возможно ли без стояния в гамаке это использовать без NNVM, для "просто программы" ?

     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру