TwKit
正在载入
TwKit

「从零手写大模型」系列补充零件 · RoPE RoPE 的核心公式,先说说作者 RoPE 的提出者是苏剑林,圈内叫他苏神 @Jianlin_S 我按自己的理… · @antiAIvo · TwKit

@antiAIvo

「从零手写大模型」系列补充零件 · RoPE RoPE 的核心公式,先说说作者 RoPE 的提出者是苏剑林,圈内叫他苏神 @Jianlin_S 我按自己的理解,从头推一遍 先说要算什么? 一个 token 在位置 m,提供 q 一个 token 在位置 n,提供 k 注意力分数就是 q 和 k 的点积 目标:让分数只和 n−m 有关 RoPE 的想法很直接 把 q、k 看成平面上的箭头 第几个位置,就转几格,每格转 θ q 转 mθ,k 转 nθ,两个箭头各转各的 但它们之间多岔开的角度,只有 (n−m)θ 下面用公式证明: 1. 写出旋转 转 α 角可以写成乘一个矩阵 R(α) q 转完是 R(mθ)·q,k 转完是 R(nθ)·k 2. 写出分数 分数 = (R(mθ)·q)ᵀ · (R(nθ)·k) 3. 拆开转置 规则:(AB)ᵀ = Bᵀ Aᵀ 分数 = qᵀ · R(mθ)ᵀ · R(nθ) · k q 在最左,k 在最右, 只需要化简中间两个矩阵 4. 用旋转矩阵的两个性质 性质一:转置等于反向转, R(mθ)ᵀ = R(−mθ) 性质二:连续转,角度相加, R(−mθ) · R(nθ) = R((n−m)θ) 5. 合起来 分数 = qᵀ · R((n−m)θ) · k 到此完毕:m 和 n 不再单独出现,只剩 n−m。

曝光 195 · 评论 1 · 点赞 3 · 书签 1

查看原帖