首页 > 其他分享 >【微调大模型参数详解】以chatGLM为例

【微调大模型参数详解】以chatGLM为例

时间:2024-08-15 16:51:35浏览次数:20  
标签:训练 为例 模型 指定 默认 详解 检查点 chatGLM Lora

微调 chatGLM3-6b-base 时涉及的一些重要参数的详细解释

  1. batch_size: 批量大小,默认为4,每个GPU的训练批量大小。增加该值可以提高训练速度,但可能需要更多的显存。

  2. lora_r: Lora R维度,默认为64,指定Lora训练中用于调节的R维度大小。该参数影响Lora模块的复杂度和模型的表现。

  3. weight_decay: 权重衰减,默认为0.0,AdamW优化器的L2权重衰减率,用于防止模型过拟合。

  4. learning_rate: 学习率,默认为1e-4,优化器更新模型参数的步长。适当的学习率有助于模型的收敛。

  5. fp16: 是否使用fp16混合精度训练,默认为False,决定是否启用16位浮点精度训练,以减少内存使用和加快计算速度。

  6. do_train: 是否进行训练,默认为True,控制是否进行训练过程。

  7. evaluation_strategy: 评估策略,默认为’epoch’,决定模型评估的频率,是每个训练轮次还是其他策略。

  8. warmup_ratio: 预热比例,默认为0.03,学习率预热的比例。预热可以帮助学习率在训练初期平稳增长。

  9. logging_steps: 记录损失的频率,默认为1,指定每多少步记录一次训练损失。

  10. optim: 优化器,默认为’paged_adamw_8bit’,指定使用的优化器类型。

  11. quant_type: 量化数据类型,默认为"nf4",用于指定量化过程中的数据表示类型。

  12. max_grad_norm: 梯度裁剪最大范数,默认为0.3,防止梯度爆炸的最大梯度范数。

  13. lora_alpha: Lora alpha值,默认为16,控制Lora训练中的缩放因子。

  14. save_strategy: 保存检查点的策略,默认为’epoch’,决定模型检查点的保存频率。

  15. trust_remote_code: 是否信任远程代码,默认为True,决定是否允许使用远程代码。

  16. compute_dtype: 模型的计算数据类型,默认为torch.float16,指定模型计算时使用的数据类型。

  17. use_auth_token: 是否使用auth token,默认为False,决定是否需要认证令牌来访问特定资源。

  18. double_quant: 是否通过双重量化压缩量化统计数据,默认为True,控制是否使用双重量化来进一步压缩模型。

  19. n_epochs: 训练轮数,默认为5,指定训练过程中优化器更新的总轮次。

  20. group_by_length: 将序列按相同长度分组为批次,默认为True,优化批次数据处理方式。

  21. tokenizer_type: 分词器类型,默认为"llama",指定使用的分词器类型。

  22. max_tokens: 最大标记数,默认为4096,指定模型输入的最大标记数量。

  23. use_fast: 是否使用快速分词器,默认为False,决定是否使用快速分词器以提高处理速度。

  24. gradient_checkpointing: 是否使用梯度检查点,默认为True,决定是否启用梯度检查点以节省内存。

  25. lora_dropout: Lora dropout值,默认为0.05,指定Lora训练中的dropout率,以防止过拟合。

  26. save_total_limit: 最多保存检查点的数量,默认为3,指定最多保存的模型检查点数量。

  27. training_recipe: 训练配方,默认为"lora",指定使用的训练方式(Lora训练或完整训练)。

  28. gradient_accumulation_steps: 梯度累积步数,默认为1,指定在执行优化器步骤之前要累积的梯度数量。

  29. logging_steps: 记录损失的频率,默认为1,指定每多少步记录一次训练损失。

  30. bits: 量化模型的位数,默认为4,指定量化模型时使用的位数。

标签:训练,为例,模型,指定,默认,详解,检查点,chatGLM,Lora
From: https://blog.csdn.net/m0_46686599/article/details/141188591

