ALiBi(Attention with Linear Biases)是一种先进的相对位置编码技术,主要用于自注意力模型中,以增强模型对单词之间相对位置的理解。以下是ALiBi的一些关键特点和实现细节:

  1. 基本概念

    • ALiBi通过在自注意力机制的输入上添加线性偏置项来引入位置信息,这些偏置项基于输入的位置计算,从而反映出输入之间的相对位置信息。
  2. 实现方式

    • 实现ALiBi主要包括计算每个输入位置i和输出位置j之间的线性偏置b_ij = i - j,然后将这个偏置添加到自注意力机制的输入上。如果自注意力机制的输入是一个矩阵X,那么新的输入就是X + b*m。
  3. 处理远距离衰减问题

    • Alibi利用softmax函数的特性进行差异性的软放大,通过扩大token之间的位置差异性,避免远距离时被衰减至接近0。这种处理方式直接作用在attention分数上,能够有效地放大远距离的内积值。
  4. 外推性能

    • 论文结果表明,ALiBi极大地提升了模型的外推性能,即使在16k token的输入下依然可以很好地支持。
  5. 混合精度下的问题

    • 在混合精度下,由于低精度(float16/bfloat16)浮点数表示精度不足,可能导致位置编码碰撞的问题,尤其是在上下文窗口较大时,这个问题会变得更加严重。
  6. 计算公式

    • 标准attention计算:softmax(q_iK^T),带上ALiBi的计算:softmax(q_iK^T + m*[-(i-1),...,-2,-1,0]) 。
  7. 代码实现

    • 在代码层面,ALiBi的实现涉及到计算斜率数组m,然后计算一个距离矩阵distance,这个矩阵表示每个位置与其他位置的相对距离。最后,返回一个偏置矩阵,这个矩阵是距离矩阵和斜率数组的元素乘积。

综上所述,ALiBi是一种有效的位置编码方法,特别适用于处理长序列数据,能够提升模型的外推性能和对位置差异性的敏感度。