本文结合示例简单讨论如何使用LoRA
微调 (FT) 预训练的 LLM。LoRA
原理将在接下来的文章里详细讨论。
为何要模型微调
**「微调」**是利用预训练LLM并训练至少一个内部参数(即权重),通常是使用预训练好的通用基础模型(例如GPT-3)转换为特定用例(例如 ChatGPT)的专用模型。
与完全依赖**「监督训练」**的模型做提示词工程相比,微调后的模型可以实现更好的性能,同时需要(远)更少的手动标记示例(优点之一)。
虽然在提示工程的帮助下,严格的**「自监督基础模型」**可以在多种任务中表现较好的性能,但这些基础模型仍然是单词预测器,可能生成不完全有用或不准确的结果。由于LLM是有限上下文窗口(context window),所以这些模型在需要大量特定领域知识的任务上性能有限。微调模型可以通过在微调过程中“学习”这些特定领域信息来避免此问题。这也避免使用额外的上下文填充提示,从而降低推理成本。
例如,比较 davinci(基于GPT-3模型)和 text-davinci-003(微调模型)如下。
text-davinci-003 是对齐微调(alignment tuning[1]),旨在使 LLM 的响应更有帮助、更诚实、更无害。
微调不仅可以提高基础模型的性能,而且针对较小的预训练模型进行特定任务集的微调通常可以胜过较大的模型。OpenAI 用他们的第一代“InstructGPT[2]”模型已证明,1.3B参数 InstructGPT 模型的完成率优于175B参数 GPT-3 基本模型。
微调的3种方法
自监督学习
自监督学习包括基于训练数据的固有结构训练模型。在LLM的上下文中通常是给定一系列单词(或更准确地说是标记),预测下一个单词(标记)。目前的大部分GPT-style的预训练模型都是这一类。这种情况下也可以进行微调,「如给定一组示例文本,微调模型可以模仿一个人的写作风格」。
监督学习
监督学习是最常见的微调方法。主要是根据**「特定任务的输入输出对」**(微调数据集)上训练模型,如指令微调,它旨在提高模型在回答问题或响应用户提示方面的性能。
所以,监督学习的**「关键是整理训练数据集(curating a training dataset)」**。在对话模型中,简单且常见的方法是创建问答对并将它们集成到提示模板中。如(更多模板可以参看文献A Survey of Large Language Models[3] A.2.1部分):
"""Please answer the following question. Q: {Question} A: {Answer} """
为何要创建模板?后面的文章我们在讨论。
强化学习
强化学习(RL)使用奖励模型来指导基础模型的训练,其基本思想是先训练奖励模型以便对语言模型的完成情况进行评分,这个评分反映了人的偏好。然后,这个奖励模型再与强化学习算法(例如近端策略优化 (Proximal Policy Optimization,PPO))相结合,以微调预训练模型。
OpenAI的InstructGPT[4]模型展示了如何使用RL进行模型微调的一个例子,该模型通过3个关键步骤完成RL的微调:
-
利用已有或生成的高质量的提示-响应对,并使用监督学习对预训练模型进行微调。(~13k 提示-相应对训练集)。这一步可以忽略直接跳到第2步,参见文献[5]。
-
使用微调模型生成文本,并根据人的偏好通过人工标记的方式对响应进行排名,然后使用这些偏好排名来训练奖励模型。(~33k提示-相应对训练集)。
-
使用奖励模型和RL算法(例如 PPO)进一步微调模型。(~31k提示-相应对训练集)。
虽然上述策略通常会使得LLM在完成文本生成时比基本模型更可取,但也可能在其他任务子集上的性能降低,这种性能下降的代价也称为调整税(alignment tax[6])
监督微调步骤
本文重点介绍监督微调,其步骤包括:
-
选择微调任务(例如摘要、问答、文本分类)。
-
根据微调任务准备训练数据集,即创建 (100–10k) 输入输出对并预处理数据(即标记化、截断和填充文本)。
-
选择一个基础模型(试验不同的模型,然后选择一个在所需任务上表现最好的模型)。
-
通过监督学习微调模型。
-
评估模型性能。
这里重点讨论第4步:如何进行模型微调。
训练参数的3个可选项
在微调具有~100M-100B参数的模型时,需要考虑计算成本。为此,一个重要的问题是需要(重新)训练哪些参数?
选项 1:重新训练所有参数
第一种是训练所有内部模型参数(称为全参数调优,full parameter tuning)。这种调优方式计算成本最高。最重要的是,全参数调整的一个已知问题是**「灾难性遗忘现象」**,也就是模型“忘记”它在初始训练中“学到”的有用信息。
减轻选项1的缺点的一种方法是冻结大部分模型参数,这就引出了选项 2。
选项2:迁移学习
迁移学习(TL)的主要思想是在将模型应用于新任务时**「保留模型从过去的训练中学到的有用表示/特征」(也就是微调的时候「权重不变」),只删除神经网络的“头部”并用新层替换(所谓的头部包括其最终层,这些层将模型的内部表示转换为输出值)。正是由于使用了新层替换,TL虽然保持大多数参数不变可以减轻训练LLM的巨大计算成本,但它「不一定能解决灾难性遗忘的问题」**。
选项3:参数高效微调 (PEFT)
PEFT(Parameter Efficient Fine-tuning[7])使用相对较少的可训练参数来增强基础模型,其关键是一种微调方法,可通过使用一小部分计算和存储成本达到与全参数调优相当的性能。
PEFT封装了一系列技术,其中之一是流行的LoRA(Low-Rank Adaptation[8])方法。LoRA 背后的基本思想是在现有模型中**「选择一些层」**(通常是Linear层和Conv1D层等),并根据以下一定的公式修改预训练模型中相应层的权重。
随着大模型的持续爆火,各行各业都在开发搭建属于自己企业的私有化大模型,那么势必会需要大量大模型人才,同时也会带来大批量的岗位?“雷军曾说过:站在风口,猪都能飞起来”可以说现在大模型就是当下风口,是一个可以改变自身的机会,就看我们能不能抓住了。
那么,我们该如何学习大模型?
作为一名热心肠的互联网老兵,我决定把宝贵的AI知识分享给大家。 至于能学习到多少就看你的学习毅力和能力了 。我已将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。
一、大模型全套的学习路线
学习大型人工智能模型,如GPT-3、BERT或任何其他先进的神经网络模型,需要系统的方法和持续的努力。既然要系统的学习大模型,那么学习路线是必不可少的,下面的这份路线能帮助你快速梳理知识,形成自己的体系。
L1级别:AI大模型时代的华丽登场
L2级别:AI大模型API应用开发工程
L3级别:大模型应用架构进阶实践
L4级别:大模型微调与私有化部署
一般掌握到第四个级别,市场上大多数岗位都是可以胜任,但要还不是天花板,天花板级别要求更加严格,对于算法和实战是非常苛刻的。建议普通人掌握到L4级别即可。
以上的AI大模型学习路线,不知道为什么发出来就有点糊,高清版可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费
】
二、640套AI大模型报告合集
这套包含640份报告的合集,涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。
三、大模型经典PDF籍
随着人工智能技术的飞速发展,AI大模型已经成为了当今科技领域的一大热点。这些大型预训练模型,如GPT-3、BERT、XLNet等,以其强大的语言理解和生成能力,正在改变我们对人工智能的认识。 那以下这些PDF籍就是非常不错的学习资源。
四、AI大模型商业化落地方案
以上的AI大模型学习资料,都已上传至CSDN,需要的小伙伴可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费
】
作为普通人,入局大模型时代需要持续学习和实践,不断提高自己的技能和认知水平,同时也需要有责任感和伦理意识,为人工智能的健康发展贡献力量。