笔者在使用大语言模型开展具体业务领域的任务时,遇到了如下问题:

  • LLM的预训练模型不具备垂域知识,无法很好回答垂域的问题;
  • 希望用各种提示词技巧让模型理解专业问题,但效果有限,而且提高了使用门槛和模型推理成本;
  • 微调词嵌入模型成本低、速度快,但容易出现过拟合或泛化不足,也是治标不治本。

经过不断尝试总结,最终落脚点还是回到了大模型自身 – 大模型的微调才是关键。

什么是大模型微调?微调如何做?本篇开始,我们将为大家一步步揭开大模型微调的神秘面纱。

image-20240314173850356

1.大语言模型的技术金字塔

大语言模型相关技术可分为四层,其中:

  • 预训练的难度和成本最高,通常只有巨型公司(如谷歌、微软、OpenAI)才能承担其成本。
  • 提示词工程难度和成本最低,普通人就可以掌握。
  • 大模型微调的难度和成本次高,但从效果来看,是中小型公司可落地的折中技术。

image-20240315141452986

以下是各层技术的详细阐述:

  • 提示词工程
    • 技术原理:通过设计合适的提示或上下文来引导LLM生成期望的输出,侧重于用提示来激活预训练模型的能力,如总结摘要、翻译转换等。适用于文本处理、机器翻译等场景。
    • 技术特征:技术门槛低,终端用户即可掌握。
  • Agents
    • 技术原理:让LLM来决策一系列的动作,这些动作可以是让LLM分步解决问题,也可以是调用工具查询外部信息。这些动作形成一个工作流,最终完成任务目标。适用于相对复杂的用户交互应用,如智能客服。
    • 技术特征:有技术门槛,需要专业的LLM应用开发人员,并且了解大模型的基础原理,熟悉其领域的业务逻辑和流程。
  • 大模型微调
    • 技术原理:在预训练模型的基础上,针对特定任务的参数做调整。通过少量的数据训练即可提升模型在特定任务上的能力,同时保留模型原已学到的知识。适用于语义理解、垂域的各类应用。
    • 技术特征:技术门槛相对高,需要垂域有自己的LLM应用研发团队,具有数据处理、模型训练的能力和经验。
  • 预训练技术
    • 技术原理:比如训练出一个"GPT3.5”,或者"GLM3.0”。
    • 技术特征:百G甚至千G的GPU资源需求,大量的大模型研究人员、数据科学家投入,超出了大部分公司的能力。一旦功成,效果显著。

由于大模型微调的实用性,本专栏后续会展开介绍大模型微调技术。

2.大模型微调的可行性及理论基础

(1)In-Context Learning

OpenAI在预训练过程中,发现LLM能够挖掘训练数据中的潜在特征和通用范式,进而习得训练数据之外的新能力。研究者把这一发现称之为In-Context Learning(基于上下文的学习)。

基于In-Context Learning思想,衍生出了两种训练微调技术:

  • Prompt-tuning

  • Instruction-tuning

In-Context Learning的本质就是举一反三,基于已知的知识和训练数据可以挑战从没做过工作(下游任务)。预训练模型所蕴含的知识、预训练模型所使用的数据是广义上的context。正因为In-Context Learning的有效性,所以对预训练模型进行微调是业界公认可行的技术路线。

image-20240315152229685

(2)Transfer Learning

Transfer Learning(迁移学习)是人工智能发展过程中的一个重要思想,它的目标是将已经训练好的模型所包含的知识、推理能力迁移到未经训练的新模型上。比如对模型进行压缩、复用开源模型已经具备的能力来新模型,都是基于迁移学习思想。

迁移学习包含很多具体的工程方法:

  • Conservative Training
  • Multi-task Learning
  • Progressive Neural Network
  • Domain-adversarial training
  • Zero Shot Learning
  • ……

无论有多少种工程方法,其核心思想是:已训练的数据和任务与未训练的数据和任务存在因果、关联等逻辑关系

image-20240315151715205

(3)Bert的优秀实践

Bert充分发挥了Fine-tuning的技术优势和特点,在已经训练好的Bert模型基础上,加入少量的task-specific parameters。

  • 如分类任务,只需要在Bert模型上加一层softmax网络,然后对softmax网络进行微调。
  • 再如情感分析任务,取第一个token的输出表示,喂给一个softmax层得到分类结果输出。

微调Bert之所以成功,其本质原因是由于In-context Learning和Transfer Learning的有效性。

image-20240315153411365

3.大模型微调的技术全景图

(1)大模型微调技术全景

大模型微调技术从大的流派上可分为两类:

  • Full Fine-Tuning:简称FFT,全量微调,即全参数微调。
  • Parameter-Efficient Fine-Tuning: 简称PEFT,高效微调,即通过某些技术手段选择部分参数微调。

image-20240315160640710

与FFT相比,PEFT是当前业界主流的技术路线,其原因主要是FFT存在如下缺陷:

  • 训练成本过高
  • 灾难性遗忘

(2)PEFT技术分支

PEFT从微调目标方面可分为两类:

  • Supervised Fine-Tuning: 简称SFT,属于有监督的微调。
  • Reinforce Learning Human Feedback: 简称RLHF,属于利用人类反馈的强化学习。

其中SFT又具有诸多工程实践,因此产生了很多技术分支:

  • Additive: 增量派,在原有模型上增加额外小模型和少量参数。
  • Selective: 选择派,从原有模型的海量参数中,选择与下游任务相关的少量参数。
  • Reparametrization-based: 数学派,基于重参数化方法,将原有模型参数低秩化,获得小参数矩阵。

image-20240315161446294

在上述流派中,每个流派都有自己的代表方法,目前在业界广泛使用:

  • Sparse Adapter: 稀疏适配器。新增小模型,并从原有大模型中选择一部分参数,对这两部分参数进行微调。
  • Prefix-Tuning: 模块化轻量微调。增加prefix模块(Prefix模块会在用户输入前增加虚拟token),训练prefix模块的参数。
  • LoRA: Low-Rank Adaption,低秩适配微调。它是目前业界在大语言模型、大视觉模型、多模态模型微调中的热门技术。

image-20240315162656941

上述技术分支的关系错综复杂,我们可以抽象的概括一下它们的技术思想:

  • 基于数据的技术分支:其核心思想是对进入预训练模型的训练语料进行前置处理。
    • 如soft prompts中的Prompt-Tuning、Prefix-Tuning、P-Tuning,都是属于此技术分支。
  • 基于模型的技术分支:其核心思想是在预训练模型基础上增加额外的模型分层,仅针对增量模型的参数和预训练模型的少量参数进行微调和变换。
    • 如Adapter模型属于此技术分支。
    • 如LoRA、QLoRA、AdaLoRA也属于此技术分支。

4.小结

本文从宏观上介绍了大模型微调技术的全景图,重点梳理了PEFT微调技术的众多技术分支,旨在帮助大家了解大模型微调技术的全貌。本专栏后续文章会展开阐述PEFT的各类微调技术。

  • 大语言模型的技术金字塔
    • 大语言模型相关技术可分为四层:提示词工程、Agents、大模型微调、预训练技术。
    • 预训练的难度和成本最高;提示词工程难度和成本最低;大模型微调的难度和成本次高,但从效果来看,是中小型公司可落地的折中技术。
  • 大模型微调的可行性及理论基础
    • In-Context Learning
    • Transfer Learning
    • Bert的优秀实践
  • 大模型微调的技术全景图
    • Full Fine-Tuning
    • Parameter-Efficient Fine-Tuning