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

ops/2024/9/23 10:24:48/

大模型微调技术

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

微调预训练模型的方法

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

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

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

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

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

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

常见的微调技术分析

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/ops/13605.html

相关文章

STL-list的使用及其模拟实现

在C标准库中,list 是一个双向链表容器,用于存储一系列元素。与 vector 和 deque 等容器不同,list 使用带头双向循环链表的数据结构来组织元素,因此list插入删除的效率非常高。 list的使用 list的构造函数 list迭代器 list的成员函…

(七)Idea编辑器集成Tomcat

1. 点击桌面上Idea快捷方式打开Idea编辑器,假如没有创建项目的话打开Idea编辑器后的界面展示如下图所示 2. 点击界面左侧菜单中的自定义 3. 然后点击界面中的“所有设置...”,然后点击“构建、执行、部署”,选择其中的“应用程序服务器” 4. 点击“”按钮…

回归预测 | Matlab实现SA-BP模拟退火算法优化BP神经网络多变量回归预测

回归预测 | Matlab实现SA-BP模拟退火算法优化BP神经网络多变量回归预测 目录 回归预测 | Matlab实现SA-BP模拟退火算法优化BP神经网络多变量回归预测预测效果基本描述程序设计参考资料 预测效果 基本描述 1.Matlab实现SA-BP模拟退火算法优化BP神经网络多变量回归预测&#xff0…

Arduino UNO驱动MPR121接近电容式触摸传感器控制WS2812彩灯

简介 MPR121芯片功能强大可用作触摸,电容检测,驱动LED等等.在低速扫描下可以将功 耗降低到8μA,可以处理多达12个独立的触摸板。支持I2C,几乎可以用任何微控 制器连接。可以使用ADDR引脚选择4个地址中的一个,一个I2C2线总线上共有48 个电容触摸板。使用该芯片比使用模拟输入进行…

JavaWeb前端/后端开发规范——接口文档概述及YApi平台的使用

前言: 整理下笔记,打好基础,daydayup!!! 接口文档 什么是接口文档? 目前主流的开发模式为前后端分离式开发,为了方便前后端的对接,就需要使用接口文件进行统一规范。 接口文档记载什么信息? 1&…

【大语言模型LLM】-如何使用大语言模型提高工作效率?

关于作者 行业:人工智能训练师/LLM 学者/LLM微调乙方PM发展:微调大模型训练/大模型增强检索RAG分享国内大模型前沿工作记录,共同成长,欢迎关注交流… 大语言模型LLM基础-系列文章 大语言模型LLM】-大语言模型如何编写Prompt?持…

Mediator 中介者

意图 使用一个中介者对象来封装一系列的对象交互。中介者使各个对象不需要显式地互相引用,从而使其耦合松散,而且可以独立的改变他们之间的交互。 结构 Mediator(中介者)定义一个接口用于各同事(Colleague&#xff0…

云服务器部署Springboot项目

前端项目打包 修改ip地址 在控制台输入npm run build:prod 会产生dist文件 将dist文件中的内容移动至/usr/local/nginx/html目录下 后端项目打包 修改ip地址 执行clean操作 执行install操作 将生成的target文件中的jar包移动至/usr/local/src目录下 启动 注意⚠️&#xff…