先这样答
结论是,LLaMA 系主要使用 RoPE,千问系也以 RoPE 为主,百川部分版本使用可学习的绝对位置编码。RoPE 通过旋转 Query 和 Key 的表示,让相对位置信息自然体现在两者的内积里。它还可以配合外推技巧,处理更长的上下文。
绝对位置编码会给每个位置分配一个位置表示,再参与模型计算。模型看到的位置范围受到训练设置影响,超过这个范围时,外推能力通常较弱。百川不能一概而论,应该说部分版本采用了可学习绝对位置编码。早期模型里也出现过 ALiBi 类方案,所以回答具体模型时要先确认版本。
千问的长上下文版本会对位置编码做外推改造。LLaMA 系也会配合外推技巧。面试时可以先给这个大方向,再补一句版本差异。不要把所有百川、千问版本都说成同一种方案,也不要把 ALiBi 和可学习绝对位置编码直接当成同一个东西。
面试官会怎么追问
-
「RoPE 为什么能表达相对位置?」
RoPE 会按照位置旋转 Query 和 Key。两个向量做内积时,旋转角度的差异会自然保留下来。这个角度差对应相对位置,因此不需要单独把相对位置表送进计算。 -
「你说的外推,具体指什么?」
这里指模型在原有位置范围之外,仍然处理更长的上下文。RoPE 类方法可以配合外推技巧完成这件事。千问的长上下文版本和 LLaMA 系都可以从这个方向回答,但具体做法要看模型版本。 -
「百川到底是绝对位置还是相对位置?」
不能把所有百川版本放在一起概括。比较稳妥的说法是,百川部分版本使用可学习绝对位置编码,早期模型中也出现过 ALiBi 类方案。回答时要明确自己说的是哪个版本,记不准时只答整体方向。
回答的坑
不要把 LLaMA、千问、百川的所有版本都说成同一种位置编码。
不要把 RoPE、可学习绝对位置编码和 ALiBi 类方案混成一个概念。
同系列的题