Skip to content

Commit

Permalink
增加 大模型可解释性
Browse files Browse the repository at this point in the history
  • Loading branch information
wqw547243068 committed Jan 19, 2025
1 parent a6bb4e2 commit 2200930
Showing 1 changed file with 133 additions and 0 deletions.
133 changes: 133 additions & 0 deletions _posts/2021-02-03-ml-explanation.md
Original file line number Diff line number Diff line change
Expand Up @@ -145,6 +145,139 @@ However, they also found that self-explanation can harm the model’s accuracy
Read the full article on TechTalks.
- ![](https://i0.wp.com/bdtechtalks.com/wp-content/uploads/2023/10/chatgpt-self-explain.jpg?w=1392&ssl=1)


### GPT-4 解释神经元

要研究 AI 的“可解释性”,理论上要先了解大模型的各个神经元在做什么。

这个工作本应由人类手动检查,弄清神经元所代表的数据特征
- 参数量少还算可行,可如今动辄百亿、千亿级参数的神经网络,这工作量显然“离谱”。

于是,OpenAI 灵机一动:或许,可以用“魔法”打败“魔法”?
- “用 GPT-4 为大型语言模型中的神经元行为**自动编写解释**,并为这些解释**打分**。”
- 而 GPT-4 首次解释的对象是 GPT-2,一个 OpenAI 发布于 4 年前、神经元数量超过 30 万个的开源大模型。

【2023-5-9】OpenAI 用 GPT-4 去解释 GPT-2
- 官方宣传 [Language models can explain neurons in language models](https://openai.com/research/language-models-can-explain-neurons-in-language-models)
- 文章: [Language models can explain neurons in language models](https://openaipublic.blob.core.windows.net/neuron-explainer/paper/index.html)
- 国内解读:[OpenAI 最新“神”操作:让 GPT-4 去解释 GPT-2 的行为](https://36kr.com/p/2252787411283843)
- 官方 [demo](https://openaipublic.blob.core.windows.net/neuron-explainer/neuron-viewer/index.html), 在线展示每层神经元功能
- [Automated interpretability](https://github.com/openai/automated-interpretability)

方法
- Given a GPT-2 neuron, generate an explanation of its behavior by showing relevant text sequences and activations to GPT-4.
- 给定 GPT-2 神经元, 展示相关文本序列及激活状态
- GPT-4 生成神经元功能解释

Model-generated explanation:
- references to movies, characters, and entertainment.

GPT-4 “解释” GPT-2 的过程,整体分为三个步骤。
- (1)让 GPT-4 生成解释
- 给定 GPT-2 神经元,向 GPT-4 展示相关文本序列和激活单词,产生行为解释。
- GPT-4 对 GPT-2 该神经元生成的解释为:与电影、人物和娱乐有关。
- (2)再用 GPT-4 模拟被解释的神经元会做什么。
- (3)比较 GPT-4 `模拟神经元`的结果与 GPT-2 `真实神经元`的结果,根据匹配程度对 GPT-4 解释进行**评分**
- 示例中,GPT-4 得分为 0.34。
- OpenAI 共让 GPT-4 解释了 GPT-2 中的 **307200** 个神经元,其中大多数解释的得分很低,只有超过 1000 个神经元的解释得分高于 0.8。

![](https://img.36krcdn.com/hsossms/20230511/v2_6ad07df8cb6d456d956dddd5e22ad343@5888275_oswg314826oswg1080oswg598_img_000?x-oss-process=image/format,jpg/interlace,1)

![](https://img.36krcdn.com/hsossms/20230511/v2_5a037ec24de64bfb8cfcfb32fb5ef71b@5888275_oswg304212oswg1080oswg640_img_000?x-oss-process=image/format,jpg/interlace,1)

![](https://img.36krcdn.com/hsossms/20230511/v2_00d5d8f520064baabb24d0e8e25bc8d6@5888275_oswg539098oswg1080oswg1046_img_000?x-oss-process=image/format,jpg/interlace,1)


观点
- 每个神经元完成特定功能
- 层次越浅,功能越单一;
- 层数越高,概念越抽象
- 论文: 小模型中关闭特定功能神经元(识别语法),模型特定能力丧失,但大模型依然存在

OpenAI 承认目前 GPT-4 生成的解释并不完美,尤其在解释比 GPT-2 规模更大的模型时,效果更是不佳:“可能是因为后面的 layer 更难解释。”
- GPT-4 给出解释总是**很简短**,但神经元可能有着非常复杂的行为,不能简洁描述。
- 当前方法只解释了**神经元行为**,并没有涉及下游影响,希望最终能自动化找到并解释能实现复杂行为的整个神经回路。
- 只解释了神经元行为,并没有解释产生这种行为的**背后机制**
- 整个过程都是相当密集的计算,算力消耗很大。

三种提高解释得分的方法:
- 对解释进行迭代,通过让 GPT-4 想出可能的反例,根据其激活情况修改解释来提高分数。
- 使用更大的模型来进行解释,平均得分也会上升。
- 调整被解释模型的结构,用不同的激活函数训练模型。


### CRATE 白盒 Transformer


【2023-11-30】[「GPT-4只是在压缩数据」,马毅团队造出白盒Transformer,可解释的大模型要来了吗?](https://mp.weixin.qq.com/s/ErrCWbz8zDqSYkC9DH79Mg)

伯克利和香港大学的`马毅`教授领导的一个研究团队给出了自己的最新研究结果:
> 包括 GPT-4 在内的当前 AI 系统所做的正是压缩。
提出的新深度网络架构 CRATE,通过数学方式验证了这一点。
- CRATE 是一种**白盒 Transformer**,其不仅能在几乎所有任务上与**黑盒 Transformer** 相媲美,而且还具备非常出色的**可解释性**

### Anthropic 可解释性

【2023-12-1】[Anthropic训练AI拆解LLM黑箱,意外看到了大模型的"灵魂"](https://www.toutiao.com/article/7307507246940914191)

Anthropic可解释性团队论文讲述了通过训练一个新模型去理解一个简单模型的方法。
- [Towards Monosemanticity: Decomposing Language Models With Dictionary Learning](https://transformer-circuits.pub/2023/monosemantic-features/index.html#phenomenology-fsa), 包含交互可视化

新模型能准确地预测和理解原本模型中神经元的工作原理和组成机制。
- 训练了一个非常简单的512神经元AI来预测文本
- 然后训练另一个名为「自动编码器」的AI来预测第一个AI的激活模式。
- 自动编码器被要求构建一组特征(对应更高维度AI中的神经元数量),并预测这些特征如何映射到真实AI中的神经元。
- 尽管原始AI中的神经元本身不易理解,但是新的AI中的这些模拟神经元(也就是「特征」)是单义的,每特征都表示一个指定的概念或功能。

Anthropic发表的一项研究声称能够看到了人工智能的灵魂: 成功分解了一个模拟AI系统中的抽象高维特征空间。

### OpenAI: Transformer Debugger

【2023-5-12】[OpenAI官宣开源Transformer Debugger!不用写代码,人人可以破解LLM黑箱](https://mp.weixin.qq.com/s/RSFvSXUBKOy59zFV79k1BQ)
- 2023年5月,OpenAI团队发布令人震惊的发现:GPT-4竟可以解释GPT-2的三十万神经元!
- 【2024-3-12】OpenAI 超级对齐团队负责人开源内部一直使用的大杀器——`Transformer调试器`[Transformer Debugger](https://github.com/openai/transformer-debugger))。
- [论文地址](https://openaipublic.blob.core.windows.net/neuron-explainer/paper/index.html#sec-intro)

功能
- 用TDB工具分析Transformer的内部结构,从而对小模型的特定行为进行调查。
- TDB能支持神经元和注意力头,所以就可通过消融单个神经元来干预前向传递,并观察发生的具体变化。
- 不用写代码,就能快速探索LLM的内部构造

Transformer调试器将稀疏自动编码器,与OpenAI开发的「自动可解释性」——即用大模型自动解释小模型,技术相结合。

可以回答
- 为什么模型会输出token A而不是token B
- 为什么注意力头H会关注token T


### Patchscopes

【2024-1-12】[开箱黑盒LLM!谷歌大一统框架Patchscopes实战教程来了](https://zhuanlan.zhihu.com/p/694089284)
- 使用LLMs来提供有关模型本身内部隐藏表征的自然语言解释。
- [Patchscopes: A Unifying Framework for Inspecting Hidden Representations of Language Models](https://arxiv.org/pdf/2401.06102.pdf)

Patchscopes统一并扩展了现有的可解释性技术,能够让模型回答出之前无法解决的问题,比如模型可以说出关于「LLM的隐藏表征如何捕捉模型输入中含义的细微差别」的见解和想法,从而帮助开发人员更容易地修复某些特定类型的推理错误。
- ![](https://pic2.zhimg.com/80/v2-ee9797761eeb4c710eb60049fdd8cfad_1440w.webp)


### COAR

【2024-4-17】 MIT
- [Decomposing and Editing Predictions by Modeling Model Computation](https://arxiv.org/pdf/2404.11534)

“组件建模”任务,回答机器学习模型**如何将输入转化为预测**的内部计算过程。

组件建模目标:将ML模型的预测分解为其组成部分,即简单函数(例如卷积滤波器、注意力头),这些函数是模型计算的“构建块”。

组件归因估计单个组件对给定预测的反事实影响。然后,提出可扩展的算法`COAR`,用于估计组件归因;

展示了其在模型、数据集和模态方面的有效性。

最后,展示了使用COAR直接实现模型编辑的五个任务,即修复模型错误、“遗忘”特定类别、提高子人群的鲁棒性、定位后门攻击和提高对印刷攻击的鲁棒性。
- [COAR](https://github.com/MadryLab/modelcomponents)


## 可解释性工具

【2022-8-23】[6个顶级的可解释AI (XAI)的Python框架推荐](https://www.toutiao.com/article/7125604710991593988)
Expand Down

0 comments on commit 2200930

Please sign in to comment.