首页 > 其他分享 >datawhale 第一课 笔记

datawhale 第一课 笔记

时间:2024-12-10 23:45:08浏览次数:4  
标签:训练 模型 微调 笔记 第一课 datawhale LoRA 适配器 内存

1. 注册星火maas平台账号

2. 选择 训练模型类型  细分类型为

文本对话模型   文生图模型  

图像分类模型  文本分类模型

此处我们选择 文本对话模型

 

选择基础模型

此处选择 spark lite  轻量训练成本低

3. 选择训练方式: 零代码精调

    训练方法: LoRA

LoRA:LoRA在固定预训练大模型本身的参数基础上,在保留自注意力模块中原始权重矩阵的基础上,对权重矩阵进行低秩分解,训练过程中只更新低秩部分的参数

4. 创建数据集

选择跟模型对应的 文本对话数据集  内部格式为 json 

示例数据 

[{
"instruction": "小姐,别的秀女都在求中选,唯有咱们小姐想被撂牌子,菩萨一定记得真真儿的——",
"input": "",
"output": "嘘——都说许愿说破是不灵的。"
}]

设置数据集类型 为训练集

设置用途为 有监督精调sft

设置数据集格式 为 AIpaca 

ShareGPT 格式 适合训练多轮对话模型。

Alpaca 格式 适用于单轮任务,如总结、翻译、问答等。

5 参数设置

 

学习率: 控制在每次迭代中更新模型参数的步幅。建议值:1e-5~1e-4(1e-5=0.00001,1e-4=0.0001)。较小的学习率使更新更加稳定,但可能需要更多的迭代才能达到收敛。较大的学习率可以加快收敛速度,但可能会导致不稳定的训练过程甚至发散 

训练次数: 训练数据的次数,建议值为1-20,训练轮数过多可能会导致过拟合,出现通用能力的遗忘;训练轮数过少可能无法充分训练模型。训练的数据集较小可以设置大一点的epoch,让模型充分收敛。100条左右的数据集,建议epochs为10-20;1000条左右的数据集,建议epochs为5-10;10000条左右的数据集,建议epochs为2-5

输入序列分词后的最大长度: 模型每次处理的文本序列的最大长度限制(通常以分词后的token数量计算)。建议值为512 -2048,较长的序列允许模型处理更多的上下文信息,能够捕捉到更复杂的依赖关系,但会增加计算开销和内存占用。较短的序列可以提高计算效率,但可能丢失部分上下文信息

Galore特性: Galore (Gradient Low-Rank Projection) 即梯度低秩投影,能够通过投影技术降低优化器状态的内存占用,大幅减少训练大模型时的内存需求,结合8位精度优化器进一步优化内存使用,同时保持模型的准确性。此外,Galore具备动态子空间切换和分层更新机制,使得模型训练更加灵活高效

BAdam特性: Badam (Block coordinate method with Adam as an inner solver) 是一种基于块坐标优化的内存高效优化器。通过将模型参数划分为多个块,每次只更新一个块的参数,大大减少了内存使用量。其核心特性包括块坐标优化框架、动态块切换机制以及结合Adam优化器,从而在有限的硬件资源上实现完整参数的高效微调

Unsloth特性:Unsloth是一款轻量级开源库,专注于加速大语言模型的微调过程。通过优化内存使用,减少40%-80%的内存占用,并能使训练速度提升2-5倍,支持超长上下文窗口,最大可达228K tokens,使其在处理长序列任务时非常高效

LoRA作用模块: LoRA作用模块主要集中在大型语言模型的自注意力机制和前馈神经网络上。通过引入低秩适配器,LoRA可以减少这些层在微调过程中的计算和内存需求,同时保留模型的性能

LoRA秩: LoRA秩指在微调过程中使用的低秩矩阵的维度,决定适配器的复杂度和更新参数的数量。较低的秩可以减少内存和计算需求,提高微调效率,但可能会影响模型表现;较高的秩则能保留更多信息,适合对精度要求较高的任务,但过高的秩可能导致过拟合。建议值为4-64

LoRA随机丢弃: LoRA随机丢弃是一种正则化技术,用于在微调过程中随机丢弃低秩适配器中的部分权重,以防止模型过拟合,能在不显著增加计算复杂度的前提下提高模型的整体表现。基于此,模型能够在小数据集上提升泛化能力。LoRA的dropout应设置较小,以确保性能的稳定性,建议值为0-0.02

