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

Want create site? Find Free WordPress Themes and plugins.

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

Did you find apk for android? You can find new Free Android Games and apps.

Recent Posts

Exploration des processus : Software AG lance ARIS Process Mining

Avec sa plateforme en mode cloud ARIS Process Mining, Software AG veut rendre l'exploration des…

1 heure ago

Bug Bounty : FireEye pousse ses primes

FireEye ouvre son programme de bug bounty à tous les chercheurs de vulnérabilités informatiques inscrits…

4 heures ago

Salesforce : Marc Benioff garde « l’esprit ouvert », sans Dreamforce ?

Marc Benioff dit "garder l'esprit ouvert à toutes les possibilités" concernant la direction future de…

11 heures ago

Mozilla, développeur de Firefox, taille dans ses effectifs

Mozilla annonce "restructurer" son activité pour se relancer dans un monde post-Covid-19.

1 jour ago

Cybersécurité : des RSSI à bout de souffle ?

En France, 7 RSSI sur 10 considèrent que leur entreprise est plus exposée aux violations…

2 jours ago

Oracle Cloud VMware gagne de nouveaux territoires

Oracle Cloud VMware facilite dorénavant la migration de charges de travail virtualisées dans toutes les…

2 jours ago