乐趣区

关于人工智能:落地领域大模型应知必会2-轻量化微调

编者按:在理论部署大模型的过程中可能会面临资源限度的问题。通过轻量化大模型微调技术,能够将大型预训练语言模型适配到特定畛域、特定工作,并减小其模型尺寸和计算量需要,进步性能和效率。

在上一篇文章中,咱们分享了大语言模型的次要微调技术总览。接下来,本文将介绍轻量化大模型微调技术,重点关注 Prompt Tuning 和 Prefix Tuning。

以下是译文,Enjoy!

本文经原作者受权,由 Baihai IDP 编译。如需转载译文,请分割获取受权。

原文链接:

https://magazine.sebastianraschka.com/p/understanding-paramet…

作者 | SEBASTIAN RASCHKA, PHD

编译 | 岳扬

01 Prompt Tuning

Prompt Tuning 是一种通过扭转输出提醒语(input prompt)以取得更优模型成果的技术。举个例子,如果咱们想将一条英语句子翻译成德语,能够采纳多种不同的形式向模型发问,如下图所示:

这是一个 hard prompt tuning 示例,通过尝试多种输出提醒来取得更好的输入成果。

这个案例采纳的是 硬提醒调优(hard prompt tuning) 办法,因为它间接批改了离散的输出标记(input tokens),而这些标记是不可再分的。

译者注:在自然语言解决畛域,个别将文本进行分词解决,将一个句子拆分为一个个离散的单词或标点符号作为 input token。每个 token 代表一个离散的语义单位,模型能够依据这些 token 进行语义了解和生成回复。

例如,对于句子 “ 你好,很快乐见到你!”,能够将其合成为以下离散的 input token:

[“ 你 ”, “ 好 ”, “,”, “ 很 ”, “ 快乐 ”, “ 见到 ”, “ 你 ”, “!”]

这些离散的 token 能够作为模型的输出,用于训练或生成对话回复。留神,在应用离散的 input token 时须要将其转换为对应的向量示意(如词嵌入示意),以便模型可能对其进行解决和学习。

与硬提醒调优(hard prompt tuning)相同,软提醒调优(soft prompt tuning)办法 (Lester 等人,2021 年[1]) 将输出标记(input tokens)的嵌入(embeddings)与可通过反向流传算法(backpropagation)进行优化的可训练张量(tensor)连接起来,以进步模型在指标工作上的性能。

伪代码如下所示:

阐明 soft prompting 相干概念的伪代码

与离散的文本 prompt 不同,软提醒(soft prompts)是通过反向流传算法(back-propagation)取得的,因而能够依据已标注数据集的 损失函数反馈(loss feedback)进行调整。

相较于全参数微调(full-finetuning),软提醒调优(soft prompt tuning)具备 更高的参数效率 (more parameter-efficient),但应用软提醒调优的 模型性能可能稍逊一筹,如下图所示。

该图来自提出 soft prompting 的论文,https://arxiv.org/abs/2104.08691

另一方面,如果模型参数为 11B,则依据上图所示,软提醒调优(soft prompt tuning)能够达到全参数微调(full fine tuning)的性能程度(须要留神的是,LLaMA 模型的最小参数规模为 7B,最大参数规模为 65B)。

存储效率

如果咱们想要将大模型利用于特定工作,并因而须要微调预训练模型,通常须要为每个工作保留整个模型的正本。然而,如果应用 prompt tuning,咱们只须要为每个工作保留一个小小的 task-specific soft prompt。例如,对于 T5 “XXL” 模型,每个微调模型正本须要 110 亿个参数。相比之下,假如 prompt 长度为 5 个 tokens,嵌入的 size 为 4096 维(4096-dimensional),对于每个每个工作,通过 prompt tuning 只须要20480 个参数,这相当于 缩小了五个数量级以上的参数量。

02 从 Prompt Tuning 到 Prefix Tuning

目前,有一种非凡的、被独立开发的 prompt tuning 形式被称为 前缀调优(prefix tuning)  (Li & Liang 2021[2])。其思维是将可训练的张量(trainable tensors)增加到每个 Transformer 块中,而非像 soft prompt tuning 中那样只增加输出嵌入(input embeddings)。同时,通过全连贯层(fully connected layers,两层并且具备非线性激活函数的小型多层感知机)获取 soft prompt embedding。

