本文只做科普扫盲,会和最新技术有不匹配的情况,请谨慎阅读!
大模型的训练
整体上分为三个阶段:
预训练
SFT(监督微调)
RLHF(基于人类反馈的强化学习)
比作人的三个阶段就是:
幼年~18岁高中毕业,一直在学习理论知识,即训练模型的通用能力。
大学以及后续学习生涯,会选择一到多个专业进行精修,相当于训练模型在垂类领域的专业能力。
在工作岗位上不断的完善自己的技能和能力,即在人为干预的情况下,手把手指导模型,提高模型解决问题的能力。
预训练
这个阶段只是在教会模型如何理解句式,如何补全句子但是这时模型还无法理解人的意图。
如果这个时候问模型:埃菲尔铁塔在哪个国家?模型大概率不会回答法国,而是说:万里长城在哪个国家?
此时的它还会只会成语接龙,无法理解句子中的意图,而要实现这一点,就需要进行SFT(监督微调)训练。
SFT
这个阶段的模型会学习大量的人类语料,特别是非常专业的垂直领域知识。学习完成之后,模型就能根据人类的意图来回答专业领域的问题。
此时,再问它:埃菲尔铁塔在哪个国家?它大概率就会回答"法国",而不是补回句子。
当然,仅仅是这样还不够,此时模型的回答还不能完全符合人类的偏好,或者是回答的结果还不够满意。
比如模型可能会回答不符合社会价值观和道德公序良俗的内容,此时就需要进行强干预的强化训练,即RLHF(基于人类反馈的强化学习)。
RLHF
这个阶段的训练就好比初入职场的大学生,工作中可能会受到表扬,也可能会受到批评。通过不断反馈和调整工作方法,逐渐成长变得更加强大。
对于大模型而言,它会在这个阶段受到同一问题的多次问答,每次回答都会给予打分,大模型会不断的纠正自己的回答,使之更符合人类的偏好。
大模型的分类
按照应用场景,大模型分为两大类:
① 大语言模型 LLM
② 多模态模型
计算机视觉模型 VLM
音频识别模型
……
大语言模型
专注于自然语言处理(NLP),如文字、文章、对话等
自然语言文本,通常是基于深度学习架构(如Transformer模型)
通过大规模文本数据集训练而成的。
多模态模型
能够同时处理和理解来自多个感知通道(文本、图像、音频、视频等)的数据,并在多个模态之间建立关联,进行跨模态推理。
大模型的工作流程
分词化(Tokenization)
分词化是自然语言处理(NLP)中的重要概念,它是将段落和句子分割成更小的分词(Token)的过程。
比如下面这个英文短句:I want to study.
使用分词化之后就得到:[ 'I', 'want', 'to', 'study', '.' ]
将句子拆解成更小的、独立的单元,可以帮助计算机更好的理解句子的各个部分,以及每个部分在上下文中的作用,这在分析大量上下文时非常重要。
分词化有三种粒度:
值得注意的是,分词后的列表的最后一项是英文句号".",这是因为在句子中,不同的标点符号都有各自的含义,特别是对于中文,一句话有标点和没标点可能是两个截然不同的意思。
词表映射
每个被拆开的词都是一个token,通过预先设置好的词表,映射为一个token id,这就是token在词表中的身份证。最终一个句子被表示成一个token id列表,方便被计算机处理。
分词结果与词表映射结果
大模型预测生成文本的过程
大语言模型的工作原理概括就是根据初始给定的文本字符串进行不断的预测下一个token,表面上看大模型在解答问题,实际上是在对一串文本做后续内容的推理。
由此可以看出,大模型的推理不是一步到位的,当大模型在进行推理时,会基于现有的token,根据概率最大化原则预测出下一个最有可能的token,然后将得到的token加入到输入序列中,并将更新后的输入序列重新给到大模型进行下一个token的预测,这个过程就叫做自回归。直到模型输出一个特殊的token(比如EOS,EndOfSentence)表示推理结束或输出长度达到上限(如常见的8K、128K等)。
这正是大语言模型选择流式输出的原因。
大模型生成过程示例
初始文本:我爱学习,学习使我
第一步:
第二步:
最终输出
我爱学习,学习使我快乐!