2022年11月30日,ChatGPT发布至今,国内外不断涌现出了不少大模型,呈现“百模大战”的景象,比如ChatGLM-6B、LLAMA、Alpaca等模型及在此模型基础上进一步开发的特定领域的大模型。今年3月15日,GPT-4发布后,也出现了一些多模态的大模型,比如百度的文心一言、讯飞星火认知大模型等等。
要想训练一个针对特定领域的大模型,如果采用全量参数微调(Full Parameter
Futuing)的方法,一方面需要大量的高质量数据集、另一方需要较高的算力,比如8块A100 80G
GPU,甚至需要成百上千的GPU。一般的小企业或者高校研究所对此望而却步。
那么,有没有不需要大量算力就能在特定领域数据上对大模型进行微调的方法呢?
下面,给大家介绍几种常见的大模型微调方法:Adapter-Tuning、Prefix-Tuning、Prompt-
Tuning(P-Tuning)、P-Tuning v2、LoRA。并介绍各种方法之间的效果对比。
【一一AGI大模型学习 所有资源获取处一一】
①人工智能/大模型学习路线
②AI产品经理入门指南
③大模型方向必读书籍PDF版
④超详细海量大模型实战项目
⑤LLM大模型系统学习教程
⑥640套-AI大模型报告合集
⑦从0-1入门大模型教程视频
⑧AGI大模型技术公开课名额
该方法出自2019年的论文“Parameter-Efficient Transfer Learning for NLP ”
论文链接:https://arxiv.org/pdf/1902.00751.pdf
github链接:[GitHub - google-research/adapter-bert](https://github.com/google-
research/adapter-bert “GitHub - google-research/adapter-bert”)
模型结构如上图左侧所示,
微调时冻结预训练模型的主体,由Adapter模块学习特定下游任务的知识。其中,Adapter模块结构如上图右侧所示,包含两个前馈层和一个中间层,第一个前馈层和中间层起到一个降维的作用,后一个前馈层和中间层起到升维的作用。
Adapter调优的参数量大约为LM参数的3.6%。
该方法出自2021年的论文“Prefix-Tuning: Optimizing Continuous Prompts for Generation”
论文链接:https://arxiv.org/pdf/2101.00190.pdf
github链接:GitHub - XiangLi1999/PrefixTuning: Prefix-Tuning: Optimizing
Continuous Prompts for Generation
上图展示了Full Parameter Finetuning与Prefix Tuning之间的区别,其中,红色部分是需要微调的参数,可以发现,Prefix
Tuning只是在每个任务前有少量的prefix的参数,比如翻译任务,可以在每句话的前面加上“翻译:”来引导模型进行翻译功能。
实验结果表明:
(1)在完整的数据集上,Prefix-Tunning和Fine-Tuning在table-to-
text上的结果是comparable的,而在summarization任务上,prefix-tuning的效果略有下降。但在low-data
settings和unseen topics的情况下,Prefix-Tuning的效果更佳。
(2)与Adapter-Tuning相比,Trefix-Tuning在相同的表现下只需调节更少的参数量。
(3)不同的前缀长度有不一样的性能表现,在一定程度上长度越长,prefix的效果越明显,但也可能出现降低的问题。实验表明,prefix长度对推理速度影响不大,因为prefix上的attention是并行计算的。
Prefix Tuning参数规模约为LM模型整体规模的0.1%。
该方法出自论文2021年的论文“GPT Understands, Too”
论文链接:https://arxiv.org/pdf/2103.10385.pdf
github链接:https://github.com/THUDM/P-tuning
上图展示了P-Tuning和Discrete Prompt Search之间的区别,也引出了P-
Tuning提出的目的。因为离线的Prompt对于连续的神经网络只是次优解,prompt的词之间是彼此关联的,需要将其关联起来。于是,P-Tuning将一些伪prompt输入至LSTM中,然后利用LSTM的输出向量来替代原始的prompt
token,然后一起输入至预训练语言模型中。而且,LSTM和随着预训练语言模型一起训练。
论文中的实验结果表明:
(1)基于bert-base模型,在5/7的数据集上,P-tuning的效果比finetune等更好。
(2)基于gpt模型,在全部的数据集上,P-tuning的效果都比finetune等更好。
(3)对比gpt-base和bert-base,在6/7的数据集上,基于P-tuning,gpt-base的效果都更好。
(4)在自然语言理解任务上,双向模型比单向模型更好。
该方法出自于2022年的论文“P-Tuning v2: Prompt Tuning Can Be Comparable to Fine-tuning
Universally Across Scales and Tasks”
论文链接:https://arxiv.org/pdf/2110.07602.pdf
github链接:GitHub - THUDM/P-tuning-v2: An optimized deep prompt tuning strategy
comparable to fine-tuning across scales and
tasks
上图中,左侧为P-Tuning,右侧为P-Tuning v2。P-Tuning v2与P-Tuning的不同之处在于:将只在第一层插入continuous
prompt修改为在许多层都插入continuous prompt,层与层之间的continuous prompt是相互独立的。
P-Tuning v2与Prefix-Tuning的改进之处在于,除了输入的embedding外,其它的Transformer层也加了前置的prompt。
做出这种改进的原因:
(1)先前的工作显示,Prompt tuning在normal-sized的预训练模型上效果一般。
(2)现有的Prompt tuning方法在较难的文本序列问题上效果不好。
经过这样的改进,模型可训练参数的量从0.01%增加到了0.1%~3%。
实验结果表明:
(1)P-tuning V2可以与传统Fine-tuning有差不多的效果。
(2)Multi-task P-tuning V2效果更好,分析认为可能是变相的数据增强带来的影响。
(3)在不同的任务上的表现和prompt的长度有关系。
(4)对LSTM/MLP层的重新参数化不一定有效,取决于任务和数据集。
LoRA(Low-Rank Adaptation)出自2021年的论文“LoRA: Low-Rank Adaptation of Large
Language Models”
论文链接:https://arxiv.org/abs/2106.09685
github链接:https://github.com/microsoft/LoRA
LoRA技术冻结预训练模型的权重,并在每个Transformer块中注入可训练层(称为秩分解矩阵),即在模型的Linear层的旁边增加一个“旁支”A和B。其中,A将数据从d维降到r维,这个r是LoRA的秩,是一个重要的超参数;B将数据从r维升到d维,B部分的参数初始为0。模型训练结束后,需要将A+B部分的参数与原大模型的参数合并在一起使用。
LoRA微调的优点包括:
(1)训练速度更快。
(2)计算需求更低。
(3)训练权重更小。
(1) Fine-Tuning(标准微调)
优点:
简单易用:直接在预训练模型上进行微调。
适应性强:可以针对特定任务调整整个模型的参数。
效果显著:通常能显著提高模型在特定任务上的表现。
缺点:
计算成本高:需要调整模型的大量参数。
数据需求较高:为了有效微调,通常需要较多的标注数据。
适用场景:当有足够的标注数据和计算资源时,适用于大多数NLP任务。
(2)Parameter-Efficient Fine-Tuning(PEFT)
优点:
参数高效:只修改或优化模型的一小部分参数。
节省计算资源:比完全微调需要的资源少。
缺点:
可能效果有限:对于某些复杂任务,仅优化少量参数可能不足以达到最佳效果。
适用场景:资源受限的情况,或者需要快速适应新任务时。
(3) Prompt-Tuning
优点:
无需改变模型架构:通过设计任务相关的提示(prompt),引导模型生成所需的输出。
资源消耗少:不需要改变模型参数。
缺点:
需要精心设计prompt:有效的prompt设计可能需要丰富的经验和实验。
适用场景:快速适应新任务,尤其适用于资源有限的场景。
(4) LoRA(Low-Rank Adaptation)
优点:
参数高效:通过引入低秩矩阵来调整模型,减少需要优化的参数数量。
节省内存和计算资源。
缺点:
效果可能有限:对于某些复杂任务可能无法达到完全微调的效果。
需要一定的技术知识来实现和调试。
适用场景:需要参数高效调整的场景,特别是在资源有限的情况下。
(5) P-Tuning
优点:
可解释性强:通过可训练的prompt向量进行微调。
资源消耗相对较少。
缺点:
需要适当的调整和实验来找到最佳配置。
可能不适用于所有类型的任务。
适用场景:适用于需要提高模型解释性的任务,以及资源有限的情况。
作为一名热心肠的互联网老兵,我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。
但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的 AI大模型资料
包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。
有需要的小伙伴,可以V扫描下方二维码免费领取
AI大模型时代的学习之旅:从基础到前沿,掌握人工智能的核心技能!
这套包含640份报告的合集,涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。
随着人工智能技术的飞速发展,AI大模型已经成为了当今科技领域的一大热点。这些大型预训练模型,如GPT-3、BERT、XLNet等,以其强大的语言理解和生成能力,正在改变我们对人工智能的认识。 那以下这些PDF籍就是非常不错的学习资源。
保证100%免费
】有需要的小伙伴,可以Vx扫描下方二维码免费领取