【无标题】

目录

1.大模型项目pipeline


1.大模型项目pipeline

下图是大模型项目开发流程,本节主要介绍红框的Finetuning

2.Adapt and align model 方法

2.1prompt engineering

常用zero-shot,one-shot,few-shot等,多增加示例会提升效果,但不能增加太多example,会带来一下几个问题:

1)input token变长,增加推理成本

2)占用输入token的长度,会导致留给实际输入的长度变少,影响输入描述。

3)泛化性可能会变弱,模型会尽可能拟合example的结果

2.2 Fine-tune

2.2.1 步骤

当prompt方法无法达到预期效果时,需要使用finue-tuning方法进行微调。finue-tuning可以微调单个任务,也可以多任务同时微调,主要步骤为:

1)指令数据构建

2)训练、测试、验证

2.2.2 遗忘问题

finue-tuning的一个常见问题是:微调的任务能力提升,但是原有的能力下降,泛化性变弱,也就是遗忘问题(catastrophic forgetting)

2.2.3 解决思路

1)加入通用数据,或者训练感兴趣能力的数据,保持原有能力。

2)尽量减少模型参数修改,例如冻结大部分参数,仅训练部分层和参数;或者保持现有参数不变,增加新的参数或模块用于新任务;或者训练时候设置较低的学习率,较少的迭代步骤等。

3)使用更大、更强的模型

4)使用多任务学习,同时学习需求的任务

下面重点掉了第二种思路,即尽量减少模型参数修改,也就是高效参数微调PEFT(Parameter Efficient Fine-Tuning)

3.PEFT 方法

3.1 Adaptor Tuning

即上面说的保持现有模块不变,增加部分层进行微调,实现目标任务。如下图,左侧是原始transformer模块,中间是增加adapter模块的示例,然后微调时只调整adapter模块参数。

缺点:推理时候增加时间成本

3.2 Prefix Tuning

该方法不改变模型结构,而是改变输入。如下图,上面是原始方法,需微调所有transformer参数(上图所有红色模块),Prefix Tuning如下图,它在输入前增加一些instruction token作为prefix,微调时冻结transformer模块参数,仅微调prefix(前缀)(下图红色模块),对于每个任务,仅需要存储prefix。

缺点:难优化,随着token的增加,性能不会持续提高,并且占用窗口,减少实际输入的描述。

3.3 LORA

自lora提出后,上面的两种方法已很少使用

\Delta W作用:放大一些预训练模型已有的,但没有重点突出的能力,这些能力和指定的下游任务相关。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

CV温故知新

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

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

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

打赏作者

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

抵扣说明:

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

余额充值