网上大模型微调的资料非常多,但大多数材料只涉及如何调用成熟的依赖包,没有讲清楚为什么这样干以及微调的由来。下来我将通过尽量通俗的易懂的话,阐述大模型微调的由来,带你系统性入门大模型微调。
首先要说的是,要想入门大模型微调,不是简单网上调个包就可以了。建议系统了解Prompt-Tuning、P-tuning、P-Tuning v2、Lora等微调方法以及原理。
要明白在ChatGPT出来之前,GPT这套技术方案并不是行业主流。各大公司都在使用Google提出的BERT作为预训练模型。
那么GPT和BERT有什么区别呢?
GPT的训练目标是做词语接龙。其在预训练阶段的目标很简单:根据上文序列预测下一个词(token)。具体示意图如下所示。
BERT的训练目标是做完形填空。BERT在预训练阶段使用了两个任务:遮挡语言模型(MLM)和下一句预测(NSP)。MLM任务通过在输入文本中随机遮挡一些词汇,将遮挡的词汇重置为[MASK],并预测[MASK],帮助模型学会理解双向上下文。NSP任务则让模型学会判断两个句子是否是连续的。
GPT、BERT预训练完成后,还需适配下游任务。比如我想将BERT预训练模型用于垃圾广告分类,需在输入[CLS]token,对应输出位置1处,额外配置一个Classifer网络用于分类。具体示意图如下所示。
从上面的区别可以看出,BERT适用于各种自然语言理解(NLU)任务,如情感分析、命名实体识别、问答等。它通常作为一个特征提取器来为下游任务提供表示。而GPT由于其“词语接龙”的特性,更擅长文本生成。
在OpenAI尚未大力出奇迹的时候,行业内的通识均是“特征提取+下游任务适配”,并不相信GPT大量“词语接龙”会产生“智能涌现”。
具体大模型微调思维导图如下所示。
要想入门大模型微调,不是简单网上调个包就可以了。建议系统了解Prompt-Tuning、P-tuning、P-Tuning v2、Lora等微调方法以及原理。
1.全参数微调
顾名思义,大模型所有参数都要参加微调。看图2这个例子。如果需要全参数微调,BERT+Classifer中所有参数均参加反向传播。因为全参数微调更新力度大,计算成本高,且效果未必有保障,所以固定大部分预训练参数,只微调少数参数的部分微调是目前更为热门的选择。
2.部分微调
2.1 传统微调
如图2所示,更新Classifer中的参数即可。当然图2只是举一个分类的例子,传统微调在NLU任务中应用不仅仅包含分类任务,还有文本匹配、实体识别、摘要生成等。均可通过“预训练模型+下游任务适配器”这种模式,预训练模型参数不动,更新适配器中的参数来完成对下游任务迁移。GPT2早期也是“预训练模型+下游任务适配器”这种模式。
但是这种微调方式,存在一个很严重的问题:小样本场景过拟合。因此引入了Prompt-Tuning。
2.2 Prompt-Tuning(广义上的)
大家都了解提示工程,一个好的提示工程模板,能够最大限度激发大模型的潜力。
而Prompt的目的是将下游任务目标转换为预训练的任务。
如何理解这句话呢?
我们依然以二分类的垃圾邮件分类作为例子,描述Prompt-tuning的工作原理。给定一个句子[CLS] I like the Disney films verymuch.[SEP]传统的Fine-tuning方法是将其通过BERT的Transfomer获得[CLS]表征之后再引入新增加的MLP分类器进行二分类,预测该句子是积极的(positive)还是消极的(negative),因此需要一定量的训练数据来训练。
而Prompt-Tuning则执行如下步骤:
1.构建模板(Template construction)
通过人工定义、自动搜索、文本生成等方法,生成与给定句子相关的一个含有[MASK]标记的模板。例如 It was [MASK].,并拼接到原始的文本中,获得Prompt-Tuning的输入:[CLS]I like the Disney films verymuch.[SEP]It was [MASK].[SEP]。将其喂入BERT模型中,并复用预训练好的MLM分类器,即可直接得到[MASK]预测的各个token的概率分布;
2.标签词映射(Label Word Verbalizer)
因为[MASK]部分我们只对部分词感兴趣,因此需要建立一个映射关系。例如如果[MASK]预测的词是“great”,则认为是positive类;如果是“terrible”,则认为是negative类。
因此在prompt-tuning中,如何构建模板(pattern)以及如何构建标签词映射(Verbalizer)是研究的热点,也衍生出许多研究方向。
2.2.1与pattern相关的方法:
2.2.1.1 手动构造pattern
现在大模型许多提示工程模板设计,均是利用手动构造pattern。比如,我想要求大模型写一篇小说,我会生成一个让大模型角色扮演小说家的模板。例如 我想让你扮演一个小说家。您将想出富有创意且引人入胜的故事,可以长期吸引读者。,并拼接到原始的文本中,获得大模型输入:我想让你扮演一个小说家。您将想出富有创意且引人入胜的故事,可以长期吸引读者。主题为:一个历史学家穿越到秦朝的故事。将其喂入大模型中。
不过需要注意的是,目前大模型参数数量通常超过100亿。在Language Models are Few-Shot Learners这篇论文系统论证了,扩展大语言模型参数可以大大提高与任务无关的少样本性能,有时甚至可以与之前最先进的微调方法相媲美。
因此现在大模型很多情况下都是手动构造pattern就能取得很好的效果。但是之前模型参数量比较小的时候,prompt直接用效果会下降,因此还需要考虑微调。
prompt-tuning可以分为三大块分别为启发式构造pattern、自动生成pattern和伪标记法构造pattern。重点为伪标记法构造pattern,其中涉及Prompt-Tuning、P-tuning、prefix tuning、P-Tuning v2。
学AI大模型的正确顺序,千万不要搞错了
🤔2026年AI风口已来!各行各业的AI渗透肉眼可见,超多公司要么转型做AI相关产品,要么高薪挖AI技术人才,机遇直接摆在眼前!
有往AI方向发展,或者本身有后端编程基础的朋友,直接冲AI大模型应用开发转岗超合适!
就算暂时不打算转岗,了解大模型、RAG、Prompt、Agent这些热门概念,能上手做简单项目,也绝对是求职加分王🔋
📝给大家整理了超全最新的AI大模型应用开发学习清单和资料,手把手帮你快速入门!👇👇
学习路线:
✅大模型基础认知—大模型核心原理、发展历程、主流模型(GPT、文心一言等)特点解析
✅核心技术模块—RAG检索增强生成、Prompt工程实战、Agent智能体开发逻辑
✅开发基础能力—Python进阶、API接口调用、大模型开发框架(LangChain等)实操
✅应用场景开发—智能问答系统、企业知识库、AIGC内容生成工具、行业定制化大模型应用
✅项目落地流程—需求拆解、技术选型、模型调优、测试上线、运维迭代
✅面试求职冲刺—岗位JD解析、简历AI项目包装、高频面试题汇总、模拟面经
以上6大模块,看似清晰好上手,实则每个部分都有扎实的核心内容需要吃透!
我把大模型的学习全流程已经整理📚好了!抓住AI时代风口,轻松解锁职业新可能,希望大家都能把握机遇,实现薪资/职业跃迁~