LLM中间层计算:为何不涉+1位置激活?
激活向量在LLM 中间层的计算中,输出结果有没有+1位置进行计算
目录
- 激活向量在LLM 中间层的计算中,输出结果有没有+1位置进行计算
- 一步步推演:生成第7个输出字的全过程
- 第1轮:生成第1个输出字
- 第2轮:生成第2个输出字
- 第3轮:生成第3个输出字
- 第4~6轮:以此类推
- 第7轮:生成第7个输出字(就是你问的场景)
- 一句话总结
- 分场景详细说明
- 1. 自注意力层:因果掩码严格屏蔽“+1及以后位置”
- 2. 位置编码:索引按+1递增,但不在中间层做偏移
- 3. 容易混淆的“位置+1”场景(不属于中间层激活计算)
- 4. 例外:非因果编码器模型
我们用“模型逐字造句”的生活化例子来讲,全程只记一条核心规则:
模型只能看见已经给它的字,靠最后一个字的计算结果,猜出下一个字。
一步步推演:生成第7个输出字的全过程
我们把每一轮的「输入内容」「中间层数据」「输出结果」对应清楚:
第1轮:生成第1个输出字
- 输入给模型:只有1个“开始标记”(相当于告诉模型“可以造句了”)
- 中间层数据:只有1份(对应这个开始标记)
- 模型输出:第1个字,比如“我”
第2轮:生成第2个输出字
- 把刚生成的“我”拼回输入,现在输入共2个内容:开始标记、我
- 中间层数据:有2份(分别对应开始标记、“我”)
- 模型输出:第2个字,比如“今”
第3轮:生成第3个输出字
- 输入变成:开始标记、我、今(共3个)
- 中间层数据:有3份
- 模型输出:第3个字,比如“天”
第4~6轮:以此类推
每一轮都把上一轮的输出字拼进输入,输入多1
