Captum · Model Interpretability for PyTorch
Meta (PyTorch team) · Programmation
Captum est une bibliothèque gratuite et open source signée Meta qui explique les prédictions des modèles PyTorch. Ses algorithmes d'attribution montrent quelles variables, quels neurones ou quelles couches ont pesé sur une sortie.

À propos de Captum · Model Interpretability for PyTorch
About
Qu'est-ce que Captum
Captum est une bibliothèque Python d'interprétabilité des modèles PyTorch. Elle répond à une question précise : à quoi un réseau déjà entraîné réagit-il réellement ? Le nom vient du latin et veut dire compréhension, ce qui résume le travail. Vous prenez un modèle existant, vous lancez un algorithme d'attribution dessus et vous obtenez des valeurs qui mesurent la part de chaque variable d'entrée, de chaque neurone et de chaque couche dans une prédiction donnée.
L'intérêt devient évident quand un modèle se trompe sans que personne sache pourquoi. Un classifieur étiquette une image médicale comme anormale, un moteur de recommandation renvoie toujours le même article bizarre, un modèle de langage répond avec une assurance qui ne tient pas debout. Captum ouvre la passe avant au lieu de laisser deviner.
La limite tient au périmètre. Captum est une bibliothèque, pas une application. Il faut être à l'aise avec Python et PyTorch pour que tout cela ait un sens, et les résultats arrivent sous forme de tenseurs que vous interprétez ou affichez vous-même dans un notebook. Aucun tableau de bord hébergé n'existe. L'interface visuelle Captum Insights a été retirée après la version 0.8.0, donc un utilisateur qui cherche un outil à cliquer sera déçu.
Pour bien démarrer
- Installez le paquet avec
pip install captum, ou avecconda install captum -c pytorchsi vous travaillez sous conda. La version 0.9.0 demande Python 3.10 au minimum et PyTorch 2.3 au minimum. - Chargez votre modèle entraîné et passez-le en mode évaluation. La plupart des algorithmes ne demandent aucune modification de l'architecture.
- Choisissez un algorithme et donnez-lui le modèle.
IntegratedGradients(model)reste le premier réflexe quand on travaille avec une attribution fondée sur les gradients. - Appelez
attribute()avec votre lot d'entrées et, quand la méthode le demande, une référence comme un tenseur de zéros. - Examinez les attributions renvoyées, vérifiez le delta de convergence si vous l'avez demandé et tracez les scores à côté de vos entrées.
Informations sur le produit
Aperçu des tarifs, des plateformes compatibles et des performances de Captum · Model Interpretability for PyTorch.
Idéal pour
Les utilisateurs, tâches et cas d'usage où cet outil convient le mieux.
Utilisateurs
- Ingénieurs en apprentissage automatique
- Chercheurs en interprétabilité
- Ingénieurs applicatifs avec des modèles en production
Tâches
- Déboguer une prédiction erronée
- Vérifier si le modèle a appris des raccourcis
- Comparer neurones et couches
- Auditer les données d'entraînement
Cas d'usage
- Préparer un modèle pour une revue
- Recherche sur les grands modèles de langage
- Tester la résistance avant une mise en production
Fonctionnalités clés
Algorithmes d'attribution
Captum classe ses méthodes en deux familles, celles fondées sur les gradients et celles fondées sur les perturbations. Côté gradients, on trouve Saliency, InputXGradient, IntegratedGradients, DeepLift, GradientShap, GuidedBackprop et Guided GradCam ; côté perturbations, FeatureAblation, Occlusion, ShapleyValueSampling et Lime. Réunir les deux familles au même endroit permet de recouper un résultat : quand une méthode de gradient et une méthode de perturbation désignent les mêmes pixels, l'attribution des variables gagne en solidité et vous arrivez en réunion de débogage de modèles avec une explication précise plutôt qu'une impression.
Attribution par neurone et par couche
L'attribution de variables indique ce que le modèle a regardé. L'attribution par neurones et par couches indique où cela s'est joué dans le réseau. LayerConductance, LayerIntegratedGradients, LayerLRP et leurs équivalents par neurone notent les activations d'une couche choisie, ce qui permet de remonter d'une prédiction ratée jusqu'à un point précis de l'architecture.
Enveloppes pour l'attribution sur les LLM
LLMAttribution et LLMGradientAttribution adaptent les algorithmes existants aux séquences de jetons des modèles de langage de type Hugging Face. Ils indiquent quels jetons du message ont influencé la réponse générée, et vous pouvez regrouper ces jetons en mots ou en phrases avant de les noter. L'attribution sur un LLM coûte plus qu'une seule passe avant, il vaut donc mieux anticiper le coût d'inférence.
Analyse des concepts et de l'influence
Le module de concepts implémente TCAV, qui vérifie si un concept comme les rayures ou la fourrure compte pour une classe en entraînant un petit classifieur sur les activations. Le module d'influence ajoute TracIn et d'autres estimateurs pour savoir quels exemples d'entraînement ont façonné une prédiction. Les deux visent des travaux de recherche, pas des vérifications rapides.
Tests de robustesse
Le module de robustesse fournit FGSM, PGD, AttackComparator et MinParamPerturbation. Vous pouvez générer des exemples adverses, comparer des attaques côte à côte et chercher la plus petite perturbation qui change une étiquette. L'association avec l'attribution est naturelle : une variable qui résiste à la fois au contrôle par gradients et à celui par attaques constitue une conclusion plus solide.
Métriques de qualité des explications
Les métriques d'infidélité et de sensibilité estiment la fiabilité d'un ensemble d'attributions. Au lieu de faire confiance à une carte de chaleur parce qu'elle paraît raisonnable, vous mesurez l'écart entre l'explication et le modèle quand les entrées sont perturbées, puis vous comparez les algorithmes sur le même échantillon.
Avantages et inconvénients
Avantages
- Aucune modification du modèle : la plupart des algorithmes acceptent n'importe quel `nn.Module` PyTorch tel quel, sans réentraînement ni restructuration du réseau pour l'expliquer.
- Large couverture d'algorithmes : plus de soixante classes d'attribution exportées, de Saliency à LRP en passant par les valeurs de Shapley et TCAV, toutes accessibles par le même chemin d'importation.
- Résultats vérifiables : IntegratedGradients renvoie un delta de convergence et la bibliothèque inclut des métriques d'infidélité et de sensibilité, donc les explications se contrôlent au lieu de se supposer.
- Multimodal par conception : la même API traite des tenseurs d'images, des entrées de texte par jetons, de l'audio et des séries temporelles, ce qui garde un style de code unique d'un projet à l'autre.
- Gratuit sous licence permissive : la BSD 3 Clause autorise l'usage dans du code commercial sans demander l'accord de quiconque.
Inconvénients
- Courbe d'apprentissage raide : choisir parmi plus de quarante algorithmes suppose de comprendre ce que chacun postule, et la bibliothèque ne vous aide pas à trancher.
- Aucune interface visuelle : Captum Insights a été retiré après la version 0.8.0, il faut donc écrire ses propres graphiques pour voir quelque chose.
- Coût de calcul élevé sur certaines méthodes : les algorithmes de perturbation et l'attribution sur les LLM exécutent de nombreuses passes avant par échantillon, ce qui devient cher sur les gros modèles.
- PyTorch obligatoire : il n'existe pas d'enveloppe indépendante du framework pour ceux qui travaillent hors de l'univers PyTorch, et les sorties arrivent sous forme de tenseurs bruts. Les équipes sur TensorFlow ou JAX ne peuvent pas réutiliser leur code de modèle, et une personne qui ne programme pas en Python n'a aucun point d'entrée.
Questions fréquentes
Captum explique les prédictions des modèles PyTorch. Il mesure la contribution de chaque variable d'entrée, de chaque neurone et de chaque couche à une sortie, ce qui sert au débogage, à la revue de modèles et à la recherche sur la façon dont les réseaux décident.
Contenus associés
Découvrez des outils, des compétences et des articles liés à Captum · Model Interpretability for PyTorch.
Alternatives à Captum · Model Interpretability for PyTorch

Udon
Udon · Programmation · ProductivitéUdon transforme un Mac Apple Silicon en serveur personnel piloté depuis le navigateur, avec conteneurs, partages de fichiers et un administrateur système IA en option.

offstage
offstage cloud · Programmation · Productivitéoffstage confie aux agents IA et aux jobs de CI un vrai Mac : un compte macOS 27 sur Apple silicon, piloté par API et facturé à la seconde.
BotBus
Chengdu Tuyang Tusen Technology Co., Ltd. · Programmation · ProductivitéBotBus permet de contrôler des agents IA depuis son téléphone ou sa montre, même quand ils tournent sur l’ordinateur resté au bureau : vous validez les commandes, lancez des tâches et lisez les résultats.
