大模型训练通常包括以下全流程:
此外,大模型训练还可以类比为“上学参加工作”:
一般训练还会有以下步骤:
虽然各公司具体实现细节可能是机密,但这些步骤共同构成了构建高效、实用大语言模型的过程,最终产生的模型可能含有高达 1750 亿个参数。在开源与闭源模型的开发策略中,开源模型依赖社区贡献,闭源模型由企业投入大量资源开发,两种策略都旨在推动大语言模型技术发展和应用。
旁白当你发现大模型的效果并没有你预期想的那么好时,你打算放弃但是你也听到了另一种声音:如果大模型没有你想的那么好,可能是你没有了解他的能力边界。你不想就这么放弃,为了更好的理解大模型,你首先了解了他的创建过程[heading2]1.收集海量数据[content]想象一下,我们要教一个孩子成为一个博学多才的人。我们会怎么做?我们会让他阅读大量的书籍,观看各种纪录片,与不同背景的人交谈等。对于AI模型来说,这个过程就是收集海量的文本数据。例子:研究人员会收集互联网上的文章、书籍、维基百科条目、社交媒体帖子等各种文本数据。[heading2]2.预处理数据[content]在孩子开始学习之前,我们可能会先整理这些资料,确保内容适合他的年龄和学习能力。同样,AI研究人员也需要清理和组织收集到的数据。例子:删除垃圾信息,纠正拼写错误,将文本分割成易于处理的片段。[heading2]3.设计模型架构[content]就像我们要为孩子设计一个学习计划一样,研究人员需要设计AI模型的"大脑"结构。这通常是一个复杂的神经网络。这里我们就不展开了,我们只需要了解,为了让AI能够很好的学习知识,科学家们设计了一种特定的架构。例子:研究人员可能会使用Transformer架构,这是一种特别擅长处理序列数据(如文本)的神经网络结构。[heading2]4.训练模型[content]就像孩子开始阅读和学习一样,AI模型开始"阅读"我们提供的所有数据。这个过程被称为"训练"。例子:模型会反复阅读数据,尝试预测句子中的下一个词。比如给出"太阳从东方__",模型学会预测"升起"。通过不断重复这个过程,模型逐渐学会理解和生成人类语言。
通俗来讲,大模型就是输入大量语料,来让计算机获得类似人类的“思考”能力,使之能够理解自然语言,能够进行『文本生成』、『推理问答』、『对话』、『文档摘要』等工作。既然是学习,那我们就可以用『上学参加工作』这件事来类比大模型的训练、使用过程: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||…|…|
大语言模型训练过程涉及几个关键步骤:无监督学习:这一阶段模型通过分析大量文本数据,学习到语言的基本结构和常识,具备文本补齐能力而非直接回答问题。模型将人类的知识通过向量化的方法转换,从而获得基础的语言模型。清洗出好的数据指令微调:在此阶段,模型被训练以理解并执行具体指令,如翻译文本,从而能够回答问题。这一阶段涉及的数据输入量相对于无监督学习阶段有所减少。输入内容包括3个部分,中间可能有分隔符*Instruct:请你翻译下面这段话*Input:一段英文*Output:一段中文对齐过程:通过引入人类的评价标准(奖励函数)和处理特定的格式要求,进一步优化模型的输出以符合人类的期望。这包括处理文化、道德等方面的细节,以确保模型的输出更加贴近人类的价值观。排序相信在这个过程中,OpenAI很有可能自己构建了一套强大的标注组织体系,高效,又能对抗标注人员能力强依赖。说起来人工标注符合scaling law。虽然具体的实现细节可能是各公司的机密,但大体上,这些步骤共同构成了构建一个高效、实用的大语言模型的过程,最终产生的模型可能含有高达1750亿个参数。在开源与闭源模型的开发策略中,开源模型依赖于社区的贡献和集体智慧,而闭源模型则通常由企业投入大量资源进行开发。尽管方法不同,但两种策略都旨在推动大语言模型技术的发展和应用。