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.
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.
Illustration principale © isak55 – Shutterstock
Dans un avis consultatif, l'Autorité de la concurrence a identifié les risques concurrentiels liés à…
OpenAI signe un « partenariat de contenu stratégique » avec Time pour accéder au contenu…
Au lendemain du rejet de sa proposition de restructuration, David Layani annonce sa démission du…
Après un an, Hugging Face a revu les fondements de son leaderboard LLM. Quels en…
Mozilla commence à expérimenter divers LLM dans Firefox, en parallèle d'autres initiatives axées sur l'intégration…
VMware met VCF à jour pour y favoriser la migration des déploiements qui, sur le…