LoRA缩放系数: LoRA缩放系数(LoRA Alpha)用于调整低秩适配器对模型权重更新的影响,帮助控制适配器在微调过程中的贡献。较大的缩放系数可以增强适配器的作用,而较小的系数则保留更多原始模型的特征。建议值为16-32,合适的LoRA缩放系数可以平衡模型性能和适配器的有效性,确保在微调过程中模型的稳定性与适配器的表现都得到优化

 

训练中

 

标签:训练,模型,微调,笔记,第一课,datawhale,LoRA,适配器,内存
From: https://www.cnblogs.com/dennicliu/p/18598359

相关文章

  • StarBlog博客Vue前端开发笔记:(1)准备篇
    前言之前在【基于.NetCore开发博客项目StarBlog-(32)第一期完结】里说到StarBlog的Vue前端系列已经写好了本来打算后面再发的,不过最近有点懒没去写新的文章......
  • python学习笔记—5—标识符和运算符
    1.标识符(1)定义             用户在编程时所使用的一系列名字,用于给变量、类、方法等命名(2)标识符命名规则<1>内容限定    标识符的命名中只能由数字、英文、中文、下划线组成,其他都不被允许使用注意:1.不推荐中文命名      2.数字......
  • 惊艳!首份“架构师成长笔记”在GitHub狂澜9000星
    其实架构师是需要一个相对而言对架构师友善的环境。第一,架构师到底需要什么?一个架构师要成长,首先他需要信任,第二他需要授权,第三他需要时间,第四他需要资源,少一样都很难开展工作。如果一个公司没有很系统的架构设计,对于架构师来说这是一个创造机会或者创造价值的场景,一开始的选......
  • VINS-Mono工程笔记(五):IMU预积分
     1.processimu()函数分析/***处理IMU数据*linear_acceleration线加速度*angular_velocity角速度**/voidEstimator::processIMU(doubledt,constVector3d&linear_acceleration,constVector3d&angular_velocity){//1.判断是不是第一个imu消息,如......
  • 凸包学习笔记
    凸包学习笔记内容好多啊。概念\(n\)个点形成的凸包,指的是在坐标系上这\(n\)个点构成的包含所有点的,以这\(n\)个点中的一些为顶点的极小的凸多边形。而一个凸包又由两部分组成,分为上凸壳和下凸壳(其实和凸包区分性不大),可以理解为这个凸多边形的上半部分和下半部分。常见场......
  • 泷羽sec专题课笔记-- Windows作业--计算器 / 资源耗尽型恶意代码静态分析
    本笔记为泷羽sec《红队全栈课程》学习笔记,课程请可自行前往B站学习,课程/笔记主要涉及网络安全相关知识、系统以及工具的介绍等,请使用该课程、本笔记以及课程和笔记中提及工具的读者,遵守网络安全相关法律法规,切勿进行违法违规违纪的操作。写在最前面的话,我们为什么要学......
  • Numpy矩阵运算笔记
    此篇文章在2022年10月28日被记录Numpy矩阵基本运算1、python矩阵操作引入库:importnumpyasnp创建一个二维矩阵:>>>a=np.mat([[1,2,3],[4,5,6]])打印a矩阵:>>>amatrix([[1,2,3],[4,5,6]])打印a矩阵形状:>>>a.shape(2,3)转置a矩阵:......
  • Markdown学习笔记
    此篇文章在2022年10月21日被记录Markdown标题========在文本下方使用多个=======表示标题例如:这是一级标题===========演示:这是一级标题在文本下方使用多个----表示小一些的标题例如:这是二级标题--------演示:这是二级标题使用#号可表示1-6级标题,一级标题......
  • Numpy入门学习笔记
    此篇文章在2022年10月21日被记录Numpy简单应用============创建一个一维数组a=np.array([0,1,2,3,4])b=np.array((0,1,2,3,4))c=np.arange(5)d=np.linspace(0,2*np.pi,5)print(a)>>>[01234]print(b)>>>[01234]print(c)>>>[0......
  • markdown笔记
    1标题(六级)一级二级三级四级五级六级2引用这是一段引用3列表3.1有序列表把大象放进冰箱:打开冰箱把大象放进去关上冰箱3.2无序列表阿姆斯特丹加加林汤姆斯3.3任务列表明天要做的事-[]吃饭-[]睡觉-[]打豆豆......