kentoh - Fotolia
ABBYY ouvre NeoML, un framework de machine learning multiplateforme
Le spécialiste de l’OCR et de traitement de documents se met lui aussi à l’open source. L’éditeur a présenté un framework nommé NeoML pour construire, entraîner et déployer des algorithmes de machine learning. Sa spécialité ? L’inférence multiplateforme.
Fondé en Russie, ABBYY s’est spécialisé dans la reconnaissance optique de caractère (OCR), l’extraction de données non structurées, la reconnaissance de texte et plus généralement la vision par ordinateur. Le groupe a également développé des solutions de NLU et de NLP au sein de ses produits de gestion de documents grand public et pour les entreprises. Le produit phare d’ABBYY, FlexiCapture, est intégré au sein des solutions RPA de UiPath, BluePrism, Automation Anywhere et de PegaSystems. Il est notamment utilisé pour extraire des données financières issues de factures (au format PDF ou JPEG) pour les intégrer et les corréler avec celles des ERP.
Pour intégrer ces fonctionnalités basées sur le machine learning et le deep learning, les équipes d’ABBYY ont développé leur propre boîte à outils. C’est une version de cette dernière que l’éditeur passe en open source, sous licence Apache 2.0, sous le nom de NeoML. Ivan Yamshchikov, évangéliste IA chez ABBYY et chercheur à l’Institut de mathématiques Max Planck à Leipzig, explique que le projet était voué à devenir open source.
Un framework maison adapté à la sauce open source
« Nous n’étions pas convaincus par Python pour nos produits. Nous savions que nous devions écrire quelque chose en partant de zéro. Pendant plus de cinq ans, nous avons développé un framework pour l’utiliser en interne. Il y a un peu plus de deux ans, quand j’ai rejoint la société, il y avait le sentiment que nous pouvions le partager avec la communauté parce qu’il a des avantages évidents », indique le chercheur.
Selon lui, cela fait un an et demi que l’équipe en charge du projet documente le framework pour en faire « une solution open source viable, auquel le public peut contribuer ».
La plupart des produits d’ABBYY sont codés en C++ et Objective-C. Ce sont donc les langages utilisés avec Java pour concevoir la vingtaine d’algorithmes présents dans le dépôt GitHub. Ceux-ci permettent de réaliser des opérations « traditionnelles » de classification, de régression ou encore de clustering sur des données structurées et non structurées. D’autres algorithmes seront ajoutés prochainement.
« Nous supportons les modèles codés en Python », précise Ivan Yamshchikov. « En particulier, il est assez facile d’importer des modèles depuis Pytorch ». Prochainement, Python sera officiellement supporté.
NeoML contient également des réseaux neuronaux qui supportent jusqu’à 100 types de couches. NeoML respecte également le standard ONNX (Open Neural Network Exchange), tout comme IBM, Facebook, Microsoft, SAS ou encore Nvidia.
NeoML, une boîte à outils spécialisée dans l’inférence sur mobile
L’interface de NeoML est séparée du module de calcul bas niveau, NeoMath Engine, lui aussi écrit en C++. Il y a plusieurs moyens de le déployer, suivant si l’on souhaite installer un moteur de calcul basé sur un CPU, ou un GPU. Une fois le support matériel choisi, toutes les opérations de calcul sont exécutées depuis ce dernier.
Avec d’autres moteurs, il est possible d’exécuter certaines opérations depuis des processeurs et d’autres, plus gourmandes, depuis des processeurs graphiques. Le projet prend en charge OpenMP associé à MKL pour les CPU de serveurs ou d’ordinateur et ARM Neon et OpenMP pour les SoC (System on Chip) des appareils Android et iOS. Côté GPU, NeoML supporte les deux API des constructeurs AMD et Nvidia : Vulkan et CUDA.
Pour l’expert, la grande spécialité de NeoML c’est l’inférence ; la possibilité de déployer et d’accélérer les performances des modèles sur de multiples plateformes. Le framework supporte une grande partie des OS disponibles sur le marché : Windows, Linux, macOS, iOS et Android reposant sur des architectures x86, x86_64, arm64-v8a et armeabi-v7a. L’évangéliste met particulièrement l’accent sur le déploiement d’algorithmes de machine learning sur des terminaux Android ou iOS.
« De plus en plus de solutions mobiles vous permettent de faire tourner des modèles déjà entraînés sur des appareils Android et iOS. Et bien sûr, cela se développe en parallèle d’une autre tendance », explique-t-il. « Vous ne voulez pas que les données sensibles soient traitées sur le serveur central d’un tiers. Très souvent, vous ne voulez même pas que les données soient traitées sur votre propre serveur pour un certain nombre de raisons. Il y a donc une demande croissante de solutions mobiles embarquées qui est motivée par plusieurs facteurs, dont les problèmes de connectivité et de confidentialité ».
À ce jeu, NeoML serait particulièrement avantagé. « Un algorithme NeoML s’intègre dans votre solution finale en mode inférence. Donc, une fois que le réseau est formé, il lui suffit d’utiliser les connaissances qu’il possède déjà pour reconnaître un document ou traiter un texte ou pour détecter une éventuelle fraude, etc. Et d’après nos tests, les performances d’inférence de NeoML sont meilleures que celles de TensorFlow, ce qui est également crucial pour le différencier des autres frameworks ».
Toutefois, l’évangéliste prévient que la gestion des processeurs ARM n’est pas parfaite et travaille encore à mieux supporter les SoC des smartphones et autres appareils légers.
Réunir une communauté autour de la librairie d’ABBYY
Yvan YamshchikovÉvangéliste IA, ABBYY
Si Ivan Yamshchikov admet que NeoML est pour l’instant plus adapté pour le traitement d’images et de textes, il assure que les capacités de la bibliothèque sont adaptées à d’autres pratiques comme la corrélation de données structurées.
« Beaucoup de cas d’usage que nous proposons dans nos produits sont basés sur la vision par ordinateur parce que cela apporte une manière naturelle d’intégrer des données dans un système » […]. Mais les outils que nous fournissons sont très flexibles et si la communauté estime que le passage à d’autres formes d’analyse de données et à d’autres formes de tâches d’apprentissage machine est nécessaire, nous accueillons à bras ouverts toute suggestion et toute nouvelle capacité que les gens pourraient mettre en œuvre. C’est en partie la raison pour laquelle nous les avons rendus open source », assure Yvan Yamshchikov.
Même si ABBYY se sert de NeoML pour concevoir ses propres solutions, l’éditeur ne craint pas de perdre des clients ou des partenaires qui feraient de même. « Cette plateforme open source va vraiment nous permettre de partager la connaissance sur l’intelligence artificielle et d’accélérer la transformation numérique sur le marché », assure Linda Ameur, directrice commerciale France chez ABBYY. « Il n’y a pas de crainte qu’un partenaire ou un acteur du marché entre en compétition avec ABBYY. Nous avons 30 ans d’expérience dans le domaine. Nous imaginons plutôt NeoML comme un moyen de simplifier la prise en main d’outils comme les nôtres », ajoute-t-elle.
« Les outils [inclus dans NeoML] eux-mêmes sont utiles, mais ils ne suffisent pas pour construire des produits de qualité comparable aux nôtres ; il faut avoir une vision du produit, une expertise et des données. Donc, l’expertise, la vision du produit et les données sont quelque chose que nous ne partageons pas, quelque chose que nous gardons pour nous, nos clients et nos partenaires », conclut Ivan Yamshchikov.