Pour gérer vos consentements :

NeoML : ABBYY choisit l’open source pour son framework de machine learning

ABBYY vient d’ouvrir NeoML à la communauté.

L’éditeur américain est à l’origine de cette bibliothèque C++ destinée à la conception de modèles d’apprentissage automatique. Il l’exploite en interne pour réaliser des tâches dans les domaines de la vision par ordinateur et du traitement du langage naturel.

Le projet a consisté à unifier les capacités de nombreuses bibliothèques déjà disponibles : Caffe, Liblinear, TensorFlow, XGBoost, etc. Et à y greffer une interface C++, langage dans lequel sont majoritairement écrits les logiciels ABBYY.

Cette unification s’est assortie d’optimisations. Avec, par exemple, le choix de s’inspirer de Caffe pour représenter les données sous forme de blobs plutôt que de tensors. Ou encore la décision de ne pas s’appuyer sur AVX au niveau CPU.

Sur mobile aussi

L’implémentation des réseaux de neurones sur NeoML prend aujourd’hui en charge une centaine de types de couches. Si les travaux initiaux se sont portés sur les plates-formes x86, la question de l’intégration sur mobile a fini par se poser. D’autant plus qu’ABBYY a dans son portefeuille des SDK destinés au traitement de texte et d’images sur les smartphones.

L’éditeur a d’abord expérimenté des solutions tierces : TensorFlow Lite sur Android et Core ML sur iOS. Il a finalement décidé de développer sa propre solution, qui n’exploite encore que marginalement les GPU (avec Vulkan et Metal).

La prise en charge des GPU est également effective sur Windows, avec la technologie Nvidia CUDA (version 10.2 et ultérieures). Elle ne l’est pas encore sur macOS, ni sur Linux.

NeoML permet de travailler sur une vingtaine d’algorithmes de machine learning et de deep learning. Des interfaces Java et Objective-C sont à disposition pour exploiter les fonctions d’inférence. Il est prévu d’y ajouter Python.

L’importation de modèles issus de frameworks tiers est possible, aussi longtemps qu’ils respectent le format ONNX. En l’état, les performances seront plus élevées sur les modèles développés avec PyTorch.

Au niveau des performances, justement, ABBYY a publié un benchmark. Le réseau de neurones concerné – de dimension 224 x 224 x 3 – est entraîné sur MobileNetV2 pour effectuer de la classification sur le jeu de données ImageNet.

  • Résultats sur Ubuntu 20.04 avec un processeur Intel Core i5-4400 :

  • Sur un Samsung Galaxy A50 avec puce Exynos 9610 :

  • Et sur un iPhone Xs avec puce A12 :

Illustration principale © isak55 – Shutterstock

Recent Posts

Pradeo : « Pegasus rend le cyber-espionnage plus accessible »

Les logiciels espions comme Pegasus devraient faire l'objet d'une stricte réglementation, selon Clément Saad, président…

9 heures ago

Google Cloud : vers des API plus stables ?

Critiqué pour la gestion du cycle de vie de ses API, Google Cloud prend des…

11 heures ago

Malwares : les codeurs surveillent leur langage

BlackBerry attire l'attention sur ce qui pousse les concepteurs de malwares à basculer entre langages…

14 heures ago

Sauvegarde et restauration : qui se distingue sur ce marché morcelé ?

Six « leaders » se détachent au Magic Quadrant 2021 des solutions logicielles de sauvegarde…

1 jour ago

Cybersécurité : GitHub recrute un ancien de la NSA

Jacob DePriest, ex-responsable technique de la NSA, est nommé vice-président des opérations de sécurité, en…

1 jour ago

Stockage : qui n’a pas sa protection anti-ransomwares ?

Les communications axées sur la protection contre les ransomwares se succèdent chez les fournisseurs de…

2 jours ago