Apertus est un framework logiciel open-source pour la construction, l'entraînement et le déploiement de modèles d'intelligence artificielle. Il est conçu pour offrir une alternative modulaire et transparente aux piles de développement d'IA propriétaires, permettant aux chercheurs et aux ingénieurs de construire des pipelines d'apprentissage automatique à partir de composants interchangeables. Le projet met l'accent sur la reproductibilité et l'auditabilité, avec un accent sur le contrôle fin de l'architecture des modèles, des procédures d'entraînement et de l'utilisation du matériel. Apertus est maintenu comme une initiative communautaire, avec son code source disponible publiquement sous une licence permissive.
Le framework est né en réponse à la complexité et à l'opacité croissantes des systèmes d'IA à grande échelle. Son développement a commencé au début des années 2020, avec la première version stable publiée en 2023. Apertus est construit autour d'une couche d'abstraction centrale qui découple les définitions de modèles des environnements d'exécution spécifiques. Cette conception permet au même code de modèle de fonctionner sur diverses plateformes matérielles, y compris les CPU, les GPU et les accélérateurs spécialisés, sans modification. Le projet a gagné en popularité parmi les chercheurs académiques et les développeurs indépendants qui privilégient la transparence et la capacité d'inspecter chaque étape du cycle de vie de l'IA.
Architecture centrale
L'architecture d'Apertus est organisée en plusieurs modules distincts, chacun responsable d'un aspect spécifique du flux de travail d'apprentissage automatique. Le composant central est l'API de définition de modèles, qui permet aux utilisateurs de spécifier les couches de réseaux neuronaux, les fonctions d'activation et les schémas de connectivité à l'aide d'une syntaxe déclarative. Cette API prend en charge à la fois des primitives de bas niveau, telles que des couches convolutionnelles ou récurrentes individuelles, et des blocs de construction de plus haut niveau comme les blocs résiduels ou les encodeurs de transformeurs.
Sous l'API de modèles se trouve le moteur d'exécution, qui gère le calcul réel. Le moteur comprend un optimiseur de graphe qui transforme le modèle défini par l'utilisateur en un graphe de calcul efficace. Cet optimiseur effectue des opérations telles que la fusion d'opérateurs, la planification de la mémoire et la transformation de la disposition. Le moteur d'exécution comprend également un compilateur juste-à-temps qui peut générer du code machine optimisé pour des cibles matérielles spécifiques, en utilisant des techniques similaires à celles employées dans les frameworks de Deep learning comme TensorFlow et PyTorch.
Un troisième composant majeur est le module de pipeline de données. Ce module fournit des outils pour charger, prétraiter et augmenter les ensembles de données d'entraînement. Il prend en charge le streaming de données à partir de stockage local ou de services cloud, et inclut des implémentations intégrées de techniques courantes de Data Augmentation telles que le recadrage aléatoire, le retournement et la variation de couleur. Le pipeline de données est conçu pour être efficace et évolutif, avec un support pour le chargement parallèle des données et la prélecture.
Le module d'entraînement implémente une variété d'algorithmes d'optimisation et de stratégies de planification. Il inclut des variantes standard de descente de gradient stochastique, telles que SGD avec momentum et Adam, ainsi que des méthodes plus avancées comme apprentissage par renforcement à partir de retours d'IA. Le module prend également en charge la planification du taux d'apprentissage, le clipping de gradient et les schémas de initialisation des poids. Les exécutions d'entraînement peuvent être surveillées via un système de journalisation intégré qui enregistre des métriques telles que la perte, la précision et les normes de gradient.
Abstraction matérielle et backends
Une caractéristique clé d'Apertus est sa couche d'abstraction matérielle, qui permet aux modèles de fonctionner sur une large gamme de dispositifs informatiques. Le framework inclut des backends pour les architectures CPU courantes, en exploitant des ensembles d'instructions optimisés tels que AVX-512 sur les processeurs x86. Pour l'accélération GPU, Apertus fournit des backends qui interfacent avec CUDA et ROCm, prenant en charge le matériel de NVIDIA et AMD.
Le framework inclut également des backends expérimentaux pour des accélérateurs d'IA spécialisés. Cela comprend le support pour les puces AWS Trainium, les TPU Google Cloud et les IPU Graphcore. L'interface backend d'Apertus est conçue pour être extensible, permettant aux fournisseurs de matériel tiers de contribuer leurs propres implémentations. Par exemple, un backend développé par la communauté pour les processeurs de flux tensoriel de Groq a été rendu disponible, bien que sa maturité varie selon les versions.
La couche d'abstraction d'Apertus s'étend également à la gestion de la mémoire. Le framework peut gérer automatiquement le transfert de données entre la mémoire hôte et la mémoire du dispositif, et il prend en charge les architectures de mémoire unifiée lorsque disponibles. Cela simplifie le développement de modèles nécessitant de grandes quantités de mémoire, comme ceux utilisés dans les grands modèles de langage.
Zoo de modèles et poids pré-entraînés
Le projet Apertus maintient un zoo de modèles contenant des poids pré-entraînés pour une variété d'architectures courantes. Cela inclut des réseaux neuronaux convolutionnels pour la classification d'images, tels que les variantes ResNet, et des modèles U-Net pour la segmentation d'images. Pour le traitement du langage naturel, le zoo inclut des modèles basés sur des transformeurs, y compris des modèles à encodeur seul comme BERT et des modèles à décodeur seul similaires à GPT.
Tous les poids pré-entraînés du zoo de modèles sont accompagnés d'une documentation détaillée décrivant les données d'entraînement, les hyperparamètres et les métriques d'évaluation. Cette transparence est un principe central du projet, permettant aux utilisateurs de comprendre la provenance et les limites de chaque modèle. Le zoo de modèles inclut également des scripts pour reproduire les exécutions d'entraînement, permettant aux chercheurs de vérifier les résultats et de s'appuyer sur des travaux existants.
En plus du zoo de modèles officiel, Apertus prend en charge un registre contribué par la communauté. Ce registre permet aux utilisateurs de publier leurs propres modèles entraînés, avec des métadonnées et des résultats d'évaluation. Le registre comprend un système de versionnage, garantissant que les modèles peuvent être suivis et mis à jour au fil du temps. En 2025, le registre héberge plus de 1 000 modèles, allant de petits réseaux expérimentaux à des modèles de langage à plusieurs milliards de paramètres.
Intégration avec d'autres outils
Apertus est conçu pour interopérer avec l'écosystème d'IA plus large. Il fournit des utilitaires de conversion qui permettent d'exporter et d'importer des modèles depuis d'autres frameworks, tels que ONNX et le format safetensors d'OpenAI. Cela facilite l'utilisation d'Apertus en conjonction avec des outils et bibliothèques existants.
Le framework inclut également une API Python qui s'intègre avec des bibliothèques de calcul scientifique populaires comme NumPy et SciPy. Cela permet aux chercheurs d'utiliser Apertus dans des flux de travail familiers, tels que les notebooks Jupyter. De plus, Apertus fournit une interface en ligne de commande pour des tâches courantes, y compris l'entraînement, l'évaluation et l'inférence de modèles.
Pour le déploiement, Apertus peut exporter des modèles vers des formats d'exécution optimisés. Ces formats sont conçus pour une inférence à faible latence dans des environnements de production, et ils peuvent être servis à l'aide du serveur d'inférence intégré du framework. Le serveur prend en charge le traitement par lots, la gestion des formes dynamiques et le versionnage des modèles, ce qui le rend adapté à une utilisation dans des déploiements AWS, Azure ou Oracle Cloud.
Communauté et gouvernance
Le projet Apertus est gouverné par un modèle communautaire ouvert. Le développement est coordonné via un dépôt public, avec des contributions acceptées de la part d'individus et d'organisations. Le projet dispose d'un comité de pilotage qui supervise la feuille de route et résout les litiges techniques. Ce comité comprend des représentants d'institutions académiques, telles que MIT CSAIL et Stanford AI Lab, ainsi que des contributeurs industriels.
Le financement du projet provient d'une combinaison de parrainages d'entreprises et de dons individuels. Les principaux sponsors incluent AMD, Intel et Samsung Electronics. Le projet reçoit également un soutien de subventions de recherche, y compris un financement d'agences scientifiques nationales. Toutes les contributions financières sont divulguées publiquement, garantissant la transparence des opérations du projet.
La communauté maintient un forum de discussion actif et un calendrier régulier de sprints de développement. Ces événements rassemblent des contributeurs du monde entier pour travailler sur des fonctionnalités spécifiques ou des corrections de bogues. Le projet organise également une conférence annuelle, ApertusCon, qui présente des présentations sur les nouveaux développements et cas d'utilisation.
Applications et cas d'utilisation
Apertus a été adopté dans divers contextes de recherche et industriels. Dans le milieu académique, il est utilisé pour l'enseignement et la recherche en Machine learning et Artificial intelligence. Par exemple, des cours à l'Université de Toronto et Carnegie Mellon University utilisent Apertus comme framework principal pour les projets étudiants.
Dans l'industrie, Apertus est utilisé par des entreprises qui nécessitent un contrôle fin sur leurs systèmes d'IA. Cela inclut des organisations dans les secteurs de la santé, de la finance et de la conduite autonome. Par exemple, Intuitive Surgical a utilisé Apertus pour développer des modèles d'analyse d'images chirurgicales, tandis que Waymo a exploré son utilisation pour des tâches de perception dans les véhicules autonomes.
Les fonctionnalités de transparence du framework le rendent particulièrement attractif pour les industries réglementées. Dans le secteur de la santé, les pistes d'audit et les procédures d'entraînement reproductibles d'Apertus aident à satisfaire les exigences de conformité. De même, dans la finance, la capacité de documenter entièrement le comportement des modèles est précieuse pour la gestion des risques et les rapports réglementaires.
Performance et évolutivité
Apertus est conçu pour évoluer d'expériences sur un seul dispositif à des exécutions d'entraînement distribué à grande échelle. Le framework inclut un module d'entraînement distribué qui prend en charge le parallélisme de données, le parallélisme de modèles et le parallélisme de pipeline. Cela permet d'entraîner des modèles sur plusieurs GPU ou nœuds, en utilisant des protocoles de communication tels que NCCL et MPI.
Des tests de référence ont montré qu'Apertus atteint des performances compétitives par rapport à d'autres frameworks. Sur des tâches standard de classification d'images, telles que l'entraînement d'un ResNet-50 sur ImageNet, le débit d'Apertus est à moins de 5 % de la performance de PyTorch. Pour les modèles de langage basés sur des transformeurs, l'implémentation optimisée de l'attention du framework offre des accélérations allant jusqu'à 20 % par rapport aux implémentations naïves.
Le framework inclut également des outils de profilage qui aident les développeurs à identifier les goulots d'étranglement de performance. Ces outils fournissent des informations détaillées sur les temps d'exécution des noyaux, l'utilisation de la mémoire et les frais généraux de communication. Ces données peuvent être utilisées pour guider les efforts d'optimisation, tels que la sélection de l'implémentation la plus efficace de l'attention multi-têtes ou le réglage des paramètres de normalisation par lots.
Orientations futures
La feuille de route d'Apertus inclut plusieurs fonctionnalités prévues pour les prochaines versions. Un domaine d'intérêt est l'amélioration du support pour l'élagage de modèles et la quantification, essentiels pour déployer des modèles sur des dispositifs à ressources limitées. L'équipe travaille également sur l'amélioration du support du framework pour les modèles séquence à séquence et les mécanismes de attention croisée.
Un autre domaine de développement est l'intégration de capacités d'IA générative. Cela inclut un support intégré pour l'échantillonnage top-k, l'échantillonnage top-p et la mise à l'échelle de température pour la génération de texte. L'objectif est de fournir une boîte à outils complète pour construire et déployer des modèles génératifs, de l'entraînement à l'inférence.
Le projet vise également à étendre son support matériel. Des travaux sont en cours sur des backends pour les accélérateurs d'IA de Qualcomm et les processeurs basés sur ARM. De plus, il y a des plans pour améliorer l'intégration avec Oracle Cloud et d'autres plateformes cloud, simplifiant le déploiement d'applications basées sur Apertus.
En 2025, le projet Apertus continue d'évoluer, avec une communauté croissante de contributeurs et d'utilisateurs. Son engagement envers l'ouverture et la transparence le positionne comme une alternative significative dans le domaine en évolution rapide de l'intelligence artificielle.