使用llamafactory微调参数介绍&调参经验分享

目录

基于llamafactory微调

微调操作指南

微调参数介绍

  • llamafactory涉及的微调参数一般包括以下这些,保存在yaml文件中
  1. bf16: 是否使用半精度浮点数bf16进行训练。bf16 是一种低精度浮点数类型,好处是,可以减少内存使用并可能加速训练,但可能会降低模型性能,。

    在深度学习中,我们可以选择不同的数值精度来进行模型的训练和计算。不同的精度会影响计算资源的使用、训练速度和模型的精确度。下面我用更通俗的语言解释一下这些术语:
    FP16 (Half Precision,半精度):
    这种方式使用16位的浮点数来保存和计算数据。想象一下,如果你有一个非常精细的秤,但现在只用这个秤的一半精度来称重,这就是FP16。它不如32位精度精确,但计算速度更快,占用的内存也更少。
    BF16 (BFloat16):
    BF16也是16位的,但它在表示数的方式上和FP16不同,特别是它用更多的位来表示数的大小(指数部分),这让它在处理大范围数值时更加稳定。你可以把它想象成一个专为机器学习优化的“半精度”秤,尤其是在使用特殊的硬件加速器时。
    FP32 (Single Precision,单精度):
    这是使用32位浮点数进行计算的方式,可以想象为一个标准的、全功能的精细秤。它在深度学习中非常常见,因为它提供了足够的精确度,适合大多数任务。
    Pure BF16:
    在表示数的方式上和FP16不同,特别是它用更多的位来表示数的大小(指数部分),这让它在处理大范围数值时更加稳定。你可以把它想象成一个专为机器学习优化的“半精度”秤,尤其是在使用特殊的硬件加速器时。
    FP32 (Single Precision,单精度):
    这是使用32位浮点数进行计算的方式,可以想象为一个标准的、全功能的精细秤。它在深度学习中非常常见,因为它提供了足够的精确度,适合大多数任务。
    Pure BF16:
    这种模式下,所有计算都仅使用BF16格式。这意味着整个模型训练过程中,从输入到输出,都在使用为机器学习优化的半精度计算。
    
  2. cutoff_len: 训练数据集的长度截断,也可以看作是训练数据的最大长度。超过这个长度的样本将被裁剪。

  3. dataset: 训练数据集的文件列表。这些文件包含模型所需的训练数据。使用的数据集列表,所有字段都需要按上文在data_info.json里注册,多个数据集用","分隔

  4. dataset_dir: 训练数据集文件的目录。 数据集所在目录,可以直接使用项目自带的data目录

  5. do_train: 是否进行训练。如果设置为 false,则模型将进入评估模式。

  6. eval_steps: 模型在每次训练后评估的步数。如果设置为 10,模型将在每 10 个训练步后进行一次评估。

  7. eval_strategy: 评估策略。可以设置为 “steps”(每次训练后评估)或 “epochs”(每个epoch后评估)。

  8. finetuning_type: 微调训练的类型,枚举值,有"lora",“full”,"freeze"等,比如设置为 “lora”,表示使用 LoRA(Low-Rank Adaptation)进行微调。

    ​ Full:这种方式就是从头到尾完全训练一个模型。想象一下,你有一块白纸,你要在上面画出一幅完整的画作,这就是Full Training。你从零开始,逐步训练模型,直到它能够完成你想要的任务。
    ​ Freeze:这种方式有点像是在一幅半完成的画上继续作画。在模型中,有些部分(通常是模型的初级部分,如输入层或底层特征提取部分)是已经训练好的,这部分会被“冻结”,不再在训练过程中更新。你只更新模型的其他部分,这样可以节省训练时间和资源。
    ​ LoRA:这是一种比较新的技术,全称是“Low-Rank Adaptation”。可以理解为一种轻量级的模型调整方式。它主要是在模型的某些核心部分插入小的、低
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值