Anatoly Levenchuk (ailev) wrote,
Anatoly Levenchuk
ailev

Таблетки для знаний: уже второй стандарт

Полку стандартов для обмена нейронными сетками прибыло, причём от разработчиков железа, и это NNEF, Neural Network Exchange Format -- https://www.khronos.org/nnef. Это добавочка к длинному ряду: Khronos standards include Vulkan®, OpenGL®, OpenGL® ES, OpenGL® SC, WebGL™, SPIR-V™, OpenCL™, SYCL™, OpenVX™, NNEF™, COLLADA™, OpenXR™ and glTF™.

Чётко даётся цель: перенос знаний между системами тренинга нейросеток и железом вывода, то есть речь идёт о выходных языках (буквально, NNEF сделан питоноподобным) оптимизаторов нейросеток типа TVM (http://tvmlang.org/) или TensoRT 3 (https://developer.nvidia.com/tensorrt):


Напомню, что до этого мы видели в этой сфере главным образом ONNX (http://onnx.ai/). И там те же члены, хотя их было и поменьше. Правда, NVIDIA в рабочей группе NNEF нет, но и в ONNX она появилась совсем недавно. Я думаю, и тут появится (NVIDIA член Khronos). Отличия более простого ONNX от более навороченного NNEF читать в https://www.khronos.org/blog/nnef-design-philosophy-network-structure-and-target-use-cases

Что дают все эти стандарты поддержки оптимизаторов? Например, дешевизну и скорость получающихся решений. Вот пример с TensorRT 3 на восьмибитном представлении (https://devblogs.nvidia.com/parallelforall/int8-inference-autonomous-vehicles-tensorrt/, INT8 inference with TensorRT improves inference throughput and latency by about 5x compared to the original network running in Caffe):


Это вполне может быть ещё не конец истории, я вот писал ещё пару лет назад, что нужно "думать о мощности аппроксимаций: переход к bitwise сеткам (начиная, например, с обзора в http://arxiv.org/abs/1603.01025 -- где обсуждаются пятибитные и трёхбитные логарифмические разрядные представления для весов и активаций в свёрточных сетях)". С восьмибитными представлениями уже промышленные решения, а вот пятибитные и трёхбитные представления ещё не появились, дальше можно только гадать -- появятся, или не появятся. Но инфраструктура для их возможного появления разрабатывается полным ходом, стандарты будут, дело только в реализациях.

Это только самое начало долгого стандартизационного пути, достаточно вспомнить "войны браузеров" и повспоминать историю HTML -- https://en.wikipedia.org/wiki/HTML, но ещё лучше VRML -- https://en.wikipedia.org/wiki/VRML (и поглядите, чем оно там закончилось, если закончилось). Большие инфраструктуры обеспечивают именно стандарты. Как только удаётся сформулировать хороший платформенный стандарт, так тут же появляется массовость приложений. Появление нейросетевого стандарта -- верный признак перехода к массовым применениям. Нейровеб приходит, но (как обычно) совсем не так, как его ждали. Не могу не вспомнить тут о других стандартах нейросетей -- прежде всего https://www.neuroml.org/ и http://neuralensemble.org/PyNN/ (где тот же Питон в основе). Вот я писал в 2014 году про моделирование нейронов червя с его использованием: https://www.neuroml.org/.
Subscribe
  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

  • 0 comments