大模型原理与技术(毛玉仁)
一、基础知识
①基于统计的语言模型:n-gram,基于前n-1个词预测第当前词,即统计词序个数计算概率(n阶马尔科夫)。如果预测句子的概率,需要将每个分词连乘。
- 常用的n小于5,随着n增大,联合频率为0概率增大,且参数量也是n次方增大。
- google 计算了离线的1-5gram表,可以直接调用。该算法应用在输入法的拼写补全、拼写纠错等方面。
- google通过观测n-gram表频率的变化,可以来预测趋势,比如搜索流感的人多了,频率上去后可以得出流感爆发的预测结果。
- 缺点:n长度受限、泛化能力不足。
②基于学习的语言模型:发展阶段为统计学习(svm)、表征学习(CNN)、大模型
- rnn vs lstm,rnn因连乘导致梯度消失/爆炸,对较远历史信息无法处理。lstm通过门控表示,将连乘改成相机,缓解梯度消失和梯度爆炸。
- transformer,注意力模块+全连接模块(参数占2/3),其中全连接模块更像是词典、词库。注意力模块向全连接模块query出对应的信息。注意力模块包括qkv、layernorm(加速收敛)、残差连接(防止梯度消失)。
- rnn/transformer生成句子的过程是自回归过程。存在错误累积、串行计算慢的问题。引入teacher forcing(将标签替换前序预测结果)解决上述问题,但也引入新的问题,相当于在训练阶段模型一次性只预测一个token,降低模型泛化能力。
- 语言模型的采样,指的是内容生成时选取token的方法。可以是按照概率贪心、组合概率贪心以及添加随机扰动等方式。比如top-p策略,将置信度高于一定阈值的token拿出来计算softmax,然后再按分布采样,其中softmax可以添加温度系数控制随机性,使得分布更加平均或者尖锐。
- 语言模型的评估,基于统计的评估:BLEU指在翻译任务重统计连续N个词于真值一致的统计概率,N可以取多值然后平均。缺点是硬匹配,对于语义的泛化不佳。
- 语言模型的评估,基于另一个语言模型的评估:一种是送入bert得到的embedding计算相似度,根据相似度卡阈值计算正确与否,再统计其准召,该方法称为bertscore。第二种送给大模型判断。
二、llm大语言模型架构
①
在llm中,提示词一般偏小,比如“请写一篇夸夸词....”,对encoder要求较低,重在decoder生成能力,所以以gpt/llama等decoder-only的模型兴起。
② mamba:因transformer随输入序列长度成平方复杂度增长,考虑对rnn进行改善。基于自动控制原理中状态空间方程(ssm)离散化后的形式,构建动态A、B、C(头上带拔)的矩阵。其复杂度与输入序列长度成正比,依据是N阶系统可以由N个一阶组成。
该结构与LSTM相似,A矩阵代表遗忘门,B矩阵代表输入门,C矩阵代表输出门。
三、prompt工程
四、参数微调
①instruct
②微调方法