• 【无标题】


    目录

    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作用:放大一些预训练模型已有的,但没有重点突出的能力,这些能力和指定的下游任务相关。

  • 相关阅读:
    华为率先商用卫星通信技术,有助中国在6G技术上取得领先优势
    LeetCode2125
    量价虽降,商业银行结构性存款为何受上市公司所偏爱?
    安装Fedora 36 Server
    【深度学习21天学习挑战赛】7、卷积神经网络(CNN)医学领域应用——乳腺癌识别
    rocketmq4.9.4 ubuntu环境启动过程
    【安全】容器中二进制漏洞检测方案
    Redis 集群搭建--Linux 开发三主三从
    大数据常见面试题 Hadoop篇(2)
    淘宝API接口:提高电商运营效率与用户体验的利器(淘宝API接口使用指南)
  • 原文地址:https://blog.csdn.net/lansebingxuan/article/details/137995656