Project Icon

inspectus

机器学习可视化利器 助力深度模型解析

Inspectus是一个为机器学习设计的可视化工具,集成于Jupyter笔记本环境。通过Python API,它提供注意力机制可视化功能,包括注意力矩阵、查询令牌热图等,有助于理解模型内部运作。工具还支持数据分布分析和异常检测,可用于Hugging Face模型及自定义注意力图。Inspectus致力于简化机器学习模型的分析过程,为研究和开发提供支持。

PyPI - Python 版本 PyPI 状态 Twitter

Inspectus

Inspectus 是一个多功能的机器学习可视化工具。它通过易用的 Python API 在 Jupyter 笔记本中流畅运行。

内容

安装

pip install inspectus

注意力可视化

Inspectus 为深度学习模型中的注意力机制提供可视化工具。 它提供了一套全面的视图,使理解这些模型的工作原理变得更加容易。

预览

注意力可视化

点击一个标记可选择它并取消选择其他标记。再次点击将重新选择所有标记。 要仅改变一个标记的状态,请按住 Shift 键点击

组件

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

查询标记热力图: 显示每个查询与所选键标记之间的注意力分数总和。

键标记热力图: 显示每个键与所选查询标记之间的注意力分数总和。

维度热力图: 显示维度(层和头)中每个项目的注意力分数总和,在维度上进行归一化。

使用方法

导入库

import inspectus

简单使用

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

对于不同的查询和键标记

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

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

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

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

在 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: A visualization and analytics tool for large language models},
 year = {2024},
 url = {https://github.com/labmlai/inspectus},
}
项目侧边栏1项目侧边栏2
推荐项目
Project Cover

豆包MarsCode

豆包 MarsCode 是一款革命性的编程助手,通过AI技术提供代码补全、单测生成、代码解释和智能问答等功能,支持100+编程语言,与主流编辑器无缝集成,显著提升开发效率和代码质量。

Project Cover

AI写歌

Suno AI是一个革命性的AI音乐创作平台,能在短短30秒内帮助用户创作出一首完整的歌曲。无论是寻找创作灵感还是需要快速制作音乐,Suno AI都是音乐爱好者和专业人士的理想选择。

Project Cover

有言AI

有言平台提供一站式AIGC视频创作解决方案,通过智能技术简化视频制作流程。无论是企业宣传还是个人分享,有言都能帮助用户快速、轻松地制作出专业级别的视频内容。

Project Cover

Kimi

Kimi AI助手提供多语言对话支持,能够阅读和理解用户上传的文件内容,解析网页信息,并结合搜索结果为用户提供详尽的答案。无论是日常咨询还是专业问题,Kimi都能以友好、专业的方式提供帮助。

Project Cover

阿里绘蛙

绘蛙是阿里巴巴集团推出的革命性AI电商营销平台。利用尖端人工智能技术,为商家提供一键生成商品图和营销文案的服务,显著提升内容创作效率和营销效果。适用于淘宝、天猫等电商平台,让商品第一时间被种草。

Project Cover

吐司

探索Tensor.Art平台的独特AI模型,免费访问各种图像生成与AI训练工具,从Stable Diffusion等基础模型开始,轻松实现创新图像生成。体验前沿的AI技术,推动个人和企业的创新发展。

Project Cover

SubCat字幕猫

SubCat字幕猫APP是一款创新的视频播放器,它将改变您观看视频的方式!SubCat结合了先进的人工智能技术,为您提供即时视频字幕翻译,无论是本地视频还是网络流媒体,让您轻松享受各种语言的内容。

Project Cover

美间AI

美间AI创意设计平台,利用前沿AI技术,为设计师和营销人员提供一站式设计解决方案。从智能海报到3D效果图,再到文案生成,美间让创意设计更简单、更高效。

Project Cover

AIWritePaper论文写作

AIWritePaper论文写作是一站式AI论文写作辅助工具,简化了选题、文献检索至论文撰写的整个过程。通过简单设定,平台可快速生成高质量论文大纲和全文,配合图表、参考文献等一应俱全,同时提供开题报告和答辩PPT等增值服务,保障数据安全,有效提升写作效率和论文质量。

投诉举报邮箱: service@vectorlightyear.com
@2024 懂AI·鲁ICP备2024100362号-6·鲁公网安备37021002001498号