这份技术报告全面探讨了大型语言模型(LLMs)微调的全过程,融合了理论洞见与实践应用。报告从LLMs的发展历史入手,强调其从传统自然语言处理(NLP)模型演进而来的过程以及其在现代人工智能系统中的核心地位。分析区分了不同的微调方法,包括监督学习、无监督学习以及基于指令的微调方法,并深入探讨了它们在特定任务中的应用意义。
报告提出了一个结构化的七阶段LLM微调流程,涵盖从数据准备到模型部署的完整生命周期。关键考量包括数据收集策略、不平衡数据集的处理、模型初始化和优化技术,特别关注超参数调优。报告还重点介绍了参数高效微调方法,例如低秩适配(LoRA)和半微调,这些方法在资源受限的情况下实现了模型性能的最优平衡。 此外,报告扩展至高级微调技术和配置,如记忆微调、专家混合(Mixture of Experts, MoE)和代理混合(Mixture of Agents, MoA),展示了这些方法如何利用专用网络和多代理协作来提升成果。报告还讨论了将模型与人类偏好对齐的创新方法,包括近端策略优化(Proximal Policy Optimisation, PPO)和直接偏好优化(Direct Preference Optimisation, DPO),以及通过剪枝和路由优化提升效率的优势。 在后半部分,报告深入探讨了验证框架、部署后监控和推理优化技术,并分析了LLMs在分布式和云平台上的部署。此外,还涵盖了诸如多模态LLMs以及针对音频和语音处理的微调等前沿话题,同时探讨了与可扩展性、隐私和问责相关的新兴挑战。
本报告旨在为研究人员和从业者提供全面的指南,通过可操作的见解帮助他们在微调LLMs的过程中应对快速变化领域中的挑战与机遇。
大型语言模型(LLMs)标志着计算系统在理解和生成人类语言方面的一次重大飞跃。基于传统语言模型(LMs)如N元模型(N-gram models)[1],LLMs解决了稀有词处理、过拟合以及捕获复杂语言模式等限制。以GPT-3和GPT-4 [2]为代表的LLMs利用Transformer架构中的自注意力机制,高效管理序列数据并理解长程依赖关系。关键进展包括通过上下文学习(in-context learning)从提示中生成连贯文本,以及通过人类反馈强化学习(Reinforcement Learning from Human Feedback, RLHF)[3]优化模型。提示工程(prompt engineering)、问答系统和对话式交互等技术显著推动了自然语言处理(NLP)领域的发展[4]。
语言模型是自然语言处理(NLP)的基础,通过数学技术推广语言规则和知识,用于预测和生成任务。几十年来,语言模型从早期的统计语言模型(SLMs)发展到今天的先进大型语言模型(LLMs)。这种快速发展使LLMs能够以接近人类能力的水平处理、理解和生成文本[5, 6]。 图1.1展示了从早期统计方法到当前先进模型的大型语言模型演进过程。
理解LLMs需要追踪语言模型的发展阶段,包括统计语言模型(SLMs)、神经语言模型(NLMs)、预训练语言模型(PLMs)和大型语言模型(LLMs)。
SLMs在20世纪90年代出现,通过概率方法分析自然语言,以确定文本中句子的可能性。例如,句子“我非常高兴”的概率P(S)可以表示为: P(S)=P(ω1,ω2,ω3,ω4)=P(I,am,very,happy)P(S) = P(\omega_1, \omega_2, \omega_3, \omega_4) = P(I, am, very, happy)P(S)=P(ω1,ω2,ω3,ω4)=P(I,am,very,happy) 这个概率可通过条件概率计算: P(I,am,very,happy)=P(I)⋅P(am∣I)⋅P(very∣I,am)⋅P(happy∣I,am,very)P(I, am, very, happy) = P(I) \cdot P(am | I) \cdot P(very | I, am) \cdot P(happy | I, am, very)P(I,am,very,happy)=P(I)⋅P(am∣I)⋅P(very∣I,am)⋅P(happy∣I,am,very) 条件概率通过最大似然估计(MLE)进行估算。
NLMs利用神经网络预测单词序列,克服了SLMs的局限性。词向量(word vectors)使计算机能够理解单词含义。Word2Vec [7]等工具将单词表示为向量空间,其中语义关系通过向量角度反映。NLMs由连接的神经元组成,分为多层结构,类似于人脑。输入层连接词向量,隐藏层应用非线性激活函数,输出层使用Softmax函数将值转化为概率分布来预测后续单词。 图1.2说明了神经语言模型的结构,突出其用于预测后续单词的层次和连接。
PLMs首先在大规模无标签文本上训练,以理解基本的语言结构(预训练)。然后在较小的特定任务数据集上进行微调。这种“预训练-微调”范式的典型例子包括GPT-2 [8]和BERT [9],它们实现了多样且高效的模型架构。
LLMs如GPT-3、GPT-4、PaLM [10]和LLaMA [11]在庞大的文本语料库上进行训练,具有数百亿参数。LLMs经历了两阶段的训练过程:首先在大规模语料库上进行初步预训练,然后通过对齐人类价值观的方式进行优化。这种方法使LLMs能够更好地理解人类指令和价值观。
LLMs是NLP中的强大工具,可执行翻译、摘要和对话式交互等任务。Transformer架构、计算能力和大规模数据集的进步推动了其成功。这些模型接近人类水平的表现,使其在研究和实际应用中具有重要价值。LLMs的快速发展推动了架构创新、训练策略、上下文长度扩展、微调技术以及多模态数据整合的研究。它们的应用不仅限于NLP,还助力人机交互和创造直观的AI系统。这凸显了整合最新进展的全面综述的重要性[12]。 图1.3展示了当前领先LLMs的概览,突出了它们的能力和应用。
微调是以预训练模型(如OpenAI的GPT系列)为基础,通过在较小的特定领域数据集上进一步训练的过程。这种方法基于模型的已有知识,增强了其在特定任务中的性能,同时减少了数据和计算需求。 微调将预训练模型学习到的模式和特征转移到新任务中,从而提高性能并降低对训练数据的需求。这种方法在NLP中非常流行,应用于文本分类、情感分析和问答等任务。
1.5 什么是微调? 微调使用预训练模型,例如OpenAI的GPT系列,作为基础。该过程涉及在较小的特定领域数据集上进一步训练。这种方法建立在模型的既有知识之上,增强了在特定任务上的表现,同时减少了数据和计算需求。
图1.3:思维导图描绘了大型语言模型(LLMs)的各个维度,涵盖了从预训练和微调方法到效率、评估、推理和应用领域的各个方面。每个维度与特定的技术、挑战和体现所讨论特性的模型示例相关联。该图表作为LLMs开发和部署中的多方面考虑的概述。(改编自[13]) 1.6 LLM微调的类型 1.6.1 无监督微调 这种方法不需要标注数据。相反,LLM接触到大量来自目标领域的未标注文本,从而提升其对语言的理解。这种方法适用于法律或医疗等新领域,但在特定任务(如分类或摘要)中精确度较低。 1.6.2 监督微调(SFT) SFT涉及向LLM提供针对目标任务定制的标注数据。例如,为商业上下文中的文本分类微调LLM时,使用带有类别标签的文本片段数据集。尽管有效,这种方法需要大量的标注数据,这可能成本高昂且耗时。 1.6.3 通过提示工程进行指令微调 这种方法依赖于提供自然语言指令给LLM,适用于创建专业助手。它减少了对大量标注数据的需求,但对提示的质量依赖性很大。 1.7 预训练与微调 表1.1提供了预训练与微调的比较,突出了它们各自的特征和流程。方面预训练微调定义在大量未标注的文本数据上训练将预训练模型调整到特定任务数据需求大量多样的未标注文本数据较小的特定任务标注数据目标构建一般语言知识针对特定任务专业化模型过程数据收集、在大数据集上训练、预测下一个词/序列特定任务的数据收集、调整最后一层以适应任务、在新数据集上训练、基于任务生成输出模型修改整个模型训练最后几层调整以适应新任务计算成本高(大数据集、复杂模型)较低(小数据集、微调层)训练持续时间数周到数月数天到数周目的一般语言理解特定任务性能改进示例GPT, LLaMA 3微调LLaMA 3以进行摘要 表1.1:大型语言模型(LLMs)中预训练与微调的比较概述。该表概述了预训练和微调阶段在定义、数据需求、目标、过程、模型修改、计算成本、训练持续时间及其各自目的等方面的关键差异,示例突出了具体模型和任务。预训练涉及在大量未标注数据上进行广泛训练以构建一般语言知识,而微调则使用较小的标注数据集将预训练模型调整到专业任务,专注于特定任务的性能改进。 1.8 微调LLMs的重要性 1.
迁移学习:微调利用预训练期间获得的知识,将其调整到特定任务上,减少计算时间和资源。
降低数据需求:微调需要较少的标注数据,专注于将预训练特征调整到目标任务。
提高泛化能力:微调增强了模型对特定任务或领域的泛化能力,捕捉一般语言特征并进行定制。
高效模型部署:微调后的模型在实际应用中更高效,计算效率高,适合特定任务。
对各种任务的适应性:微调后的LLMs可以适应广泛的任务,在各种应用中表现良好,而无需特定任务的架构。
领域特定性能:微调使模型在领域特定任务中表现出色,通过适应目标领域的细微差别和词汇。
更快的收敛:微调通常能够更快收敛,从而以已经捕捉到的通用语言特征的权重开始。
1.9 检索增强生成(RAG)
利用自己的数据的一个流行方法是在查询LLM模型时将其纳入提示中。这种方法称为检索增强生成(RAG),涉及检索相关数据并将其作为LLM 的附加上下文使用。RAG工作流程不是仅依赖训练数据中的知识,而是提取相关信息,将静态LLMs与实时数据检索相连接。通过RAG架构,组织可以部署任何LLM模型,并通过提供少量自己的数据来增强结果的相关性(见图1.4的视觉工作流程)。此过程避免了与微调或预训练模型相关的成本和时间。
图1.4:传统检索增强生成(RAG)管道步骤的插图,描绘了从客户端查询到响应生成的顺序过程。管道以客户端的问题开始,接着在向量数据库中进行语义搜索,在生成LLM模型的提示之前,上下文性地丰富数据。最终响应经过后处理并返回给客户端。 1.9.1 传统RAG管道和步骤 1.
1.9.2 使用RAG的好处
• 最新和准确的响应:提高LLM的响应质量,利用当前外部数据,提高准确性和相关性。 * • 减少不准确响应:为LLM的输出提供相关知识基础,降低生成不正确信息的风险。 * • 领域特定响应:提供针对组织专有数据的上下文相关响应。 * • 效率和成本效益:提供一种具有成本效益的方法,以定制LLM,而无需广泛的模型微调。
1.9.4 用例和示例 1.
问答聊天机器人:将LLM与聊天机器人集成,以从公司文档中生成准确答案,增强客户支持。
搜索增强:使用LLM生成的答案增强搜索引擎,以提高信息查询的准确性。
知识引擎:使用LLM回答与内部功能(如人力资源和合规)相关的问题,使用公司数据。
1.9.5 选择RAG与微调之间的考虑
图 1.5:比较不同场景下所需的模型适应与所需外部知识水平的图,突出检索增强生成(RAG)、微调及其在问答系统、客户支持自动化和摘要任务等各种上下文中的混合应用的作用。(改编自 [14]) 1.10 报告目标 1.10.1 目标与范围 本报告的主要目标是对大型语言模型(LLMs)的微调技术进行全面分析。这涉及到理论基础、实际实施策略及挑战的探索。报告研究了各种微调方法及其应用和最新进展。 1.10.2 关键问题和解决方案 本报告探讨了围绕微调LLMs的关键问题,首先提供LLMs的基础见解、演变和在自然语言处理(NLP)中的重要性。报告定义了微调,将其与预训练区分开,并强调其在为特定任务调整模型中的作用。关键目标包括提升模型在特定应用和领域中的性能。 报告概述了结构化的微调过程,展示了高层次的管道,包含视觉表示和详细的阶段解释。它涵盖了实际实施策略,包括模型初始化、超参数定义以及微调技术,如参数有效微调(PEFT)和检索增强生成(RAG)。报告还探讨了行业应用、评估方法、部署挑战和最近的进展。
报告的其余部分提供了对LLMs微调的全面理解。主要章节包括对微调管道、实际应用、模型对齐、评估指标和挑战的深入探讨。最后的部分讨论微调技术的发展,强调正在进行的研究挑战,并为研究人员和从业者提供见解。