Le Khronos Group, consortium industriel en charge notamment de la standardisation d’API graphiques et multimédias et promoteur de standards ouverts comme OpenGL et OpenCL, a publié fin 2017 la spécification provisoire ouverte NNEF 1.0 (Neural Network Exchange Format)... dont l’objectif est de faciliter le transfert de réseaux de neurones prélablement entraînés entre des frameworks d'apprentissage et des moteurs d'inférence (logiciels qui gèrent des raisonnements logiques et délivrent des conclusions à partir d'une base de faits ou de connaissance) mis en œuvre dans des systèmes embarqués. En arrière-plan, ces travaux visent aussi à proposer un cadre standard pour éviter la fragmentation du marché au moment où se déploient massivement les applications d'apprentissage automatique (machine learning).
La spécification NNEF, qui pourra être amendée en fonction des retours des industriels sur la version provisoire, est censée permettre aux spécialistes des sciences de la donnée et aux ingénieurs de transférer aisément, sur une large variété de moteurs d'inférence, les réseaux de neurones qui ont été entraînés et optimisés au sein du framework d'apprentissage qu'ils ont choisi. Dans ce cadre, un standard stable, flexible et extensible auquel les équipementiers peuvent faire confiance est indispensable pour le déploiement à grande échelle de réseaux de neurones sur des terminaux et noeuds d'extrémité. Pour ce faire, la spécification NNEF encapsule une description complète de la structure, des opérations et des paramètres d'un réseau de neurones entraîné, indépendamment des outils utilisés pour le produire et du moteur d'inférence utilisé pour l'exécuter.
« Le domaine de l'apprentissage automatique bénéficie de la vitalité des nombreux groupes travaillant sur le sujet, mais il souffre d'un manque de normes communes, et ce d'autant plus que cette technologie est en passe désormais d'être déployée sur de multiples systèmes, commente Peter McGuinness, président du groupe de travail NNEF. Le Khronos Group anticipe ce besoin de l'industrie et travaille depuis plus d'un an sur le standard open source NNEF pour faciliter l'échange de réseaux de neurones, avec un format qui sera un peu l’équivalent du PDF pour les réseaux de neurones. »
Concrètement, NNEF a été conçu pour exporter et importer de manière fiable la description d’un réseau de neurones entre outils et moteurs tels que Torch, Caffe, TensorFlow, Theano, Chainer, Caffe2, PyTorch et MXNet. A terme, il pourrait entrer directement en concurrence avec le format propriétaire ONNX (Open Neural Network Exchange) annoncé en septembre 2017 par Microsoft et Facebook.
La spécification provisoire NNEF 1.0 couvre un large éventail de cas d'usage et de types de réseaux avec un ensemble étoffé de fonctions et une conception échelonnable qui emprunte des éléments syntaxiques à Python mais ajoute aussi des éléments issus de méthodes formelles pour renforcer la fiabilité et l’exactitude du standard. NNEF inclut en outre la définition d'opérations spécifiques pour réaliser des optimisations de réseaux de neurones complexes.
Les principaux cas d'usage envisagés sont le traitement d'images (classification, segmentation, détection d'objets), le traitement du langage et le traitement audio et vidéo. Enfin, NNEF contient les opérations requises pour les réseaux de neurones convolutifs classiques, y compris les architectures dites “feedforward”, encodeur-décodeur et récurrentes.
Les travaux futurs s'appuieront sur cette architecture afin que la spécification NNEF puisse suivre le domaine en évolution rapide de l'apprentissage automatique tout en fournissant une plate-forme stable pour le déploiement. AMD, ARM, Qualcomm et VeriSilicon ont d’ores et déjà annoncé qu’ils apportaient leur soutien à cette spécification en devenir.