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

IA générative : l’Autorité de la concurrence pointe de sérieux risques

Dans un avis consultatif, l'Autorité de la concurrence a identifié les risques concurrentiels liés à…

2 jours ago

OpenAI signe un accord de contenu avec Time

OpenAI signe un « partenariat de contenu stratégique » avec Time pour accéder au contenu…

2 jours ago

Atos : David Layani (Onepoint) veut sortir du capital

Au lendemain du rejet de sa proposition de restructuration, David Layani annonce sa démission du…

2 jours ago

Évaluer les LLM, un défi : le cas Hugging Face

Après un an, Hugging Face a revu les fondements de son leaderboard LLM. Quels en…

3 jours ago

Mozilla face au dilemme de la GenAI dans Firefox

Mozilla commence à expérimenter divers LLM dans Firefox, en parallèle d'autres initiatives axées sur l'intégration…

4 jours ago

VMware tente d’orienter vers VCF les déploiements pré-Broadcom

VMware met VCF à jour pour y favoriser la migration des déploiements qui, sur le…

4 jours ago