inspectus

GitHub
709 33 非常简单 1 次阅读 昨天MIT语言模型开发框架
AI 解读 由 AI 自动生成,仅供参考

Inspectus 是一款专为机器学习设计的可视化工具,旨在帮助开发者直观地“看见”大语言模型(LLM)内部的注意力机制。在深度学习研究中,理解模型如何关注输入文本的不同部分往往如同面对黑盒,而 Inspectus 通过生成清晰的注意力矩阵、查询/键令牌热力图以及维度分布图,将抽象的张量数据转化为可交互的图形界面,有效解决了模型内部逻辑难以解读的痛点。

该工具特别适合 AI 研究人员、算法工程师以及需要在 Jupyter Notebook 中进行模型调试与教学的用户。其核心亮点在于极简的 Python API 设计,只需几行代码即可集成;同时原生支持 Hugging Face Transformers 模型,能直接解析并展示多层、多头注意力权重。用户可以在笔记本中点击特定令牌(Token),动态查看其在不同网络层和注意力头中的聚焦情况,甚至自定义注意力映射进行分析。无论是复现论文实验、调试模型异常,还是向学生演示 Transformer 的工作原理,Inspectus 都能提供流畅且深度的可视化体验,让复杂的模型决策过程变得透明易懂。

使用场景

某 NLP 算法工程师正在调试一个基于 GPT-2 的文本摘要模型,试图找出模型为何在生成关键信息时频繁出现“幻觉”或遗漏重点的问题。

没有 inspectus 时

  • 开发者只能面对高维的注意力张量(Tensor)打印出的枯燥数值矩阵,难以直观判断哪些词之间产生了关联。
  • 排查特定词汇(如“不”、“非”等否定词)的注意力分布时,需要手动编写复杂的 matplotlib 代码绘制热力图,效率极低。
  • 无法快速定位是模型的哪一层(Layer)或哪个注意力头(Head)导致了错误的聚焦,往往需要盲目调整超参数进行试错。
  • 在向团队汇报模型缺陷时,缺乏动态、可交互的可视化证据,沟通成本高昂且难以说服他人。

使用 inspectus 后

  • 直接在 Jupyter Notebook 中调用 inspectus.attention,即可生成包含注意力矩阵、查询/键令牌热力图的交互式仪表盘,一眼看清词与词的关联强度。
  • 点击任意 Token(如“不”),界面立即高亮显示其对所有其他词的关注度总和,秒级定位模型是否忽略了否定逻辑。
  • 通过维度热力图(Dimension Heatmap),迅速识别出具体是第几层的哪个注意力头出现了异常聚焦,从而针对性地优化模型结构。
  • 利用可交互的图表演示,能够动态展示模型“思考”过程,让团队成员直观理解错误根源,大幅缩短评审与迭代周期。

inspectus 将黑盒般的注意力机制转化为透明的视觉语言,让开发者从繁琐的数据清洗中解放出来,专注于模型逻辑的本质优化。

运行环境要求

操作系统
  • 未说明
GPU

未说明

内存

未说明

依赖
notes该工具主要通过 Python API 在 Jupyter Notebook 中运行。虽然示例代码使用了 PyTorch (torch) 和 Hugging Face Transformers,但这些主要是为了演示如何获取注意力矩阵,核心库 inspectus 本身似乎主要依赖 numpy 进行数据处理和可视化。具体的 Python 版本和操作系统未在提供的文本中明确限制,通常兼容主流 Python 3.x 环境。
python未说明
torch
transformers
numpy
inspectus hero image

快速开始

PyPI - Python Version PyPI Status Twitter

Inspectus

Inspectus 是一款功能强大的机器学习可视化工具。它通过简单易用的 Python API,在 Jupyter Notebook 中流畅运行。

目录

安装

pip install inspectus

注意力机制可视化

Inspectus 提供了用于深度学习模型中注意力机制的可视化工具。它包含一系列全面的视图,帮助用户更轻松地理解这些模型的工作原理。

预览

注意力机制可视化

点击某个 token 可以选中它并取消其他 token 的选中状态。再次点击则会重新选中所有 token。若只想改变单个 token 的状态,请按住 Shift 键再点击

组件

注意力矩阵: 可视化 token 之间的注意力分数,突出显示每个 token 在处理过程中如何关注其他 token。

查询 token 热力图: 展示每个查询 token 与选定键 token 之间注意力分数的总和。

键 token 热力图: 展示每个键 token 与选定查询 token 之间注意力分数的总和。

维度热力图: 展示各维度(层和头)中每个元素的注意力分数总和,并按维度进行归一化。

