• 【无标题】


    目录

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

  • 相关阅读:
    VSCode + RemoteSSH实现虚拟机Linux下开发
    音频占用磁盘空间太多 需要把mp3音频转aac音频缩小占用空间 应该怎么操作?
    前端包管理器:深入理解npm和yarn
    Spring动态修改bean属性的value
    Spring Boot Actuator 管理日志
    2021年全国研究生数学建模竞赛华为杯C题帕金森病的脑深部电刺激治疗建模研究求解全过程文档及程序
    后疫情时代下,家庭服务机器人行业才刚启航
    软件项目管理 5.2.任务分解方法
    C++ 引用本质
    信息学奥赛一本通:1165:Hermite多项式
  • 原文地址:https://blog.csdn.net/lansebingxuan/article/details/137995656