当前位置:AIGC资讯 > AIGC > 正文

LLaMA- Adapter: Efficient Fine-tuning of Language Models with Zero-init Attention

发表时间:14 Jun 2023

论文链接:https://arxiv.org/pdf/2303.16199

作者单位:Shanghai Artificial Intelligence Laboratory

Motivation:最近,指令跟踪模型取得了重大进展,例如 ChatGPT [2] 和 GPT-3.5 (text-davinci-003) [4]。按照自然语言的说明,它们可以以会话方式生成专业和上下文响应。然而,由于闭源限制和高开发成本,指令模型的进一步普及在很大程度上受到了阻碍。尽管 Alpaca 的有效性,但大规模 LLAMA 的完整微调仍然耗时、计算密集型、多模态不受支持和繁琐,无法转移到不同的下游场景。

解决方法:我们提出了 LLAMA-Adapter,这是一种轻量级的自适应方法,可以有效地将 LLAMA 微调为指令跟踪模型。使用 52K self-instruct demonstrations,LLaMA-Adapter 在冻结的 LLAMA 7B 模型上仅引入 1.2M 可学习参数,在 8 个 A100 GPU 上进行微调的成本不到一小时。

本文提出 LLaMA-Adapter,一种高效的微调方法,将 LLaMA 调整为指令跟随模型。对于 llama7b 模型来说,可训练参数缩小到 1.2M,只需要 1 小时即可完成 52K 数据微调 (基于 8xA100 训练),比 Alpaca 快 3 倍

具体来说,在 LLaMA 的更深层的 transformer 层中,将一组可学习的自适应提示作为前缀附加到输入指令 token 中。这些提示学习将新指令(条件)自适应地注入 LLaMA.

为了避免在早期训练阶段适应提示中的噪声,将插入层的 attention 机制修改为零初始 attention,并使用可学习的门控因子。通过零向量初始化,门控可以首先保留 LLaMA 中的原始知识,并在训练过程中逐步引入指令信号.

这样做的一个好处和 LoRA 类似,即对于不同的场景可以在基础的 llama 模型 (7B) 上插入不同的插件小模型(1.2 M),用于处理不同场景任务,而不用对每个场景任务都准备一个 7B 的大模型.

支持多模态输入:支持方式就是简单将图片的 tokens 加到 adaption prompts 中,在 ScienceQA 基准测试中表现出色。

实现方式:

Learnable Adaption Prompts:

接,表达式为:

这样Pl内部学习到的指令知识可以有效地引导Tl生成上下文响应(这一步的操作与 Visual Prompt Tuning 的方式一模一样)。

Zero-init Attention:

如果适应提示是随机初始化的,可能会在训练开始时对词 token 带来干扰,不利于调优的稳定性和有效性。考虑到这一点,修改了最后 L 个 transformer 层的传统注意机制为零初始注意. (这个门控机制是在哪个维度上门控?是在加的提示向量上进行门控(原文中K个),用于筛选加上的提示向量。)

Multi-modal Reasoning:

LLaMA-Adapter 不局限于文本指令,能够根据其他模态输入来回答问题,为语言模型增加了丰富的跨模态信息。

对于图片输入,使用 CLIP 提取多尺度的全局特征,然后将这些多尺度特征 concat 起来,经过一个投影层得到全局的信息表征。

Ip∈R1×C 是和 adapter prompt 维度一样的全局图片特征表示,然后将该特征 repeat 后与 adapter prompt 相加得到多模态特征(也是常规的多模态特征融合的操作)。

实验:Instruction-following Evaluation, Multi-modal Evaluation, Zero-initialized Attention for other Large Models(除了指令跟随模型外,我们的零初始化注意力可以推广到其他视觉和语言模型,用于参数高效的微调。对于视觉模型,我们利用我们的方法微调预训练的 ViT进行下游图像分类,在各种图像分布上获得 VTAB-1k基准上的卓越性能。)

结论:

很直观的做 llm 微调的实现思路,加一些可学习的 prompt 思路和 Visual Prompt Tuning 很像。

与比 LoRA 的缺点看起来是增加了一定推理计算量,本文中和 LoRA 等方法的对比还不够详细(实际上与LoRA做的工作并不像,本文是做微调,而LoRA是做重参数化)。

Limitation: 由于我们的多模态变体提出了一种结合外部语义的通用范式,我们将进一步扩展 LLAMA-Adapter 作为一个统一的多模态框架,以广泛的指令(例如视频、音频和点云)为条件。

总结

### 文章总结
**研究背景**:
随着ChatGPT和GPT-3.5等指令跟踪模型的显著进步,自然语言处理能力显著提升。然而,这些模型的高成本和闭源特性阻碍了其大规模普及与应用。特别是,虽然Alpaca等方法崭露头角,但其完整微调LLAMA等大型模型的过程繁琐且资源密集,限制了模型在不同下游场景的适用性。
**核心贡献**:
本文提出了**LLAMA-Adapter**,一种轻量级的自适应方法,通过少量的可学习参数即可将LLAMA快速、高效地微调为指令跟踪模型。具体而言,LLAMA-Adapter通过以下方式实现:
1. **可学习的适应提示**:在LLAMA的深层Transformer层中,将一组可学习的适应提示作为前缀附加到输入指令词元(token)上,以学习新指令并将条件信息注入模型。

2. **零初始化注意力机制**:为解决早期训练阶段适应提示中的噪声问题,修改最后几层Transformer层的注意力机制为零初始注意力,并使用可学习的门控因子逐步引入指令信号,避免初始干扰并保护LLAMA的原始知识。
3. **支持多模态输入**:通过简单将图片的token添加到适应提示中,LLAMA-Adapter能够处理多模态输入,并在ScienceQA基准测试中表现出色。
**关键优势**:
- **参数高效**:在LLAMA 7B模型上,仅引入1.2M可学习参数,显著降低了计算资源消耗。
- **快速训练**:在8个A100 GPU上进行微调仅需不到一小时,比类似方法如Alpaca快3倍。
- **场景灵活**:不同的场景可以通过插入不同的小模型插件(1.2M)来处理,而无需为每个场景训练整个7B模型。
**实验结果**:
实验结果证明了LLAMA-Adapter在指令跟随和多模态评估中的有效性,包括在科学问答和科学推理任务上的表现。此外,零初始化注意力机制也被验证可推广至其他视觉和语言模型,增强了其在各类下游任务中的性能。
**未来工作**:
作者计划进一步扩展LLAMA-Adapter为一个统一的多模态框架,以处理更广泛的指令类型,如视频、音频和点云数据,进一步增强其跨模态能力。
**总结评价**:
LLAMA-Adapter提供了一个简单而有效的LLM微调方案,具有参数少、训练快、场景灵活等特点。尽管当前研究主要集中在文本和图像领域,但其通用框架为未来多模态处理创造了广阔前景。同时,与LoRA等方法的详细对比分析有助于更全面地理解LLAMA-Adapter的优势和局限性。

更新时间 2024-10-01