Alibi 位置编码
背景与挑战
当大模型在训练和预测时的输入长度不一致时,模型的泛化能力会下降。若外推能力不佳,大模型在处理长文本或多轮对话时的效果就会受到限制。正弦位置编码的外推能力比较弱,RoPE(Rotary Position Embedding)的外推能力有一定提高但仍然有限。
解决方案
支持Alibi位置编码,提高模型外推能力。
解决思路
Alibi算法给attention score添加了一个预设的线性偏置矩阵(如下图所示),使模型能够理解输入之间的相对位置关系。由于位置信息直接作用于attention score上,位置差异性被突出,使模型具有较强的外推能力。

使用方法
(1)当前alibi特性只支持开启flash attention v2情形,请确保开启--use-fusion-attn-v2。
(2)对于开启--use-fusion-attn-v2特性的情形下,需要设置--position-embedding-type alibi和--alibi-fusion-attn-type 2。--alibi-fusion-attn-type目前仅支持取0或2,
0表示生成alibi后传入,1暂不开放, 2表示核内生成。
如果要设置alibi为对角线对称取反,则需设置alibi_diagonal_opposite,反之(亦是默认情况,且与2时核内生成一致)无需进行设置。
(3)目前alibi位置编码已经支持ring-attention长序列并行,当前只支持mask为causal的场景,以及 --alibi-fusion-attn-type 为2的压缩模式。暂不支持ulysses长序列并行和混合长序列并行。
(4)开启--use-fusion-attn-v2特性和长序列并行时,alibi编码不支持开启dropout。
使用效果
模型外推能力提高。