五步走,两个月炼成!王小川的大模型打造秘籍曝光( 二 )


绝对位置编码指的是直接将位置信息通过向量的形式融合到模型输入中 。
常用的两种绝对位置编码方法主要是在中使用的以及 -to-模型中使用的。
其中,在原始的模型(等人,2017)中,引入了一种预定义的正弦函数作为位置编码 。这种方法会为每个位置生成一个固定向量,该向量的维度跟词嵌入向量相同 。
其优点在于,它可以处理任意长度的序列,不需要额外的学习过程,并且对于相对位置关系有一定的编码能力 。
由等人于2017年在 -to-模型中首次提出 。
【五步走,两个月炼成!王小川的大模型打造秘籍曝光】对于每个位置,模型都有一个对应的嵌入向量,这个向量会在模型训练的过程中学习和优化 。
该方法的优点在于,它可以根据具体的任务和数据集学习位置信息 。然而,它的一大缺点是,由于位置嵌入数量固定,因此模型可能无法处理超过预先设定数量位置的序列 。
相对位置编码指的是在自注意力机制中引入两个Token的相对位置信息 。
目前,相对位置编码主要有两种常用方法:ROPE()和ALiBi( with) 。
ROPE可以不受固定长度限制处理任意长度的序列 。其工作原理是,通过一个基于位置的旋转矩阵将每个位置的嵌入旋转到一个新的位置 。
这种方法的优点是,可以保持相对位置信息的一致性,在旋转后,相邻的位置仍然会有相似的嵌入 。
ALiBi能够让语言模型在推理时可以处理比训练时更长的序列 。
它在处理文本序列时不使用实际的位置嵌入,而是在计算某个键和查询之间的注意力时,根据键和查询之间的距离对查询可以分配给键的注意力值进行惩罚 。当键和查询靠近时,惩罚非常低,当它们远离时,惩罚非常高 。
这种方法的动机是,靠近的词比远离的词更重要 。
2、 Layer,即注意力层 。
其原理是通过加入注意力层使得不同Token之间能够交互信息,进而获得整句话的表征 。
目前大模型使用的 Layer分为多头自注意力(Multi-Head Self-)和稀疏自注意力( Self-)两种 。
Multi-Head Self-机制最早出现在” is All You Need”( et al., 2017)论文中,是模型的核心组成部分 。
在多头自注意力中,模型首先将输入的嵌入向量分割成多个“头”,每个头都会独立地进行自注意力计算,最后所有头的输出会被连接起来并通过一个线性变换,形成最终的输出 。
其优点是,每个头都可以学习并关注输入的不同方面,模型能够同时关注来自不同位置的信息,从而捕获更丰富的上下文信息 。
Self-是一种改进的自注意力机制,它只关注输入中的一部分元素 。
这种方法的优点是,可以显著减少计算复杂性,使得模型能够处理更长的序列 。
3、FFN Layer,即前馈神经网络 。
其主要任务是处理来自层的信息 。
机制能够处理词语之间的相互关系,但是它无法进行更为复杂的、非线性的数据处理 。
而FFN层可以在每个模块中增加非线性处理能力,增强模型的整体表达能力 。
在原始的模型中,FFN层通常由两个线性变换和一个非线性激活函数(如ReLU或GELU)组成 。
以下是一些FFN层的变种:
-7B的模型结构同样基于 。
在模型研发过程中,为了能够让模型在4096的窗口长度内拥有最好效果,同时在4096长度外也具备较好的外推性能,-7B采取了和LLaMA相同的结构设计,而这些关键要素上的设计也和很多其他模型选择的设计相类似 。
社区中所提出的XGen-7B和由所提出的也是同样的选择,具体而言:

五步走,两个月炼成!王小川的大模型打造秘籍曝光