📰 来源: 博客园
最近正好有空,打算抽时间复盘总结一下这些年零零散散学习的AI知识.
零基础认识大语言模型(LLM)工作原理目录 - GuZhenYin - 博客园
在上一章中,我们知道 Transformer 做了三件事:
但这里有一个关键问题:
模型到底是怎么“回头看”的?
人类阅读一句话时,其实会自动做一件事,把重要信息记住,把不重要信息忽略。
小明昨天去北京出差,今天他回来了。
因为我们的大脑自动做了“关联”。
Transformer 的 Attention,本质上就是在模拟这件事。
我们举一个普通生活中的例子
假设我们在图书馆找一本书:
《Java 并发编程实战》
我们不会把整个图书馆的书都认真读一遍。
然后我们会发现,某一排书架上面有相关类别.
于是我们集中注意力,主要从那一排书架上去找这本书。
Attention 其实做的事情完全一样,它不是“平均看所有信息”,而是:
给每一段信息分配不同的重要性权重
小明昨天去北京出差,今天他回来了。
它会把前面的 Token 全部拿出来:
小明
昨天
去
北京
出差
今天
哪些 Token 和“他”最相关?
我们用人类方式模拟一下:
模型不会“理解”,但它会做一件类似的事:
Attention 本质只有一句话:
当前 Token 会去“查询”前面所有 Token,并决定哪些最重要。
现在我们终于可以引入 QKV,但是我们不从数学角度去理解。
我们用一个简单的“会议室发言”理解 QKV
我们想象一个会议.每个人都有三种属性:
① Key(身份标签)
② Query(提问者)
这个问题就是 Query。
③ Value(真正的信息)
他说的内容就是 Value。
所以Attention 的计算流程可以简单理解为:
Query 去匹配 Key,匹配成功后拿 Value
现在我们回到刚才那句话:
小明昨天去北京出差,今天他回来了。
模型内部其实在做如下步骤:
步骤1:每个 Token 生成 Q/K/V
步骤 3:加权汇总信息
模型不会只选一个,而是:
0.92 × 小明
0.31 × 北京
0.10 × 昨天
“他”的语义 = 小明
Attention = 给所有历史信息打分 + 加
🔗 原文链接: 点击阅读原文
文章评论