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

news/2024/5/18 12:36:04

大模型微调技术

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

微调预训练模型的方法

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

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

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

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

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

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

常见的微调技术分析

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.mrgr.cn/p/68173026

相关文章

Net8微服务之Consul、Ocelot、IdentityServer4

前言 情绪的尽头是沉默 1.微服务概念 1.1微服务发展 分布式解决性能问题,微服务解决维护性、扩展性、灵活性。1.2微服务概念 微服务(或称微服务架构),是一种现代化的软件架构方法,它将一个应用程序分解为多个小型、独立的服务单元,每个服务都负责特定的业务功能,并且可以独…

后台管理系统加水印(react)

效果 代码图片 代码 window.waterMark function (config) {var defaultConfig {content: 我是水印,fontSize: 16px,opacity: 0.3,rotate: -15,color: #ADADAD,modalId: J_waterMarkModalByXHMAndDHL,};config Object.assign({}, defaultConfig, config);var existMarkModal…

Net8微服务实战

前言 学习杨中科老师开源项目在线英语网站微服务 1.需求 服务拆分2.项目源码项目 类 说明Peng.ASPNETCore DistributedCacheHelper 分布式缓存帮助类MemoryCacheHelper 内存缓存帮助类UnitOfWorkFilter 工作单元筛选器Peng.Commons Validators文件夹 FluentValidation的扩展类L…

OpenCV 如何实现边缘检测器

返回:OpenCV系列文章目录(持续更新中......) 上一篇:OpenCV如何实现拉普拉斯算子的离散模拟 下一篇 :OpenCV系列文章目录(持续更新中......) 目标 在本教程中,您将学习如何: 使用 OpenCV 函数…

java实现wav的重采样

原因是之前写的TTS文件,需要指定采样率和单声道 但是TTS是用的Jacob调用COMsapi实现的 javaWNI10JACOB方式 SAPI底层支持的是C,C#【官方文档】 SpAudioFormat SetWaveFormatEx method (SAPI 5.4) | Microsoft Learn 用C实现的方式【可指定输出的WAV…

vue3的ref和reactive

ref RefImpl:引用对象,如果想让一个普通变量变成响应式的,就需要把这个变量丢给ref。 修改的时候需要使用name.value进行修改。使用的时候直接使用name字段就行。 补充:const obj{name:’li’}定义的对象是可以修改对象里面的属性…

Oracle 脑残 CBO 优化案例

今天晚上下班回来才有空看群,群友发了一条很简单的慢SQL问怎么优化。 非常简单,我自己模拟的数据。 表结构:-- auto-generated definition CREATE TABLE HHHHHH (ID NUMBER NOT NULLPRIMARY KEY,NAME VARCHAR2(20),PARAGRAPH_ID NUMBER ) /CREATE INDEX I…

甘特图是什么?如何利用其优化项目管理流程?

甘特图是项目管理软件中十分常见的功能,可以说每一个项目经理都要学会使用甘特图才能更好的交付项目。什么是甘特图?甘特图用来做什么?简单来说一种将项目任务与时间关系直观表示的图表,直观地展示了任务进度和持续时间。 一、甘特…

【pytorch学习】之线性神经网络-实现线性回归

线性回归的从零开始实现 在了解线性回归的关键思想之后,我们可以开始通过代码来动手实现线性回归了。我们将从零 开始实现整个方法,包括数据流水线、模型、损失函数和小批量随机梯度下降优化器。虽然现代的深度学习框架几乎可以自动化地进行所有这些工作,但从零开始实现可以…

RK3588 Android13 鼠标风格自定义动态切换

前言 电视产品,客户提供了三套鼠标图标过来,要求替换系统中原有丑陋风格且要支持动态切换, 并且在 TvSetting 中要有菜单,客户说啥就是啥呗,开整。 效果图 test framework 部分修改文件清单 png 为鼠标风格资源图片,这里就不提供了,可自由找一个替换一下就行 framew…

苹果开发初学者指南:Xcode 如何为运行的 App 添加环境变量(Environmental Variable)

概览 Xcode 15 在运行 SwiftUI 代码时突然报告如下警告: Error: this application, or a library it uses, has passed an invalid numeric value (NaN, or not-a-number) to CoreGraphics API and this value is being ignored. Please fix this problem. 不仅如此…

cdh cm界面HDFS爆红:不良 : 该 DataNode 当前有 1 个卷故障。 临界阈值:任意。(Linux磁盘修复)

一、表现 1.cm界面 报错卷故障 检查该节点,发现存储大小和其他节点不一致,少了一块物理磁盘 2.查看该磁盘 目录无法访问 dmesg检查发现错误 dmesg | grep error二、解决办法 移除挂载 umount /data10 #可以移除挂载盘,或者移除挂载目…

boss直聘__zp_stoken__逆向

声明 本文章中所有内容仅供学习交流,抓包内容、敏感网址、数据接口均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关,若有侵权,请联系我立即删除! 目标网站 aHR0cHM6Ly93d3cuemhpcGluLmNvbS93ZWIvZ2Vlay9qb2I/cXVlcnk9SmF2YSZjaXR5PTEwM…

带头循环双向链表专题

1. 双向链表的结构 带头链表⾥的头节点,实际为“哨兵位”,哨兵位节点不存储任何有效元素,只是站在这⾥“放哨 的” “哨兵位”存在的意义: 遍历循环链表避免死循环。 2. 双向链表的实现 2.1双向链表结构 typedef int DataTyp…

delphi清理txt文件多余的空格

PDF文件转存为文本,多了一堆不需要的空格,写个小程序处理一下,没逻辑,直接上代码。 delphi用的是XE11.3unit UnitSmallMain;interfaceusesSystem.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants,FMX.Types, FMX.Controls, FMX.Forms, FMX.Graph…

[算法学习笔记] 并查集

并查集。非基础教学。提示:本文并非并查集模板讲解,是在模板基础上的进一步理解以及拓展。 Review 并查集可以用来维护集合问题。例如,已知 \(a,b\) 同属一个集合,\(b,c\) 同属一个集合。那么 \(a,b,c\) 都属一个集合。 并查集分为 合并,查询 操作。定义 \(fa_i\) 表示点 …

sherpa + ncnn 离线语音识别

目录结构 前言音视频格式转为wavsherpa-ncnn编译LinuxWindowswindows编译中遇到的问题问题“nmake -? failed with: no such file or directory”编译失败原因 成功编译截图 可执行程序说明模型下载语言识别测试LinuxWindows 参考文献 前言 小编需要实现离线音视频语言部分识…

【问题处理】银河麒麟操作系统实例分享,服务器操作系统VNC远程问题分析

1.服务器环境以及配置 【内核版本】 4.19.90-23.8.v2101.ky10.aarch64 【OS镜像版本】 0518-server 2.问题现象描述 服务器通过vncserver:1.service服务启动的vnc服务后,普通用户用vnc连接时,锁屏后,然后输入登陆密码会报密码错误&…

写博客复制黏贴的模板

Armv8/Armv9架构从入门到精通,Armv8/Armv9架构从入门到精通(一期),Armv8/Armv9架构从入门到精通(二期) Armv8/Armv9架构从入门到精通(三期),Arm一期、Arm二期、学习资料、…

计算机网络---第十一天

生成树协议 stp作用: 作用:stp用于解决二层环路问题。 BPDU: 含义:桥协议数据单元,用于传递stp协议相关报文 分类:配置bpdu---用于传递stp的配置信息 tcn bpdu---用于通告拓扑变更信息 包含信息&…