使用方法

导入库:

import inspectus

简单用法:

# attn: 注意力图;一个 2-4D 张量,或来自 Huggingface Transformers 的注意力图
inspectus.attention(attn, tokens)

对于不同的查询和键 token:

inspectus.attention(attns, query_tokens, key_tokens)

有关详细的 API 文档,请参阅官方文档

教程

Huggingface 模型

from transformers import AutoTokenizer, GPT2LMHeadModel, AutoConfig
import torch
import inspectus

# 初始化分词器和模型
context_length = 128
tokenizer = AutoTokenizer.from_pretrained("huggingface-course/code-search-net-tokenizer")

config = AutoConfig.from_pretrained(
    "gpt2",
    vocab_size=len(tokenizer),
    n_ctx=context_length,
    bos_token_id=tokenizer.bos_token_id,
    eos_token_id=tokenizer.eos_token_id,
)

model = GPT2LMHeadModel(config)

# 对输入文本进行分词
text= 'The quick brown fox jumps over the lazy dog'
tokenized = tokenizer(
    text,
    return_tensors='pt',
    return_offsets_mapping=True
)
input_ids = tokenized['input_ids']

tokens = [text[s: e] for s, e in tokenized['offset_mapping'][0]]

with torch.no_grad():
    res = model(input_ids=input_ids.to(model.device), output_attentions=True)

# 使用 Inspectus 库可视化注意力图
inspectus.attention(res['attentions'], tokens)

在此查看笔记本:Huggingface 教程 在 Colab 中打开

自定义注意力图

import numpy as np
import inspectus

# 表示查询和键 token 之间注意力值的 2D 注意力图
attn = np.random.rand(3, 3)

# 使用 Inspectus 库可视化注意力值
# 第一个参数是注意力矩阵
# 第二个参数是查询 token 列表
# 第三个参数是键 token 列表
inspectus.attention(arr, ['a', 'b', 'c'], ['d', 'e', 'f'])

在此查看笔记本:自定义注意力图教程

在 Colab 中打开

Token 可视化

该工具用于可视化与 token 相关的一些指标。它支持多种指标,可以通过下拉菜单选择要可视化的指标。除了指标之外,还可以为 token 添加额外的信息。

预览

Token 可视化

使用方法

import inspectus
inspectus.tokens(["Hello", " World", "!"], {
    'loss': [-7.375, -8.312, -7.5625],
    'entropy': [3.323, 1.0666, 0.432]
}, token_info=["info 1", "info 2", "info 3"])

在此查看笔记本:GPT2 示例 在 Colab 中打开

分布图

分布图是一种展示一系列数据分布情况的图表。在每一步中,都会计算数据的分布,并从 9 个基点中绘制最多 5 条带。(0, 6.68, 15.87, 30.85, 50.00, 69.15, 84.13, 93.32, 100.00)

预览

分布图可视化

使用方法

import inspectus

inspectus.distribution({'x': [x for x in range(0, 100)]})

为了聚焦于图表的特定部分并放大显示,可以使用小地图。若要选择单个图表,可使用右上角的图例。

有关完整的使用指南,请参阅此笔记本:分布图教程

在 Colab 中打开

示例用法

该图表可用于识别数据中的异常值。以下笔记本展示了如何使用分布图来识别 MNIST 训练损失中的异常值。

MNIST

在 Colab 中打开

开发环境搭建

开发文档

引用

如果您在学术研究中使用 Inspectus,请使用以下 BibTeX 条目引用该库。

