大模型面试题:目前大模型中的位置编码有哪些?

获取更多面试真题的集合,请移步至 https://pica.zhimg.com/80/v2-7fd6e77f69aa02c34ca8c334870b3bcd_720w.webp?source=d16d100b

目前大模型中的位置编码有哪些?

在大模型中,位置编码主要分为两大派:绝对位置编码和相对位置编码。主流的几种脍炙人口的位置编码如下所示:

  • 正弦编码
    正弦曲线(Sinusoidal)位置编码:这是Transformer原始论文中提出的位置编码方式。它通过正弦和余弦函数的组合为每个位置创建编码,波长呈几何级数排列,使得每个位置的编码都是独特的,并且能够捕获位置之间的相对关系。公式如下:
    PE_{(pos,2i)} = \sin(pos/10000^{2i/d_{\text{model}}}), PE_{(pos,2i+1)} = \cos(pos/10000^{2i/d_{\text{model}}})
    其中,pos表示位置,d_{\text{model}}代表embedding的维度,2i,2i+1代表的是embedding不同位置的索引。

优点:实现简单,效率高,易用性好,有一定的理论支撑
缺点:绝对位置编码带来的灵活性差;外推性较差,难以对超出预训练长度的文本进行很好的外推或者说性能下降;难以表示有效的相对位置间的关系,也即难以表示前后方向,只能表示距离。

  • 旋转位置编码
    旋转位置编码(RoPE):这是一种相对位置编码,通过旋转向量的方式来编码位置信息。RoPE在特定任务中表现出独特的优势,尤其是在处理具有对称性或周期性特征的数据时。 < f_q(x_m,m),f_k(x_n,n)>=g(x_m,x_n,m-n)

优点:能保证相对位置关系;良好的外推性;可以和线性注意力机制兼容.
缺点:实现上稍微复制;外推到超长序列也存在性能下降问题

可以参考 https://zhuanlan.zhihu.com/p/647109286 进行学习,十分钟就精通了

  • ALiBi
    相对位置编码(ALiBi):这是一种微调Attention结构的方法,使其能够分辨不同位置的Token。相对位置编码适用于长文本处理和需要捕捉长距离依赖的任务,如机器翻译和问答系统ALibi并没有显示的在网络种加入编码,唯一的修改是在qk点积之后,加入了一个静态的不可学习的bias:
    sfotmax(q_i K^T+m*[-(i-1),...,-2,-1,0])
    m是一个head-specific的超参(multihead),对于n个head而言,步长一般为 2^{-8/n}

    [图片上传失败...(image-9cedfe-1730781517403)]

    优点:实现简单,减少了模型embedding参数,效率高,具有良好外推性,
    缺点:外推到超长序列也存在性能下降问题

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容