LLM 笔记

1. 基础结构

原始文本
  ↓ tokenizer
token 编号
  ↓ embedding
初始向量 X₀
  ↓ 第 1 个 Transformer 层
上下文相关表示 X₁
  ↓ 第 2 个 Transformer 层
更深的表示 X₂
  ↓ ……
最终表示
  ↓ 输出层
下一个 token 的概率

2. QKV:Transformer 注意力机制的最核心实现形式

2.1 是什么

每一层都有三个矩阵,将 token 映射为 QKV 三个向量:

  • Q: 本 token 需要找什么信息
  • K: 本 token 的特征(可以因为什么而被找到)
  • V: 如果关注本 token ,则应该带走什么信息

模型用 Query 与所有前续 token 的 Key 做点积,(经 softmax )算出一个权重,这个权重代表信息的关联程度;最终把相应 Value 做加权。

image.png

原本每个 token 都只包含他自己的信息,而经过一层模型的处理,每个 token 都携带上了与之相关联的额外信息。

多层、多头注意力反复进行,模型便能逐渐形成从语法关系到篇章主题、代码依赖、事实关联等不同层次的表示。

TODO: 多层、多头注意力

2.2 KV Cache

生成下一个 token 时,我们需要按照 2.1 节的描述,计算本 token 的 Q,并且与前序 token 的 K、V 做运算。

而前序 token 的 K、V 在前几轮生成过程中就已经计算过了,且不会随着生成后继 token 而改变。因此显然这个步骤可通过缓存提速与降本。另,也是显然地,由于 Q 只用于下一轮 token 的生成,一般没有必要进行缓存。

知识共享许可协议
本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