@misc{inspectus,
 author = {Varuna Jayasiri, Lakshith Nishshanke},
 title = {inspectus:用于大型语言模型的可视化与分析工具},
 year = {2024},
 url = {https://github.com/labmlai/inspectus},
}

常见问题

相似工具推荐

openclaw

OpenClaw 是一款专为个人打造的本地化 AI 助手,旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚,能够直接接入你日常使用的各类通讯渠道,包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息,OpenClaw 都能即时响应,甚至支持在 macOS、iOS 和 Android 设备上进行语音交互,并提供实时的画布渲染功能供你操控。 这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地,用户无需依赖云端服务即可享受快速、私密的智能辅助,真正实现了“你的数据,你做主”。其独特的技术亮点在于强大的网关架构,将控制平面与核心助手分离,确保跨平台通信的流畅性与扩展性。 OpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者,以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力(支持 macOS、Linux 及 Windows WSL2),即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你

349.3k|★★★☆☆|2天前
Agent开发框架图像

stable-diffusion-webui

stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面,旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点,将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。 无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师,还是想要深入探索模型潜力的开发者与研究人员,都能从中获益。其核心亮点在于极高的功能丰富度:不仅支持文生图、图生图、局部重绘(Inpainting)和外绘(Outpainting)等基础模式,还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外,它内置了 GFPGAN 和 CodeFormer 等人脸修复工具,支持多种神经网络放大算法,并允许用户通过插件系统无限扩展能力。即使是显存有限的设备,stable-diffusion-webui 也提供了相应的优化选项,让高质量的 AI 艺术创作变得触手可及。

162.1k|★★★☆☆|3天前
开发框架图像Agent

everything-claude-code

everything-claude-code 是一套专为 AI 编程助手(如 Claude Code、Codex、Cursor 等)打造的高性能优化系统。它不仅仅是一组配置文件,而是一个经过长期实战打磨的完整框架,旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。 通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能,everything-claude-code 能显著提升 AI 在复杂任务中的表现,帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略,使得模型响应更快、成本更低,同时有效防御潜在的攻击向量。 这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库,还是需要 AI 协助进行安全审计与自动化测试,everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目,它融合了多语言支持与丰富的实战钩子(hooks),让 AI 真正成长为懂上

145.9k|★★☆☆☆|今天
开发框架Agent语言模型

ComfyUI

ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎,专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式,采用直观的节点式流程图界面,让用户通过连接不同的功能模块即可构建个性化的生成管线。 这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景,也能自由组合模型、调整参数并实时预览效果,轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性,不仅支持 Windows、macOS 和 Linux 全平台,还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构,并率先支持 SDXL、Flux、SD3 等前沿模型。 无论是希望深入探索算法潜力的研究人员和开发者,还是追求极致创作自由度的设计师与资深 AI 绘画爱好者,ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能,使其成为当前最灵活、生态最丰富的开源扩散模型工具之一,帮助用户将创意高效转化为现实。

108.1k|★★☆☆☆|今天
开发框架图像Agent

markitdown

MarkItDown 是一款由微软 AutoGen 团队打造的轻量级 Python 工具,专为将各类文件高效转换为 Markdown 格式而设计。它支持 PDF、Word、Excel、PPT、图片(含 OCR)、音频(含语音转录)、HTML 乃至 YouTube 链接等多种格式的解析,能够精准提取文档中的标题、列表、表格和链接等关键结构信息。 在人工智能应用日益普及的今天,大语言模型(LLM)虽擅长处理文本,却难以直接读取复杂的二进制办公文档。MarkItDown 恰好解决了这一痛点,它将非结构化或半结构化的文件转化为模型“原生理解”且 Token 效率极高的 Markdown 格式,成为连接本地文件与 AI 分析 pipeline 的理想桥梁。此外,它还提供了 MCP(模型上下文协议)服务器,可无缝集成到 Claude Desktop 等 LLM 应用中。 这款工具特别适合开发者、数据科学家及 AI 研究人员使用,尤其是那些需要构建文档检索增强生成(RAG)系统、进行批量文本分析或希望让 AI 助手直接“阅读”本地文件的用户。虽然生成的内容也具备一定可读性,但其核心优势在于为机器

93.4k|★★☆☆☆|2天前
插件开发框架

LLMs-from-scratch

LLMs-from-scratch 是一个基于 PyTorch 的开源教育项目,旨在引导用户从零开始一步步构建一个类似 ChatGPT 的大型语言模型(LLM)。它不仅是同名技术著作的官方代码库,更提供了一套完整的实践方案,涵盖模型开发、预训练及微调的全过程。 该项目主要解决了大模型领域“黑盒化”的学习痛点。许多开发者虽能调用现成模型,却难以深入理解其内部架构与训练机制。通过亲手编写每一行核心代码,用户能够透彻掌握 Transformer 架构、注意力机制等关键原理,从而真正理解大模型是如何“思考”的。此外,项目还包含了加载大型预训练权重进行微调的代码,帮助用户将理论知识延伸至实际应用。 LLMs-from-scratch 特别适合希望深入底层原理的 AI 开发者、研究人员以及计算机专业的学生。对于不满足于仅使用 API,而是渴望探究模型构建细节的技术人员而言,这是极佳的学习资源。其独特的技术亮点在于“循序渐进”的教学设计:将复杂的系统工程拆解为清晰的步骤,配合详细的图表与示例,让构建一个虽小但功能完备的大模型变得触手可及。无论你是想夯实理论基础,还是为未来研发更大规模的模型做准备

90.1k|★★★☆☆|2天前
语言模型图像Agent