首页 最新 热门 推荐

  • 首页
  • 最新
  • 热门
  • 推荐

HW7:Inseq 特征归因——可视化解释 LLM 的输出

  • 25-02-16 23:22
  • 3933
  • 8689
blog.csdn.net

目录

0 前言

1 安装和导入一些必要的库

2 可视化翻译任务

2.1 下载中译英模型

2.2 进行特征归因

3 可视化文本生成任务

3.1 下载GPT-2 XL模型

3.2 加载模型

3.3 进行特征归因

4 参考资料


0 前言

本文为李宏毅学习笔记——2024春《GENERATIVE AI》篇——作业笔记HW7。

如果你还没获取到LLM API,请查看我的另一篇笔记:

HW1~2:LLM API获取步骤及LLM API使用演示:环境配置与多轮对话演示-CSDN博客

完整内容参见:

李宏毅学习笔记——2024春《GENERATIVE AI》篇

Feature Attribution(特征归因):你可以将其当做对模型输出的解释,就像在图像分类中可视化模型关注的区域一样。

本文将介绍 Inseq,这是一个用于解释和可视化序列生成模型输出的工具。我们将通过翻译任务(关注整个序列)和文本生成任务(关注前面的词)来演示如何使用 Inseq 来了解输入文本的哪些部分对模型生成下一个单词的影响最大。

1 安装和导入一些必要的库

  1. pip install inseq
  2. pip install transformers
  3. pip install bitsandbytes
  4. pip install accelerate
  5. pip install sacremoses

2 可视化翻译任务

2.1 下载中译英模型

为了加快模型下载速度,我们可以使用多线程下载。如果直接运行以下命令报错,可以参考使用 HFD 加快 Hugging Face 模型和数据集的下载进行前置安装。

首先,下载 hfd.sh 脚本并赋予执行权限:

  1. wget https://hf-mirror.com/hfd/hfd.sh
  2. chmod a+x hfd.sh

然后,多线程下载模型:

  1. export HF_ENDPOINT=https://hf-mirror.com
  2. ./hfd.sh 'Helsinki-NLP/opus-mt-zh-en' --tool aria2c -x 16

2.2 进行特征归因

  1. import inseq
  2. # 定义要使用的归因方法列表
  3. attribution_methods = ['saliency', 'attention']
  4. for method in attribution_methods:
  5. print(f"======= 归因方法: {method} =======")
  6. # 加载中译英模型并设置归因方法
  7. # model = inseq.load_model("Helsinki-NLP/opus-mt-zh-en", method)
  8. model = inseq.load_model("opus-mt-zh-en", method) # 导入之前下载到本地的模型
  9. # 使用指定的归因方法对输入文本进行归因
  10. attribution_result = model.attribute(
  11. input_texts="我喜歡機器學習和人工智慧。",
  12. )
  13. # 从tokenizer中去除 '▁' 前缀以避免混淆(可以忽略这段代码)
  14. for attr in attribution_result.sequence_attributions:
  15. for item in attr.source:
  16. item.token = item.token.replace('▁', '')
  17. for item in attr.target:
  18. item.token = item.token.replace('▁', '')
  19. # 显示归因结果
  20. attribution_result.show()

Saliency 方法 通过计算输入对输出的梯度,衡量输入 token 对生成输出的影响程度。你可以看到生成的每个输出 token 是如何受到输入 token 的影响的,比如: I like 受 我喜欢 的影响最大。

Attention 方法 利用模型的注意力机制来进行解释,展示输入和输出 token 之间的注意力权重。

3 可视化文本生成任务

3.1 下载GPT-2 XL模型

同样地,我们使用多线程方法下载 GPT-2 XL 模型,如果只是为了查看的话,可以换成 GPT-2 下载,因为 GPT-2 XL 下载完需要占用 30G:

  1. export HF_ENDPOINT=https://hf-mirror.com
  2. ./hfd.sh 'gpt2-xl' --tool aria2c -x 16
  3. #./hfd.sh 'gpt2' --tool aria2c -x 16

3.2 加载模型

  1. from transformers import AutoModelForCausalLM, BitsAndBytesConfig
  2. # 创建一个 BitsAndBytesConfig 对象,用于配置量化选项
  3. bnb_config = BitsAndBytesConfig(load_in_8bit=True)
  4. model = AutoModelForCausalLM.from_pretrained(
  5. "gpt2-xl", # gpt2
  6. quantization_config=bnb_config,
  7. device_map={"": 0}
  8. )

3.3 进行特征归因

  1. import inseq
  2. # 定义要使用的归因方法列表
  3. attribution_methods = ['saliency', 'attention']
  4. for method in attribution_methods:
  5. print(f"======= 归因方法: {method} =======")
  6. # 使用指定的归因方法加载模型
  7. inseq_model = inseq.load_model(model, method)
  8. # 对输入文本进行归因分析
  9. attribution_result = inseq_model.attribute(
  10. input_texts="Hello world",
  11. step_scores=["probability"],
  12. )
  13. # 清理 tokenizer 中的特殊字符(可选)
  14. for attr in attribution_result.sequence_attributions:
  15. for item in attr.source:
  16. item.token = item.token.replace('Ġ', '')
  17. for item in attr.target:
  18. item.token = item.token.replace('Ġ', '')
  19. # 显示归因结果
  20. attribution_result.show()

Saliency 方法

Attention 方法

4 参考资料

  • Inseq 官方文档
注:本文转载自blog.csdn.net的笨笨sg的文章"https://blog.csdn.net/a131529/article/details/144314852"。版权归原作者所有,此博客不拥有其著作权,亦不承担相应法律责任。如有侵权,请联系我们删除。
复制链接
复制链接
相关推荐
发表评论
登录后才能发表评论和回复 注册

/ 登录

评论记录:

未查询到任何数据!
回复评论:

分类栏目

后端 (14832) 前端 (14280) 移动开发 (3760) 编程语言 (3851) Java (3904) Python (3298) 人工智能 (10119) AIGC (2810) 大数据 (3499) 数据库 (3945) 数据结构与算法 (3757) 音视频 (2669) 云原生 (3145) 云平台 (2965) 前沿技术 (2993) 开源 (2160) 小程序 (2860) 运维 (2533) 服务器 (2698) 操作系统 (2325) 硬件开发 (2491) 嵌入式 (2955) 微软技术 (2769) 软件工程 (2056) 测试 (2865) 网络空间安全 (2948) 网络与通信 (2797) 用户体验设计 (2592) 学习和成长 (2593) 搜索 (2744) 开发工具 (7108) 游戏 (2829) HarmonyOS (2935) 区块链 (2782) 数学 (3112) 3C硬件 (2759) 资讯 (2909) Android (4709) iOS (1850) 代码人生 (3043) 阅读 (2841)

热门文章

101
推荐
关于我们 隐私政策 免责声明 联系我们
Copyright © 2020-2025 蚁人论坛 (iYenn.com) All Rights Reserved.
Scroll to Top