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 captumCrear 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"
Defog.ai proporciona información de datos instantánea utilizando un LLM ajustado para el análisis de datos empresariales. Desarrollado por SQLCoder, ofrece capacidades precisas de texto a SQL y se integra con varias fuentes de datos. Con la confianza de los líderes de la industria.
Bethge Lab en la Universidad de Tübingen se centra en la investigación en IA, el aprendizaje automático y la comprensión de las representaciones cerebrales mediante redes neuronales.
Claude AI de Anthropic está diseñado para la fiabilidad, la interpretabilidad y la dirigibilidad. Explora Claude Opus y Sonnet para aplicaciones avanzadas de IA, codificación y agentes de IA.
GPTZero es un detector de IA gratuito y preciso para ChatGPT, GPT-5 y Gemini. Con la confianza de más de 10 millones de educadores, estudiantes y profesionales con una precisión del 99%.