Habr AI→ original

ONNX Runtime et C++ : extraire le maximum des données tabulaires sans Python

Soyons honnêtes : les données tabulaires ne sont pas le sujet le plus sexy du monde de l'IA moderne. Toute l'attention va aux modèles génératifs, aux images…

Traité par IA depuis Habr AI ; édité par Hamidun News
ONNX Runtime et C++ : extraire le maximum des données tabulaires sans Python
Source : Habr AI. Collage: Hamidun News.
◐ Écouter l'article

Soyons honnêtes : les données tabulaires ne sont pas le sujet le plus sexy du monde de l'IA moderne. Toute l'attention va aux modèles génératifs, aux images et aux vidéos. Cependant, c'est sur les tables que repose tout le secteur mondial de la fintech, de la logistique et du retail. Et là réside un problème aussi vieux que le monde. Les data scientists adorent Python pour sa flexibilité et l'abondance de bibliothèques comme Scikit-learn ou CatBoost. Mais quand il s'agit de production, où chaque milliseconde et chaque mégaoctet de RAM comptent, Python devient un monstre maladroit. Vous traînez avec vous des dépendances massives, luttez contre le Global Interpreter Lock et espérez que le serveur tiendra bon sous la charge.

La solution à cette douleur existe depuis longtemps, mais beaucoup l'ignorent encore. Nous parlons d'ONNX Runtime (ORT) — un moteur haute performance de Microsoft qui vous permet d'exécuter des modèles de réseaux de neurones sur n'importe quoi, des serveurs aux téléphones mobiles. L'avantage principal ici est le format Open Neural Network Exchange. Vous entraînez un modèle en Python familier, l'exportez en .onnx et oubliez Python comme un mauvais rêve. Ensuite, C++ entre en jeu, et c'est là que commence la véritable magie de performance.

Pourquoi exactement C++ ? Parce que dans les systèmes hautement chargés, la prévisibilité est tout. En utilisant l'API C++ pour ONNX Runtime, vous avez un contrôle total sur la gestion de la mémoire et l'exécution des threads. La bibliothèque offre des implémentations optimisées pour le CPU et le GPU, en support des accélérateurs matériels comme TensorRT ou OpenVINO. Cela signifie que le même modèle en C++ s'exécutera plusieurs fois plus vite que son équivalent dans l'environnement Python natif, tout en consommant beaucoup moins de ressources. Vous tirez littéralement tout ce que votre matériel peut donner.

Le processus d'intégration est étonnamment simple. Vous n'avez pas besoin d'écrire des milliers de lignes de code juste pour exécuter une inférence. Le référentiel GitHub officiel du projet fournit des binaires précompilés qui s'intègrent facilement à votre projet. Le travail principal se résume à préparer les tenseurs d'entrée à partir de vos données tabulaires et à obtenir les résultats. Oui, travailler avec les types de données en C++ nécessite un peu plus de discipline que le Python dynamique, mais c'est le prix à payer pour la stabilité et la vitesse. Au final, vous obtenez un fichier binaire compact qui se lance instantanément et ne nécessite pas l'installation de gigaoctets de bibliothèques tierces.

Il est important de comprendre le contexte : l'industrie s'éloigne progressivement des services Python monolithiques vers une architecture microservices sur des langages rapides. Utiliser ONNX Runtime pour les données tabulaires n'est pas seulement une optimisation, c'est le standard de facto pour ceux qui valorisent l'efficacité. Si votre modèle doit prendre des décisions en temps réel, par exemple approuver une transaction ou calculer le coût d'une course, vous n'avez tout simplement pas le temps d'attendre que Python daigne traiter votre demande. Passer à C++ en combinaison avec ORT est le chemin le plus rapide pour faire en sorte que votre IA cesse d'être une « version démo » et devienne une véritable solution industrielle.

Qu'est-ce que cela signifie pour le marché dans son ensemble ? Nous voyons une tendance claire vers la séparation des phases d'entraînement et d'exécution. L'entraînement reste avec Python et son écosystème, mais l'inférence migre rapidement vers des solutions bas niveau. Cela ouvre la porte à l'utilisation de l'IA dans les systèmes embarqués et les appareils edge computing, où les ressources sont extrêmement limitées. Ceux qui maîtriseront cette stack aujourd'hui dicteront les règles du jeu dans le développement d'IA hautement chargé demain.

En conclusion : Python est bon pour l'expérimentation, mais pour une vraie charge lourde, il vous faut C++. Êtes-vous prêt à réécrire vos scripts pour un gain de vitesse d'un facteur dix ?

ZK
Hamidun News
Actualités IA sans bruit. Sélection éditoriale quotidienne de plus de 400 sources. Produit de Zhemal Khamidun, Head of AI chez Alpina Digital.

Vous voulez cesser de lire sur l'IA et commencer à l'utiliser?

AI News est un fil d'actualité IA. Hamidun Academy vous apprend à utiliser l'IA dans votre travail.

Qu'en pensez-vous ?
Chargement des commentaires…