【LLM第8篇】Delta Tuning

如何对large-scale PLM进行调整呢?

一个有效的方式是delta tuning;只更新PLM中的一小部分参数,其它参数不动。

把解决任务的能力具象化成delta object这样的参数,只需要几十兆参数存储。

过去模型参数是随机的,现在预训练模型,已经学到了一些universal知识,针对下游任务,只需要学习一下将通用支持到专家领域的知识。

有如下几种delta tuning的方式:

1.另外增加一些参数;2.对模型中的特定参数进行学习;3.

增量tuning:

增加两个adapter 层 ,只需要增加0.5%左右的的参数

简化:不沿着模型做反向传播,在低维条件下进行,节省计算和显存。

优化:增加prefix-tuning,只在输入层增加;不想前面的,每层都加;效果不如前面的方法好。

只微调:bias;简单任务比较好用;复杂任务效果不太好。

Lora把模型的优化,不只是在低维,认为模型的优化是低秩的。

这些事情都是基于一个假设,模型的优化,本质上可以用一个很少代价来完成,可以把它映射到一个低维或者低秩的过程,用很简单的过程完成模型的优化。

adapter、predix tuning、Lora实际上做的事情都是大模型不动,只微调很少部分的参数。可以推导出更加通用的adapter变体。

理论分析:在满足一定边界条件下,低维的空间内,找到低维的表示;

不同的任务,微调方法不同,会有不同的效果,不是一种方法可以使用于所有任务。

delta tunig组合,效果会好一些。但是都不是最优;能否自动搜索找最优呢?

自学习的方法:能够用更少的参数,去完成delta tuning。

delta tuning方法具有迁移性。不同任务之间可以迁移。

batch size越大,节省越少?

总结:

1.用很少的参数,优化模型

2.参数越多,模型的结构越不重要。

论文和工具包:

### 大型语言模型微调方法、教程及最佳实践 #### 微调的重要性 大型语言模型(LLM)通过预训练获得广泛的语言理解能力,但在特定领域或任务上表现可能不如预期。为了提高性能并适应具体应用场景,通常需要对这些模型进行微调[^3]。 #### 常见的微调策略 1. **全量参数更新** 这种方式会调整整个网络中的所有权重值,在资源允许的情况下可以取得较好的效果。不过由于涉及大量计算资源消耗较大,因此只适用于小型数据集或者拥有强大硬件支持的情况。 2. **部分层冻结** 只解冻最后几层甚至单一层来进行优化操作,其余保持不变。这种方法既能保留原有知识结构又能针对新任务快速收敛,是目前较为流行的方案之一。 3. **低秩适配器 (Low-Rank Adapter)** 向现有架构中引入额外的小规模子网作为辅助模块参与前向传播过程而不改变原主体设计;仅需训练少量新增加出来的参数即可实现良好迁移学习成果的同时极大降低了再训练成本开销。 4. **提示词注入(Prompt Tuning)** 不修改任何内部组件而是依靠外部输入来引导输出方向完成定制化需求满足的任务转换机制。它具有简单易行的特点特别适合处理那些难以获取标注样本的问题场景。 ```python from transformers import AutoModelForSequenceClassification, Trainer, TrainingArguments model_name = "bert-base-uncased" num_labels = 2 # 加载预训练模型 model = AutoModelForSequenceClassification.from_pretrained(model_name, num_labels=num_labels) training_args = TrainingArguments( output_dir='./results', learning_rate=2e-5, per_device_train_batch_size=8, per_device_eval_batch_size=8, num_train_epochs=3, weight_decay=0.01, ) trainer = Trainer( model=model, args=training_args, train_dataset=train_dataset, eval_dataset=val_dataset ) trainer.train() ``` 上述代码展示了如何利用Hugging Face Transformers库加载BERT模型并对之实施分类任务上的监督式微调流程。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值