【李宏毅机器学习2025春】笔记——3.语言模型内部运作机制剖析
03 大型语言模型内部运作机制
目录
- 1.一个神经元在做什么
- 1.1 什么是神经元
- 1.2 基本过程
- 1.3 如何确定一个神经元在做什么
- 1.4 单一神经元一般不负责具体任务
- 2.一层神经元在做什么
- 2.1 功能向量
- 2.2 如何找出功能向量
- 2.3 如何验证找出的向量
- 2.4 如何一次性找出大量功能向量
- 3.一群神经元在做什么
- 3.1 语言模型的模型
- 3.2 如何系统化建立语言模型的模型
- 4.让语言模型直接说出想法
- 4.1 语言模型的思维是透明的
- 4.2 Residual Stream
1.一个神经元在做什么
1.1什么是神经元
- 在Transformer中,对于输入的token sequence(z1到zt-1),ai会通过特定的function来预测zt,输出概率分布.

1.2 基本过程
-
Transformer内部基本构造如下,首先会把token sequence转化为vector sequence,每个token对应一个向量,这个转化过程称为
Embedding
最后一层的最后一个向量会被用于产生概率分布,这个过程称为Unembedding

-
Transformer中只处理单一token的layer原理如下,输出向量的每一个dimension都由输入向量所有数值进行weighted sum,再经过一个activation fuction(一般用ReLU)得到输出.输出向量的每一个数值就叫一个神经元(
neuron)的输出,其中间的转换就叫作一个神经元neuron

1.3 如何确定一个神经元在做什么
一般有三个步骤:
- 若观察到某个行为发生时,某个神经元都会启动(经过ReLU后输出大于0),则能说明该行为可能与这个神经元有关. (区别因果关系和相关关系)
- 若移除该神经元(输出值设为其所有情况输出的平均值),该模型就不产生某种行为,也可以说该行为与这个神经元有关(输出不能设为0,设为0可能导致其他神经元启动)
- 根据不同启动程度来观察某种行为的执行程度

1.4 单一神经元一般不负责具体任务
- 若一个神经元对应一个任务,所能实现的功能十分有限,一般是多个神经元共同负责一个任务. 假设有4096个神经元,即使神经元只有开关特性,也仍然有24096种可能性,十分可观

2.一层神经元在做什么
2.1 功能向量
- 当模型执行某个功能时,启动的神经元的数值排列起来可以视为一个向量,称为功能向量. 设第n层layer的输出(
Representation)负责该功能,当representation与功能向量越接近,越可能执行该功能

2.2 如何找出功能向量
- 以找出拒绝向量为例.在拒绝情况下,输出为拒绝向量+其他向量(不做xx),而在同意情况下,输出为同意向量+其他向量.将二者平均值的一半相减,即可抵消其他向量,并可能得到拒绝向量

2.3 如何验证找出的向量
- 仍以拒绝向量为例.把找出的向量加到对应的representation上,若正常的问题模型反而输出为拒绝,则该向量很可能带有拒绝功能

2.4 如何一次找出大量的功能向量
-
一个representation(图中h)可以看作是功能向量(图中v)的线性组合(
Linear Combination)再加非功能向量的部分(图中e)

-
我们希望h向量尽量只与功能向量v有关,所有非功能向量e越小越好,给定Loss Function(如图第一项). 可以通过假定每个向量Vk在第k维是1,其他均为0,然后通过线性组合使得每一个e都是零向量,使得Loss最小. 但这种方法使得单个功能向量负责某件特定事项,问题变为复杂(与单个神经元负责单项任务类似).因而我们优化Loss Function,我们希望每次选择的功能向量尽量少,即α\alphaα尽量为0,如图第二项. 可以用SAE(
Sparse Auto-Encoder)的方法求解.

3. 一群神经元在做什么
3.1 语言模型的模型
-
虽然语言模型本身即为模型,但其本身还是十分复杂,需引入模型的模型来方便解析,其保有原事物特征的衡量又叫作
Faithfulness

-
以下图的prompt为例,主语得到一个representation(x),再从is located in这个关联性词汇会产生一个Linear Function(即矩阵W和向量b),再与x进行组合得到y,再unembedding就能得到输出

3.2 如何系统化建立语言模型的模型
- 把语言模型不断做
Purning来简化模型(如移除几个自注意力层、移除某几个神经元等),简化到一目了然且目标任务不变,即给定输入能给出需要的输出,这样就建立了"模型的模型"(Circuit)

4.让语言模型直接说出想法
4.1语言模型的思维是透明的
- 在每一层layer中得到一排输出时,还会与原本的输出再加起来才得到最终的输出,称作
Residual Connection

4.2 Residual Stream
-
在如图右侧的流程图中,可以直观地感受到输入一路传递到输出,每层layer只是给输入加一部分内容,这个过程叫作
Residual Stream.未经过最后一步softmax得出来的几率分布图叫作Logit Lens

-
如图,每一个加入residual stream的这些向量(V2-VD)都可以通过unembedding转化成一个token的distribution. 这就使得类神经网络编辑称为可能,对于某个问题的答案,可以减去其对应的token embedding,再加入所需的token embedding

-
将每层最后位置的representation进行解析,这种方法称为
Patchscope

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐


所有评论(0)