inspectus
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 将黑盒般的注意力机制转化为透明的视觉语言,让开发者从繁琐的数据清洗中解放出来,专注于模型逻辑的本质优化。
运行环境要求
- 未说明
未说明
未说明

快速开始
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 教程
自定义注意力图
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'])
在此查看笔记本:自定义注意力图教程
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 示例
分布图
分布图是一种展示一系列数据分布情况的图表。在每一步中,都会计算数据的分布,并从 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)]})
为了聚焦于图表的特定部分并放大显示,可以使用小地图。若要选择单个图表,可使用右上角的图例。
有关完整的使用指南,请参阅此笔记本:分布图教程
示例用法
该图表可用于识别数据中的异常值。以下笔记本展示了如何使用分布图来识别 MNIST 训练损失中的异常值。
开发环境搭建
引用
如果您在学术研究中使用 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),即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你
stable-diffusion-webui
stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面,旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点,将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。 无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师,还是想要深入探索模型潜力的开发者与研究人员,都能从中获益。其核心亮点在于极高的功能丰富度:不仅支持文生图、图生图、局部重绘(Inpainting)和外绘(Outpainting)等基础模式,还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外,它内置了 GFPGAN 和 CodeFormer 等人脸修复工具,支持多种神经网络放大算法,并允许用户通过插件系统无限扩展能力。即使是显存有限的设备,stable-diffusion-webui 也提供了相应的优化选项,让高质量的 AI 艺术创作变得触手可及。
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 真正成长为懂上
ComfyUI
ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎,专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式,采用直观的节点式流程图界面,让用户通过连接不同的功能模块即可构建个性化的生成管线。 这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景,也能自由组合模型、调整参数并实时预览效果,轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性,不仅支持 Windows、macOS 和 Linux 全平台,还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构,并率先支持 SDXL、Flux、SD3 等前沿模型。 无论是希望深入探索算法潜力的研究人员和开发者,还是追求极致创作自由度的设计师与资深 AI 绘画爱好者,ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能,使其成为当前最灵活、生态最丰富的开源扩散模型工具之一,帮助用户将创意高效转化为现实。
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 助手直接“阅读”本地文件的用户。虽然生成的内容也具备一定可读性,但其核心优势在于为机器
LLMs-from-scratch
LLMs-from-scratch 是一个基于 PyTorch 的开源教育项目,旨在引导用户从零开始一步步构建一个类似 ChatGPT 的大型语言模型(LLM)。它不仅是同名技术著作的官方代码库,更提供了一套完整的实践方案,涵盖模型开发、预训练及微调的全过程。 该项目主要解决了大模型领域“黑盒化”的学习痛点。许多开发者虽能调用现成模型,却难以深入理解其内部架构与训练机制。通过亲手编写每一行核心代码,用户能够透彻掌握 Transformer 架构、注意力机制等关键原理,从而真正理解大模型是如何“思考”的。此外,项目还包含了加载大型预训练权重进行微调的代码,帮助用户将理论知识延伸至实际应用。 LLMs-from-scratch 特别适合希望深入底层原理的 AI 开发者、研究人员以及计算机专业的学生。对于不满足于仅使用 API,而是渴望探究模型构建细节的技术人员而言,这是极佳的学习资源。其独特的技术亮点在于“循序渐进”的教学设计:将复杂的系统工程拆解为清晰的步骤,配合详细的图表与示例,让构建一个虽小但功能完备的大模型变得触手可及。无论你是想夯实理论基础,还是为未来研发更大规模的模型做准备
