语言类大模型的微调主要包括以下内容:
此外,大模型通俗来讲是输入大量语料,让计算机获得类似人类的“思考”能力,能够进行文本生成、推理问答、对话、文档摘要等工作。其训练过程类似上学参加工作,包括找学校(需要大量计算资源)、确定教材(需要大量数据)、找老师(选择算法)、就业指导(微调)、搬砖(推导)。在LLM中,Token被视为模型处理和生成的文本单位。
在Andrej Karpathy亲授的内容中,微调是根据问答文档进行训练,获得助理模型,该模型能以助手形式回答未包含在训练集中的问题,且能利用预训练阶段积累的知识。预训练阶段在互联网上大规模训练积累知识,微调阶段则是将格式转换为类似有用助手的问答形式。预训练成本高昂,通常只在公司内部进行。
12:29即使您确实为您的用例发现了一个好的提示,您可能会注意到模型响应的质量并不完全一致。为了缓解这些问题,我们可以做的一件事是调整模型。12:40那么调音是什么?好吧,您可能熟悉的一个版本是微调。在这种情况下,我们采用在通用数据集上预训练的模型。我们复制了这个模型。12:51然后,以这些学习到的权重为起点,我们在新的特定领域数据集上重新训练模型。这种技术对于许多不同的用例都非常有效。13:01但是当我们尝试微调LLM时,我们遇到了一些挑战。顾名思义,法学硕士是大型的。因此更新每个权重可能需要很长时间的训练工作。13:12将所有这些计算与现在必须为这个巨大模型提供服务的麻烦和成本相结合……因此,微调大型语言模型可能不是您的最佳选择。13:21但是有一种创新的调优方法称为参数有效调优。这是一个非常令人兴奋的研究领域,旨在通过仅训练一部分参数来减少微调LLM的挑战。13:34这些参数可能是现有模型参数的子集。或者它们可以是一组全新的参数。例如,也许您向模型添加了一些额外的层或额外的嵌入13:45到提示。如果您想了解更多关于参数有效调整和一些不同方法的信息,本课程的阅读列表中包含一篇摘要论文。13:53但如果您只想着手构建,那么让我们转到Generative AI Studio,看看如何开始调优工作。从Generative AI Studio的语言部分,14:02选择调整。为了创建一个调整模型,我们提供了一个名称。然后指向训练数据的本地或Cloud Storage位置。参数有效调整非常适合您拥有“适度”数量的场景14:14训练数据,例如数百或数千个训练示例。您的训练数据应以文本到文本格式构建为受监督的训练数据集。数据中的每条记录或行都将包含输入文本,换句话说,提示,
通俗来讲,大模型就是输入大量语料,来让计算机获得类似人类的“思考”能力,使之能够理解自然语言,能够进行『文本生成』、『推理问答』、『对话』、『文档摘要』等工作。既然是学习,那我们就可以用『上学参加工作』这件事来类比大模型的训练、使用过程:1.找学校::训练LLM需要大量的计算,因此GPU更合适,因此只有购买得起大量GPU的贵族学校才有资本训练自己的大模型2.确定教材::大模型顾名思义就是大,需要的数据量特别多,几千亿序列(Token)的输入基本是标配3.找老师::即用什么样的算法讲述“书本”中的内容,让大模型能够更好理解Token之间的关系4.就业指导::学完书本中的知识后,为了让大模型能够更好胜任某一行业,需要进行微调(fine tuning)指导5.搬砖::就业指导完成后,下面就要正式干活了,比如进行一次翻译、问答等,在大模型里称之为推导(infer)在LLM中,Token([2])被视为模型处理和生成的文本单位。它们可以代表单个字符、单词、子单词,甚至更大的语言单位,具体取决于所使用的分词方法(Tokenization)。Token是原始文本数据与LLM可以使用的数字表示之间的桥梁。在将输入进行分词时,会对其进行数字化,形成一个词汇表(Vocabulary),比如:The cat sat on the mat,会被分割成“The”、“cat”、“sat”等的同时,会生成下面的词汇表:|Token|ID||-|-||The|345||cat|1256||sat|1726||…|…|
因此,我们现在交换数据集,并根据这些问答文档进行训练。而这个过程就叫做微调。一旦你这样做了,你就获得了我们所说的助理模型。所以这个助理模型现在订阅了新的训练文档的形式。例如,如果你给它一个问题,比如,“你能帮我处理这段代码吗?好像有一个错误。print(“hello world).”尽管某个问题并未包含在训练集中,经过微调的模型仍然知道它应该以有助于解答此类问题的助手的形式进行回答,并且它能够做到这一点。因此,模型会从左至右、从上至下地逐字采样,生成的所有单词均是对该查询的响应。这些模型能够将其格式转变为当前有用的助手,这是一个值得关注的现象,同时也是一种基于经验的、尚未完全理解的现象。这是因为尽管它们在微调阶段已经接触到了大量相关文档,但它们仍能够访问并以某种方式利用在预训练阶段积累的全部知识。到目前为止的总结粗略来说,预训练阶段是在互联网上进行的大规模训练,主要关注知识的积累,而微调阶段则是关于所谓的对齐,即将互联网文档的格式转换为问答形式,类似于有用的助手。这两个阶段是获取像ChatGPT这样的模型的两个主要部分。在预训练阶段,你会从互联网上获取大量文本,并需要一个GPU集群来处理这些数据。这些专用于并行处理工作负载的计算机非常昂贵。然后,你将文本压缩到神经网络的参数中,这个过程通常需要数百万美元的成本。这样,你就得到了一个基础模型。由于计算成本极高,这个过程通常只在公司内部进行一次,可能是每年或几个月一次,因为实际操作成本非常高昂。