第二期书生浦语大模型训练营第四次笔记

news/2025/3/21 2:48:20/

大模型微调技术

大模型微调是一种通过在预训练模型的基础上,有针对性地微调部分参数以适应特定任务需求的方法。

微调预训练模型的方法

  • 微调所有层:将预训练模型的所有层都参与微调,以适应新的任务。

  • 微调顶层:只微调预训练模型的顶层,以适应新的任务。

  • 冻结底层:将预训练模型的底层固定不变,只对顶层进行微调。

  • 逐层微调:从底层开始,逐层微调预训练模型,直到所有层都被微调。

  • 迁移学习:将预训练模型的知识迁移到新的任务中,以提高模型性能。这种方法通常使用微调顶层或冻结底层的方法。

目前来说,我们常用的方法一般是前三种。简单来说模型的参数就类比于,一个在大学学习到所有专业的知识的大学生,基于过往的学习经验以及对生活中的一些事情,已经有了属于自己的一套学习方法思维逻辑。而微调则是一个大学生毕业后从事某一种行业的工作,那他就要开始学习工作上的内容,来产出工作的成果。

常见的微调技术分析

Fine tuning

原理:Fine tuning的原理是在预训练模型的基础上,通过微调模型参数,使其适应特定任务的数据分布和特征表示,从而提高模型在该任务上的性能。
应用场景:Fine tuning适用于需要充分利用预训练模型在大规模数据上学到的特征和知识的场景,特别是在小数据集上也能获得较好性能的情况下。
优点:可以节省大量的训练时间和计算资源,因为可以直接在预训练模型的基础上进行训练,而不需要从头开始训练一个新的模型。
缺点:相比于其他微调方法,可能需要更多的数据和计算资源来达到最佳效果。

Prompt tuning

原理:Prompt tuning的原理是通过设计合适的预训练任务和更新模型的部分参数,使其能够快速适应新任务的数据分布和特征表示,从而提高模型的泛化性能。
应用场景:适用于超过10亿参数量的模型,尤其是当使用足够多的语料和设计有效的预训练任务时,小样本甚至零样本的性能也能被极大地激发出来。它也适用于快速适应新任务的场景。
优点:通过只更新部分参数,降低了计算量和参数量,加速了训练过程。仅需少量数据即可进行。对于大型模型,相比于标准的Fine-tuning,所带来的增益远远高于标准的Fine-tuning。
缺点:在自然语言理解(NLU)中,对于正常大小的预训练模型,Prompt tuning的表现并不理想。并且,现有的Prompt tuning方法无法处理硬序列标记任务,表明在某些情况下可能存在局限性。

LoRA

原理:LoRA的原理是通过对预训练模型的所有权重矩阵进行加减操作,使其更适合下游任务,从而实现微调。这种方法通过减少需要微调的参数量,提高了微调的效率和速度。
应用场景:LoRA适用于需要轻量级微调的大模型,特别是在文本分类、语义理解等自然语言处理任务中。
优点:LoRA提供了一种参数高效的微调方法,旨在解决仅通过训练一小部分参数来微调大型语言模型的不可行性和不切实际的问题。
缺点:尽管LoRA提供了参数高效的微调方案,但相比于全参数微调,存在一定的性能损失或限制。

两种微调范式

更详细内容参考大模型微调方法综述-CSDN博客

通俗解读大模型主流微调方法:从Prefix Tuning、P-Tuning V1/V2到LoRA、QLoRA - 知乎

https://www.cnblogs.com/lx63blog/p/17627664.html

XTuner微调框架介绍

XTuner内置很多微调算法,功能强大,更方便的是还可以适配不同的数据格式,简化数据处理流程。

XTuner 微调 LLM:1.8B、多模态、Agent_哔哩哔哩_bilibili


http://www.ppmy.cn/news/1434627.html

相关文章

基于百度文心大模型全面重构,小度正式推出AI原生操作系统DuerOS X

4月16日,以“创造未来”为主题的2024百度Create AI开发者大会在深圳举办。百度集团副总裁、小度科技CEO李莹正式发布了小度新一代操作系统DuerOS X,该操作系统是小度基于百度文心大模型推出的全球首个AI原生操作系统。李莹表示:“作为⽂⼼⼤模…

IDEA中添加servlet模板

官方代码链接 #if (${PACKAGE_NAME} && ${PACKAGE_NAME} ! "")package ${PACKAGE_NAME};#end #parse("File Header.java")import javax.servlet.*; import javax.servlet.http.*; import javax.servlet.annotation.*; import java.io.IOException…

C++:类与对象完结篇

hello,各位小伙伴,本篇文章跟大家一起学习《C:运算符重载》,感谢大家对我上一篇的支持,如有什么问题,还请多多指教 ! 文章目录 重新认识构造函数1.初始化列表2.explicit关键字 static成员1.sta…

Elasticsearch进阶篇(三):ik分词器的使用与项目应用

ik分词器的使用 一、下载并安装1.1 已有作者编译后的包文件1.2 只有源代码的版本1.3 安装ik分词插件 二、ik分词器的模式2.1 ik_smart演示2.2 ik_max_word演示2.3 standard演示 三、ik分词器在项目中的使用四、ik配置文件4.1 配置文件的说明4.2 自定义词库 五、参考链接 一、下…

轻量级SQLite可视化工具Sqliteviz

什么是 Sqliteviz ? Sqliteviz 是一个单页面离线优先的渐进式网络应用(PWA),用于完全客户端的 SQLite 数据库或 CSV 文件的可视化。 所谓完全客户端,就是您的数据库永远不会离开您的计算机。使用 sqliteviz&#xff0c…

11、【桥接模式】让将抽象和实现分离,使得它们可以独立地变化

你好,我是程序员雪球。 今天我们来聊聊 23 种设计模式中,一种常见的结构型模式,桥接模式。聊聊它的设计思想、应用场景,以及如何使用。 一、设计思想 桥接模式(Bridge Pattern)是一种结构型设计模式&#…

拿捏 顺序表(1)

目录 1. 顺序表的分类2. 顺序表实现3. 顺序表实现完整代码4. 总结 前言: 一天xxx想存储一组数据, 并且能够轻松的实现删除和增加, 此时数组大胆站出, 但是每次都需要遍历一遍数组, 来确定已经存储的元素个数, 太麻烦了, 于是迎来了顺序表不屑的调侃: 数组你不行啊… 顺序表是一…

mac qt android开发环境

1,安装Android Studio 下载 Android Studio 和应用工具 - Android 开发者 | Android Developers (google.cn)