Un couteau suisse, c'est simple : un manche, plusieurs lames, chacune pour une tâche précise. On sort celle qu'il faut, et on travaille. En science des matériaux, les réseaux de neurones graphiques ont longtemps ressemblé à un ensemble d'outils épars : MEGNet traînait dans le tiroir TensorFlow, M3GNet dans celui de PyTorch, et CHGNet dans une boîte à part avec ses propres scripts. Pour transférer un modèle vers de nouvelles données ou comparer des architectures, il fallait bricoler des adaptateurs. La bibliothèque MatGL rassemble ces lames dans un seul manche.
À l'intérieur, cinq architectures : MEGNet, M3GNet, CHGNet, TensorNet et SO3Net. Elles sont construites à partir de modules communs, couches, pooling, fonctions d'activation. C'est comme un couteau à mécanisme unique : seule la forme de la lame change. L'entraînement passe par PyTorch Lightning, ce qui permet de faire évoluer les calculs sur plusieurs GPU. Pour les potentiels interatomiques, ces fonctions qui prédisent l'énergie à partir des positions des atomes, une classe Potential a été implémentée. Elle gère automatiquement la normalisation des énergies et calcule les forces, les contraintes et les hessiennes par autodifférenciation. Les interfaces vers ASE et LAMMPS permettent de lancer une relaxation de structure ou une dynamique moléculaire en une seule commande.
Les benchmarks sur quatre ensembles de données montrent que MatGL reproduit la précision des modèles d'origine. Sur QM9, l'erreur de prédiction de l'énergie libre est de 0.025 eV pour M3GNet, 0.027 eV pour TensorNet, 0.025 eV pour SO3Net ; MEGNet est en retrait avec 0.037 eV. Sur Matbench, pour l'énergie de formation, M3GNet, TensorNet et SO3Net donnent une erreur de 0.020 à 0.024 eV/atome, tandis que MEGNet atteint 0.037 eV/atome. Pour les potentiels sur ANI-1x, le modèle équivariant SO3Net atteint une erreur sur les forces de 0.035 eV/Å contre 0.075 eV/Å pour M3GNet avec transfert d'apprentissage. Sur les cristaux de Materials Project, CHGNet surpasse M3GNet et TensorNet : erreur sur l'énergie de 19.9 meV/atome contre 23.0 et 30.3 meV/atome. La vitesse d'inférence de TensorNet sur QM9 est de 14.9 secondes pour 6541 molécules sur une seule RTX 3090, celle de MEGNet de 12 secondes, mais avec une précision moindre.
Auparavant, chaque modèle de graphe pour les matériaux vivait dans son propre dépôt, avec son format de données et sa méthode d'entraînement. Désormais, il existe une bibliothèque unifiée où cinq architectures, des potentiels pré-entraînés et des interfaces vers les simulateurs fonctionnent via une API commune. Les auteurs ont assemblé des couches modulaires et des pipelines de données sur DGL et PyTorch Lightning, puis ont fait passer tous les modèles par les mêmes benchmarks. Les spécialistes des matériaux peuvent immédiatement lancer des prédictions de propriétés et des dynamiques moléculaires sans avoir à comprendre les détails de chaque architecture. Cela abaisse la barrière à l'entrée pour les expérimentateurs et accélère la reproductibilité. Contrairement aux travaux voisins qui se concentrent sur une seule architecture ou sur l'apprentissage par renforcement, MatGL propose d'emblée cinq modèles et les relie à ASE et LAMMPS, transformant la bibliothèque en plateforme pour un cycle complet, des données à la dynamique moléculaire.
La prochaine étape est le support de l'entraînement multiprocesseur sur plusieurs GPU et le travail avec des bases de données dépassant le million de structures. Les auteurs prévoient d'utiliser des bases mappées en mémoire pour stocker les graphes, afin de lever la limitation de mémoire. Cela permettra d'entraîner des potentiels universels sur l'ensemble de Materials Project et de lancer des dynamiques moléculaires sur des systèmes de centaines de milliers d'atomes. Le couteau suisse ne reste pas dans le tiroir : il se déploie pour de nouvelles tâches.
Le potentiel pré-entraîné M3GNet dans MatGL prédit l'énergie et les forces d'un cristal de 1000 atomes en une fraction de seconde, alors qu'un calcul DFT du même système prendrait des heures sur un supercalculateur.