LLM基础知识
代替你的不是ai,而是会使用ai的人。而在这之上还有会打造ai的人。
1、大语言模型的大体现在哪里
LLM(Large Language Model 大语言模型)的大不仅仅是指训练数据巨大,更指参数数量巨大。
参数即模型内部的变量,可以把它比作模型在训练过程中学到的知识。
参数数量越多,大模型懂得越多,表现也就越好。
2、Transformer架构
Attention Is All You Need提出的Transformer架构极大推动了自然语言处理的发展。
GPT(Generative Pre-trained Transformer 生成式 预训练的 Transformer)
RNN(以前的):
在Transformer出现之前,主流架构是RNN(Recurrent Neural Network 循环神经网络)。
RNN按顺序逐字处理文本,每一步的输出取决于先前的隐藏状态和当前的输入。
弊端:不能并行计算,训练效率低(因为要等上一个步骤完成后才能进行当前的计算);
而且“记性差”,不擅于处理长文本(词之间距离越远,前面对后面的影响就越弱,所以难以有效捕获到长距离的语义关系)
改良版本是LSTM长短期记忆网络,虽然解决了记性差的问题,但是没有解决不能并行计算的问题。而且在处理非常长的序列时,也依然受限制。
Transformer(现在的):
Transformer有长时记忆能力,还能并行计算。
(1)自注意力机制:tranformer在处理每个词时,不仅会注意这个词本身以及它附近的词,还会去注意输入序列里所有其他的词,给与每个词不一样的注意力权重(训练中已习得)。从而知道当前词和其他词之间的相关性有多强(依赖关系),然后去专注于输入里真正重要的部分。
(2)位置编码:对序列中的每个词进行位置编码(即没几个在序列的第几号位置上),添加了位置参数后,就可以把所有词同时计算了,而不用顺序进行(串行转并行)。这样模型既可以理解每个词的意义,又可以捕获词在句子中的位置。
3、训练出chatGPT的三个步骤
第一步:无监督预训练(最费时耗力烧钱的步骤)——>得到能进行文本生成的基座模型
通过海量文本(几千亿token),进行无监督学习预训练,得到一个能进行文本生成的基座模型。
token:大语言模型的一个基本文本单位,一个短单词可能是一个token,一个长单词可能被分为多个token。
无监督学习:模型在训练过程中利用海量文本,自行学习人类语言的语法、语义,了解表达结构和模式。
文本生成:不等同于对话能力,只是可以根据现有文本预测下一个token,即根据上文补充文本。不擅长对话。你给一个问题,它可能只是模仿你生成类似的问题。
第二步:监督微调(Supervised Fine-Tuning)——>得到擅长对话的微调模型
通过一些人类撰写的高质量对话数据,对基座模型进行监督微调,得到一个微调后的具有更好对话能力的模型(SFT模型)。
微调:在已有模型上做进一步的训练,会改变模型的内部参数,让模型更加适应特定任务。这里给是给模型看更多的对话数据。
监督:输入数据既有x(问题)又有y(回答)。
第三步:训练奖励模型+强化学习训练——>得到有高质量回答的强化模型
用问题和多个对应回答(微调模型生成)构成数据,让人类标注员对回答进行质量排序,然后基于这些数据训练出一个能对回答进行评分预测的奖励模型。接着让微调模型对问题生成回答,用奖励模型给回答进行评分,利用评分作为反馈,进行强化学习训练。
评分原则:3H 有用性(Helpful,不能答非所问)、真实性(Honest)、无害性(Harmless)
如果仅靠人类一个个打分,则效率低成本高,所以想到训练出专门的评分模型,让模型给模型打分。通过强化学习,模型的回答质量会进一步提升。