项目技术路线指导3-week2

项目技术路线指导-3

该部分主要指导微调方式、保存方式和该过程中量化的优化方式

LORA

LoRA 是一种微调技术,旨在在预训练模型的基础上添加低秩结构,以实现高效的参数化微调。与传统的微调不同,LoRA 不需要修改原始预训练模型的参数,而是添加一个低秩适应层,这使得微调更为参数高效。

模型结构中的 LoRA: 在这段代码中,我们可以看到检查模型是否具有 pretrained_model 属性。如果模型具有这个属性(并且有一个名为 v_head 的属性),这意味着它使用了 LoRA 或某种类似的技术,其中 pretrained_model 可能代表的是预训练的主模型,而其他属性(如 v_head)可能是该模型上的附加头部或部分。

if hasattr(model, "pretrained_model"): # for models with valuehead (currently using LoRA only)

    backbone_model = getattr(model, "pretrained_model")

LoRA 微调类型的检查: 在另一段代码中,我们可以看到检查微调类型是否为 “lora”。根据微调类型,代码执行不同的保存或加载逻辑。

if self.finetuning_args.finetuning_type == "lora":
    backbone_model.save_pretrained(output_dir, state_dict=get_state_dict(backbone_model))

if self.finetuning_args.finetuning_type == "lora":
    backbone_model.load_adapter(self.state.best_model_checkpoint, getattr(backbone_model, "active_adapter"))

这些代码段提供了关于如何在此特定实现中使用 LoRA 的一些信息。具体来说,它们描述了如何在保存和加载模型时处理与 LoRA 相关的组件。

量化

量化 在深度学习中主要是指将模型的参数从浮点数转化为更小范围、更低精度的表示,例如从32位浮点数转为8/4位整数。量化的主要目的是减少模型的大小和推理时间,同时保持精度损失在可接受范围内。

量化过程中涉及两个主要步骤:

训练:在模型训练阶段,可以使用模拟量化,即在前向传播时使用低精度数值,但在反向传播和权重更新时仍使用原始的高精度数值。

推理:在模型推理阶段,模型使用量化后的低精度数值。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值