相关文章

  • mysql数据库 行级锁,间隙锁和临键锁详解
    目录准备查看锁命令演示普通的select语句共享锁与排他锁无索引行锁升级为表锁间隙锁&临键锁索引上的等值查询(索引为唯一索引)索引上的等值查询(索引为普通索引)索引上的范围查询(唯一索引)准备我的mysql版本是8。CREATETABLE`user`(`id`intunsignedN......
  • 基于nexus3配置Python仓库过程详解
    基于nexus3配置Python仓库过程详解更新时间:2020年06月15日09:08:04  作者:三度 这篇文章主要介绍了基于nexus3配置Python仓库过程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下搭建Python私服,我们依旧使用ne......
  • UCOSIII信号量详解
    目录​编辑前言一、信号量的类型二、信号量的使用方法2.1创建信号量2.2请求信号量:2.3释放信号量:三、信号量的作用四、注意事项五、信号量的API函数六、代码实现6.1创建信号量6.2使用信号量前言UCOSIII信号量是UCOSIII操作系统中用于任务同步和互斥访问共......
  • Django 数据库迁移:makemigrations 和 migrate 命令详解及常见问题解决
    目录1.问题所示2.pythonmanage.pymakemigrations3.pythonmanage.pymigrate4.拓展1.问题所示最初始的状态是遇到这个问题由于刚开始跑pythonweb项目,开源项目附带的Readme,个别命令不太懂,对此详细研究其基本知识最终的解决方案如下:清理迁移文件:删除迁移目......
  • C语言指针详解-上
    C语言指针详解-上前言1.指针的基本概念1.1指针是什么1.2指针的声明与初始化1.3取地址符`&`和解引用符`*``&`运算符用于**获取变量的地址**`*`运算符用于访问指针指向的值2.指针的类型常见数据类型的指针指针与数组、字符串数组指针结构体指针函数指针二级指针void指......
  • 恶补基础知识:Java 栈与队列详解
    @目录前言简介栈Java实现栈的示例代码:栈的主要应用场景包括:队列Java实现队列的示例代码:LinkedList中的add方法和offer方法的区别队列主要应用场景:总结前言请各大网友尊重本人原创知识分享,谨记本人博客:南国以南i、提示:以下是本篇文章正文内容,下面案例可供参考简介使用Java实......
  • PCIe扫盲:Memory & IO 地址空间/基地址寄存器详解/Base & Limit寄存器详解
    转载:PCIe扫盲:Memory&IO地址空间/基地址寄存器详解/Base&Limit寄存器详解-极术社区-连接开发者与智能计算生态(aijishu.com)Memory&IO地址空间早期的PC中,所有的IO设备(除了存储设备之外的设备)的内部存储或者寄存器都只能通过IO地址空间进行访问。但是这种方式局限性......
  • 神经网络之卷积篇:详解三维卷积(Convolutions over volumes)
    详解三维卷积从一个例子开始,假如说不仅想检测灰度图像的特征,也想检测RGB彩色图像的特征。彩色图像如果是6×6×3,这里的3指的是三个颜色通道,可以把它想象成三个6×6图像的堆叠。为了检测图像的边缘或者其他的特征,不是把它跟原来的3×3的过滤器做卷积,而是跟一个三维的过滤器,它的维......
  • Spring Boot中的数据库事务管理详解
    SpringBoot中的数据库事务管理详解大家好,我是微赚淘客返利系统3.0的小编,是个冬天不穿秋裤,天冷也要风度的程序猿!在企业级应用开发中,数据库事务管理是确保数据一致性和完整性的关键。SpringBoot作为Java开发中流行的框架之一,提供了对数据库事务的全面支持。本文将详细介绍Spring......
  • 以定时器为例研究一手 Python asyncio 的协程事件循环调度
    在使用Python的asyncio库实现异步编程的过程中,协程与事件循环这两个概念可以说有着千丝万缕的联系,常常是形影不离的出现,如胶似漆般的存在,asyncio库到底是如何调度协程的?下面以Python3.8中的asyncio.sleep定时器为例研究一手asyncio的源码实现。几个主要的概念首先......