
Captum
Descripción general de Captum
Captum: Interpretabilidad de Modelos para PyTorch
¿Qué es Captum?
Captum es una biblioteca de código abierto y extensible para la investigación de la interpretabilidad de modelos en PyTorch. Proporciona herramientas para comprender y atribuir las predicciones de los modelos de PyTorch en diversas modalidades como la visión y el texto.
Características Clave
- Multi-Modal: Admite la interpretabilidad de modelos en diversas modalidades, incluyendo visión, texto y más.
- Construido sobre PyTorch: Admite la mayoría de los tipos de modelos de PyTorch y se puede usar con una modificación mínima de la red neuronal original.
- Extensible: Biblioteca genérica de código abierto para la investigación de la interpretabilidad. Implementa y compara fácilmente nuevos algoritmos.
¿Cómo empezar con Captum?
Instalar Captum:
- Vía conda (recomendado):
conda install captum -c pytorch
- Vía pip:
pip install captum
Crear y Preparar un Modelo:
El siguiente ejemplo demuestra cómo usar Captum con un ToyModel
simple:
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()
Para que los cálculos sean deterministas, fijemos las semillas aleatorias:
torch.manual_seed(123)
np.random.seed(123)
Definir los tensores de entrada y de línea base:
input = torch.rand(2, 3)
baseline = torch.zeros(2, 3)
- Seleccionar el Algoritmo para Instanciar y Aplicar:
Este ejemplo usa Integrated Gradients:
ig = IntegratedGradients(model)
attributions, delta = ig.attribute(input, baseline, target=0, return_convergence_delta=True)
print('IG Attributions:', attributions)
print('Convergence Delta:', delta)
Resultado:
IG Attributions: tensor([[-0.5922, -1.5497, -1.0067],
[ 0.0000, -0.2219, -5.1991]])
Convergence Delta: tensor([2.3842e-07, -4.7684e-07])
¿Por qué es importante Captum?
La interpretabilidad del modelo es crucial para comprender cómo los modelos de AI llegan a sus decisiones. Captum ayuda a los investigadores y profesionales a obtener información sobre el comportamiento del modelo, lo cual es esencial para depurar, mejorar y generar confianza en los sistemas de AI.
¿Dónde puedo usar Captum?
Captum se puede usar en varias aplicaciones, incluyendo:
- Clasificación de Imágenes: Comprender qué píxeles contribuyen más a la predicción de un modelo.
- Clasificación de Texto: Identificar las palabras o frases clave que impulsan el análisis de sentimiento de un modelo.
- Otros Modelos de PyTorch: Interpretar cualquier modelo de PyTorch con modificaciones mínimas.
Mejores herramientas alternativas a "Captum"

Desarrolle, entrene y escale modelos de IA en una nube. Active GPU bajo demanda con GPU Cloud, escale la inferencia de ML con Serverless.

MONAI es un framework de IA de código abierto para imágenes médicas, que impulsa la innovación al unir la investigación y la implementación clínica. Con la confianza de investigadores y médicos.

Treppan Technologies: la startup de IA líder en Uganda en 2024, que ofrece desarrollo de IA, consultoría y servicios de chatbot. Desbloquee posibilidades con su experiencia.

Weights & Biases es la plataforma líder de desarrollo de IA para entrenar y ajustar modelos, gestionar modelos y rastrear y evaluar aplicaciones GenAI.

fast.ai proporciona cursos prácticos de aprendizaje profundo, herramientas de software como fastai para PyTorch y nbdev, y un libro, centrándose en hacer que las redes neuronales sean accesibles.

Plataforma de entrenamiento de aprendizaje profundo de código abierto con ajuste de hiperparámetros y entrenamiento distribuido incorporados para modelos más rápidos y mejores.