者注: 应用深度学习模型进行自然语言解决工作时,input embeddings 常作 为模型的第一层进行应用,将离散的 input token 转换为间断的向量示意,从而实现对文本的无效建模和解决。

前缀调优技术将预约义的 prompt 嵌入到模型中,以影响模型的生成行为。这项技术能够扭转模型对输出的解释形式,使得模型可能更好地依据 prompt 生成相应的输入。

下图阐明了 惯例 Transformer 块和通过前缀(prefix)批改的 Transformer 块之间的区别

Illustration of prefix tuning

请留神,在上图中,“全连贯层”是指一个小型多层感知机(由两个全连贯层和一个非线性激活函数组成)。这些全连贯层将 soft prompt 嵌入到一个与 transformer 块输出具备雷同维度的特色空间(feature space)中,以确保两层连贯时的兼容性。

应用 Python 伪代码,能够阐明惯例 Transformer 块和通过前缀(prefix)批改的 Transformer 块之间的区别:

prefix tuning 的伪代码图示

依据提出 prefix tuning 的论文,该办法在 仅训练 0.1% 的参数 的状况下,实现了 与微调所有层相当的模型性能 (该试验基于 GPT- 2 模型)。此外,在大多数状况下,prefix tuning 的体现甚至优于微调所有层,可能是因为该办法波及的参数较少, 有助于缩小对较小指标数据集的过拟合问题

由 Li and Liang 发表的 Prefix Tuning 相干论文中的正文图

最初,为了廓清推理过程中 soft prompts 的应用形式,请留神以下几点:在学习了 soft prompts 后,在咱们针对特定工作对模型进行微调时,咱们必须将其(soft prompts)作为前缀(prefix)提供。这样做能够使模型依据特定工作自定义其答复。此外,咱们能够领有多个 soft prompts,每个对应于不同的工作,并且在推理过程可能提供相应的前缀,以最好地去解决特定工作。

03 Prefix 与 Prompt Tuning

在性能方面,soft prompt tuning 和 prefix tuning 孰强孰弱?可怜的是,就性能而言,目前尚无间接比拟 soft prompt tuning 和 prefix tuning 的钻研后果 ,因为这它们是独立开发并同时公布的办法,各自的论文中未进行间接的比拟。此外,在我查阅参数高效型大语言模型(parameter-efficient LLM)的最新文献中,并 没有找到同时蕴含这两种办法的基准测试(benchmark)

prefix tuning 这种办法中,通过向输出序列(input sequence)插入特定工作的前缀(a task-specific prefix)来批改模型的更多层、,因而 须要微调更多的参数。另一方面,soft prompt tuning 仅波及对 input prompt embeddings 进行微调,因而更新的参数较少。这使得soft prompt tuning 可能比 prefix tuning 更轻量化(parameter-efficient),但也可能限度了其适应更宽泛指标工作的能力。

就性能方面而言,咱们能够正当地冀望 prefix tuning 可能体现得更好,因为它可能调整更多的模型参数以便适应更宽泛的新工作。然而,这可能是以 减少计算资源的耗费和进步模型呈现过拟合的危险 为代价的。另一方面,soft prompt tuning 可能具备更高的计算效率,但因为微调的参数较少,可能会导 限度模型的性能

04 总结

该文章介绍了两种轻量化微调技术:soft prompt tuning 和 prefix tuning。与全参数微调(full finetuning)相比,这两种办法仅需调整很少的参数。

对于开发者来说,soft prompt tuning 能够更具备吸引力,因为他们只须要批改 input embeddings,而不需像 prefix tuning 那样批改外部 transformer 块。

在你开始尝试应用这些技术微调大模型之前,我倡议你继续关注其余更乏味的轻量化微调(parameter-efficient finetuning)技术:Adapters,LLaMA-Adapter(与惯例的 Adapter 无关但也有所不同)以及Low-Rank Adaptation(LoRA) 等等。这些技术可能会提供更多抉择,并且能够依据你的具体需要进行更好的调整。

END

参考资料

1. https://arxiv.org/abs/2104.08691

2. https://arxiv.org/abs/2101.00190

本文经原作者受权,由 Baihai IDP 编译。如需转载译文,请分割获取受权。

原文链接

https://magazine.sebastianraschka.com/p/understanding-paramet…

相干文章举荐
落地畛域大模型应知必会 (1):次要微调办法总览

大模型的三大法宝:Finetune, Prompt Engineering, Reward

Prompt Learning: ChatGPT 也在用的 NLP 新范式

退出移动版