训练大语言模型的过程主要包括以下几个步骤:
总的来说,训练大语言模型是一个复杂而昂贵的过程,需要大量的计算资源和时间。
大语言模型训练过程涉及几个关键步骤:无监督学习:这一阶段模型通过分析大量文本数据,学习到语言的基本结构和常识,具备文本补齐能力而非直接回答问题。模型将人类的知识通过向量化的方法转换,从而获得基础的语言模型。清洗出好的数据指令微调:在此阶段,模型被训练以理解并执行具体指令,如翻译文本,从而能够回答问题。这一阶段涉及的数据输入量相对于无监督学习阶段有所减少。输入内容包括3个部分,中间可能有分隔符* Instruct:请你翻译下面这段话* Input:一段英文* Output:一段中文对齐过程:通过引入人类的评价标准(奖励函数)和处理特定的格式要求,进一步优化模型的输出以符合人类的期望。这包括处理文化、道德等方面的细节,以确保模型的输出更加贴近人类的价值观。排序相信在这个过程中,OpenAI很有可能自己构建了一套强大的标注组织体系,高效,又能对抗标注人员能力强依赖。说起来人工标注符合scaling law。
当我们谈论获取这些参数时,我们面临的是一个计算复杂性问题。那么,我们是如何获得这些参数的呢?尽管run.c文件中的内容、神经网络架构以及前向传播等都可以通过算法理解和开放,但真正的魔法在于参数的获取。模型训练比模型推理要复杂得多。模型推理可以简单地在MacBook上运行,而模型训练则是一个计算量极大的过程。我们所做的可以被理解为对互联网的一大块内容进行压缩。Llama2 70B作为一个开源模型,我们对其训练方式有很多了解,因为Meta在论文中发布了相关信息。训练过程涉及大约10TB的文本,通常来源于互联网的抓取。您需要大量的互联网资源和一个GPU集群,这些专业计算机用于执行如神经网络训练这样的繁重计算任务。您需要大约6000个GPU,运行约12天,费用大约200万美元,以将这一大块文本压缩成类似于zip文件的形式。这些参数文件大约140GB,压缩比大约是100倍。但这不是无损压缩,而是有损压缩,我们得到的是训练文本的一种格式塔,而不是原始文本的完整副本。
当我们的请求被输入到模型时,它不再是我们通常理解的自然语言形式。而是被转化为机器可以理解的格式,通常是向量。不必深入了解向量的具体含义,重要的是明白这代表了从人类的自然语言到机器可识别的数字形式的转换。在数学上,我们通过方程式如y = f(x)= ax + b来解决问题,通过已知的几组(x,y)值来计算出参数a和b。类似地,大语言模型的训练过程也是通过计算来确定模型的参数。这些参数不仅限于两个(如a和b),而是可能达到1750亿个。介绍这些概念的目的是为了揭示,尽管工程实现可能看似枯燥,但理解其背后的原理对于去除对AI的无根据迷信非常重要。这种深入的理解可能需要时间和努力,但它将帮助我们更有效地利用这些技术,避免形成基于误解的观念。