
Captum
Vue d'ensemble de Captum
Captum : Interprétabilité des modèles pour PyTorch
Qu’est-ce que Captum ?
Captum est une bibliothèque open source et extensible pour la recherche sur l’interprétabilité des modèles dans PyTorch. Elle fournit des outils pour comprendre et attribuer les prédictions des modèles PyTorch à travers diverses modalités comme la vision et le texte.
Principales caractéristiques
- Multimodal: Prend en charge l’interprétabilité des modèles à travers des modalités incluant la vision, le texte et plus encore.
- Basée sur PyTorch: Prend en charge la plupart des types de modèles PyTorch et peut être utilisée avec une modification minimale du réseau neuronal d’origine.
- Extensible: Bibliothèque générique open source pour la recherche sur l’interprétabilité. Implémentez et comparez facilement de nouveaux algorithmes.
Comment démarrer avec Captum ?
Installer Captum:
- Via conda (recommandé) :
conda install captum -c pytorch
- Via pip :
pip install captum
Créer et préparer un modèle:
L’exemple suivant montre comment utiliser Captum avec un simple ToyModel
:
import numpy as np
import torch
import torch.nn as nn
from captum.attr import IntegratedGradients
class ToyModel(nn.Module):
def __init__(self):
super().__init__()
self.lin1 = nn.Linear(3, 3)
self.relu = nn.ReLU()
self.lin2 = nn.Linear(3, 2)
# initialize weights and biases
self.lin1.weight = nn.Parameter(torch.arange(-4.0, 5.0).view(3, 3))
self.lin1.bias = nn.Parameter(torch.zeros(1,3))
self.lin2.weight = nn.Parameter(torch.arange(-3.0, 3.0).view(2, 3))
self.lin2.bias = nn.Parameter(torch.ones(1,2))
def forward(self, input):
return self.lin2(self.relu(self.lin1(input)))
model = ToyModel()
model.eval()
Pour rendre les calculs déterministes, corrigeons les graines aléatoires :
torch.manual_seed(123)
np.random.seed(123)
Définir les tenseurs d’entrée et de référence :
input = torch.rand(2, 3)
baseline = torch.zeros(2, 3)
- Sélectionner l’algorithme à instancier et à appliquer:
Cet exemple utilise les gradients intégrés :
ig = IntegratedGradients(model)
attributions, delta = ig.attribute(input, baseline, target=0, return_convergence_delta=True)
print('IG Attributions:', attributions)
print('Convergence Delta:', delta)
Sortie :
IG Attributions: tensor([[-0.5922, -1.5497, -1.0067],
[ 0.0000, -0.2219, -5.1991]])
Convergence Delta: tensor([2.3842e-07, -4.7684e-07])
Pourquoi Captum est-il important ?
L’interprétabilité des modèles est cruciale pour comprendre comment les modèles d’AI prennent leurs décisions. Captum aide les chercheurs et les praticiens à mieux comprendre le comportement des modèles, ce qui est essentiel pour déboguer, améliorer et renforcer la confiance dans les systèmes d’AI.
Où puis-je utiliser Captum ?
Captum peut être utilisé dans diverses applications, notamment :
- Classification d’images: Comprendre quels pixels contribuent le plus à la prédiction d’un modèle.
- Classification de texte: Identifier les mots ou expressions clés qui motivent l’analyse des sentiments d’un modèle.
- Autres modèles PyTorch: Interpréter n’importe quel modèle PyTorch avec des modifications minimales.
Meilleurs outils alternatifs à "Captum"

MONAI est un framework d'IA open source pour l'imagerie médicale, qui favorise l'innovation en reliant la recherche et le déploiement clinique. Approuvé par les chercheurs et les cliniciens.

Treppan Technologies : la principale startup d'IA en Ouganda en 2024, offrant des services de développement d'IA, de consultation et de chatbot. Débloquez des possibilités grâce à leur expertise.

Weights & Biases est la principale plateforme de développement d'IA pour entraîner et affiner les modèles, gérer les modèles et suivre et évaluer les applications GenAI.

Développez, entraînez et mettez à l'échelle des modèles d'IA dans un seul cloud. Lancez des GPU à la demande avec GPU Cloud, mettez à l'échelle l'inférence ML avec Serverless.

fast.ai propose des cours pratiques d'apprentissage profond, des outils logiciels comme fastai pour PyTorch et nbdev, et un livre, en se concentrant sur la facilitation de l'accès aux réseaux neuronaux.

Plateforme d'entraînement d'apprentissage profond open source avec réglage d'hyperparamètres et entraînement distribué intégrés pour des modèles plus rapides et meilleurs.