unsloth的微调示例学习-model的构建

这几天试了试unsloth的微调,操作非常简单,但是实际上代码我都不知道啥意思,所以一步一步学习,顺便总结记录一下,记录内容都基于我和chatgpt的讨论,都是它教的。

微调语言模型中的随机种子与偏置项:深入解析

在微调大型语言模型时,诸多配置选项决定了模型的性能、效率以及可重复性。本文通过讨论实际代码示例,深入解析了这些配置的含义,并回答了有关随机种子和偏置项的问题。

代码示例

以下是用于微调语言模型的代码片段:

model = FastLanguageModel.get_peft_model(
    model,
    r = 16, # Choose any number > 0 ! Suggested 8, 16, 32, 64, 128
    target_modules = ["q_proj", "k_proj", "v_proj", "o_proj",
                      "gate_proj", "up_proj", "down_proj",],
    lora_alpha = 16,
    lora_dropout = 0, # Supports any, but = 0 is optimized
    bias = "none",    # Supports any, but = "none" is optimized
    # [NEW] "unsloth" uses 30% less VRAM, fits 2x larger batch sizes!
    use_gradient_checkpointing = "unsloth", # True or "unsloth" for very long context
    random_state = 3407,
    use_rslora = False,  # We support rank stabilized LoRA
    loftq_config = None, # And LoftQ
)

配置项解析

  • r = 16:

    • LoRA的秩(rank),通常选择偶数值如8、16、32等,以优化计算性能。但理论上,r也可以是单数,如1、3、5等。
  • target_modules:

    • 指定需要应用LoRA的模型模块,如Transformer中的投影层。对这些模块进行低秩更新。
  • lora_alpha = 16:

    • LoRA的缩放因子,控制训练时扰动的大小。
  • lora_dropout = 0:

    • Dropout率,设为0表示不使用Dropout,有利于优化内存和计算。
  • bias = "none":

    • 是否使用偏置项,设为"none"表示不引入偏置参数,进一步优化内存使用。
  • use_gradient_checkpointing = "unsloth":

    • 使用优化版的梯度检查点技术,减少内存占用,特别适合处理长上下文任务。
  • random_state = 3407:

    • 随机种子,确保实验的可重复性。
  • use_rslora = Falseloftq_config = None:

    • 分别是是否使用Rank Stabilized LoRA和LoftQ配置,两者都为模型优化提供额外选项。

偏置项的作用

偏置项在神经网络中有以下几个主要作用:

  1. 移位功能:帮助模型更灵活地调整输出,即使在输入为零时,也能产生非零输出。
  2. 增强表达能力:增加模型的自由度,使其能更好地拟合复杂数据。
  3. 帮助模型更好地拟合数据:特别是在数据有全局偏移或趋势时,偏置项能帮助模型捕捉这种趋势。
  4. 防止过拟合与欠拟合:合适的偏置项设置能帮助模型找到最佳解,从而避免欠拟合或过拟合。

随机种子的作用

随机种子用于保证实验的可重复性。设置相同的随机种子可以控制模型训练过程中涉及的随机性操作,包括:

  • 权重初始化
  • 数据打乱
  • Dropout
  • Batch Normalization

实验的可重复性

如果两次微调设置的随机种子相同,并且其他条件(如硬件、软件环境)完全一致,那么得到的微调模型应当是相同的。但如果硬件或软件环境有差异,浮点数运算的微小不同可能导致模型最终结果略有差异。因此,要确保完全的可重复性,除了相同的随机种子外,还需要确保环境的一致性。


  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

盖丽男

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值