1 介绍

年份:2021

期刊: arXiv preprint

引用量:3196

Lester B, Al-Rfou R, Constant N. The power of scale for parameter-efficient prompt tuning[J]. arXiv preprint arXiv:2104.08691, 2021.

本文介绍了一种名为“prompt tuning”的算法,它通过在学习过程中优化(调整)少量的“软提示”(soft prompts),来调整冻结的语言模型,使其能够执行特定的下游任务。这种方法在大规模模型上的效果与全模型微调(model tuning)相当,同时显著减少了需要调整的参数数量。

2 创新点

  1. Prompt Tuning方法:提出了一种新的参数高效的方法,通过学习“软提示”(soft prompts)来调整冻结的语言模型,使其能够适应特定的下游任务。
  2. 与模型规模的关联性:发现随着模型规模的增加,prompt tuning方法与全模型微调(model tuning)的性能差距逐渐缩小,特别是在大规模模型上,prompt tuning能够匹配甚至超越全模型微调的性能。
  3. Prompt Ensembling:提出了一种新的模型集成方法,通过训练多个不同的提示(prompts)来提高任务性能,这种方法比传统的模型集成更高效。
  4. 对域迁移的鲁棒性:展示了prompt tuning在域迁移问题上的优势,即在输入分布发生变化时,prompt tuning能够更好地保持性能,这表明它在避免过拟合特定数据集方面具有优势。
  5. 简化的实现:相比于其他需要调整模型中间层或输出层的方法,prompt tuning通过仅在输入层添加可训练的提示来实现任务适应,这种方法更简单,参数效率更高。
  6. 解释性分析:对学习到的软提示进行了解释性分析,发现这些提示能够学习到与任务相关的“词-like”表示,尽管它们在序列层面上不太可解释,但提供了对模型行为的一些洞察。

3 相关研究

  1. ELMo:提出了冻结预训练模型并在每一层学习任务特定权重的方法。
    • Deep contextualized word representations. 2018
  2. 模型调优(Model Tuning):以GPT和BERT为代表,主导的适应技术是在适应过程中调整所有模型参数。
    • Universal language model fine-tuning for text classification.2018.
  3. Prompt设计(Prompt Design):Brown等人展示了通过文本提示调节冻结的GPT-3模型行为的有效性。提示通常由任务描述和/或几个典型示例组成。
    • Language models are few-shot learners. 2020
  4. 自动化提示设计:Shin等人提出了一种基于下游应用训练数据的离散词汇空间搜索算法。
    • 2020. AutoPrompt: Eliciting Knowledge from Language Models with Automatically Generated Prompts.
  5. 前缀调优(Prefix Tuning):Li和Liang提出了一种在编码器堆栈的每层前添加可训练的前缀激活的方法,并展示了在生成任务上的强结果。
    • 2021. Prefix-tuning: Optimizing continuous prompts for generation.
  6. 输入和输出子网络的调优:Hambardzumyan等人通过限制可训练参数到掩蔽语言模型的输入和输出子网络,并在分类任务上展示了合理的结果。
    • 2021. WARP: Word-level Adversarial ReProgramming.

4 算法

4.1 算法原理

  1. 冻结预训练模型:算法首先使用一个已经预训练好的大型语言模型,但冻结其所有参数,即在后续的训练过程中不更新这些参数。
  2. 引入软提示(Soft Prompts):在模型的输入端引入可学习的“软提示”,这些提示是一系列可训练的嵌入向量,它们可以被视为一种特殊的输入,用于引导模型完成特定的下游任务。
  3. 端到端学习:尽管预训练模型的参数被冻结,但这些软提示(soft prompts)的参数是可以在训练过程中通过反向传播进行更新的。这样,模型可以学习到如何通过调整这些软提示来适应不同的任务。
  4. 参数效率:相比于传统的模型微调(fine-tuning)方法,prompt tuning只需要更新很少的参数(即软提示的参数),这使得它在参数效率上具有优势。
  5. 任务适应性通过调整软提示,模型可以适应不同的下游任务,而不需要为每个任务训练一个完整的模型副本。这意味着可以使用单个冻结的模型来处理多个任务。
  6. 混合任务推理:由于软提示的存在,prompt tuning还允许在同一模型上进行多任务推理,即在同一个批次中处理来自不同任务的输入。
  7. 鲁棒性和可解释性:prompt tuning通过保持预训练模型的核心参数不变,增强了模型对领域转移的鲁棒性。同时,学习到的软提示提供了一定程度的可解释性,因为它们可以被看作是任务的信号浓缩。

4.2 算法步骤

  1. 预训练模型准备
    • 选择一个预训练好的语言模型,例如T5,作为基础模型。
    • 冻结该模型的所有参数,即在后续的训练过程中,这些参数不会更新。
  2. 软提示(Soft Prompts)的初始化
    • 为每个下游任务定义一系列可学习的软提示。这些提示是作为输入的一部分,并且有自己专属的参数(嵌入向量)。
    • 软提示可以随机初始化,或者根据特定的策略(如使用词汇表中的词嵌入,或与任务相关的类标签嵌入)进行初始化。
  3. 任务格式转换
    • 将所有下游任务转换为文本生成任务,即将分类问题转化为条件生成问题。
  4. 训练数据准备
    • 准备带标签的训练数据,这些数据将用于训练软提示。
    • 对于每个任务,将输入文本和软提示结合,形成模型的输入。
  5. 训练过程
    • 使用标准的优化算法(如Adam或Adafactor)和损失函数(如交叉熵损失)来训练软提示。
    • 通过反向传播更新软提示的参数,而保持预训练模型的参数不变。
    • 训练过程中,监控验证集上的性能,并使用早停法(early stopping)来选择最佳的检查点。
  6. 模型评估
    • 在验证集或测试集上评估模型的性能,使用适当的评估指标(如准确率、F1分数等)。
  7. 多任务和领域迁移
    • 利用同一个冻结的预训练模型,通过更换不同的软提示,来适应多个任务。
    • 评估模型在不同领域数据上的表现,以测试其对领域迁移的鲁棒性。
  8. 模型集成(可选)
    • 为了进一步提高性能,可以训练多个软提示(即多个“模型”),然后通过集成(如投票或平均)的方式来综合它们的预测结果。
  9. 部署和应用
    • 将训练好的模型部署到实际应用中,使用软提示来处理实际的下游任务。

5 实验分析

(1)数据集

数据集覆盖了文本分类、问答、自然语言推理和文本蕴含等。

  1. GLUE benchmark:包含多个自然语言处理任务的数据集,用于评估模型在不同自然语言理解任务上的性能。具体包括:
    • BoolQ
    • CB (CommitmentBank)
    • COPA
    • MultiRC
    • ReCoRD
    • RTE (Recognizing Textual Entailment)
    • WiC (Word-in-Context)
    • WSC (Winograd Schema Challenge)
    • MRPC (Microsoft Research Paraphrase Corpus)
    • QQP (Quora Question Pairs)
  2. SuperGLUE benchmark:是一个更具有挑战性的自然语言理解评估基准,包含了GLUE中的一些任务以及其他更复杂的任务。
  3. SQuAD (Stanford Question Answering Dataset):一个用于评估模型在问答任务上性能的数据集。
  4. MRQA (Machine Reading for Question Answering) shared task datasets:用于测试模型在不同领域数据集上的泛化能力,包括从不同来源收集的问答数据集。

(2)评价指标

  1. 准确率(Accuracy)
    • 用于分类任务,衡量模型预测正确的样本占总样本的比例。
  2. F1分数(F1 Score)
    • 用于需要评估精确度和召回率的任务,如问答(QA)和自然语言推理(NLI)任务。F1分数是精确度和召回率的调和平均数,是一个综合考虑两者的指标。
  3. 平均准确率(Average Accuracy)
    • 在多分类任务中,计算每个类别的准确率,然后取平均值。
  4. 精确度(Precision)召回率(Recall)
    • 这两个指标通常成对出现,用于评估模型在特定任务上的性能,尤其是在信息检索和问答任务中。
  5. EM(Exact Match)F1a(F1 Score with Answer Normalization)
    • 在问答任务中,EM衡量完全匹配正确答案的比例,而F1a则在计算F1分数时对答案进行归一化处理,以考虑近似正确的情况。
  6. SuperGLUE分数
    • SuperGLUE基准测试提供了一个总体分数,综合了多个任务上的性能,用于评估模型在广泛自然语言理解任务上的表现。

(3)结果分析

  1. 性能比较
    • Prompt tuning在SuperGLUE基准测试中的表现与模型调优(model tuning)相当,并且随着模型规模的增加,prompt tuning的性能逐渐接近甚至超过了模型调优。
  2. 模型规模的影响
    • 在较大的模型(如T5 XXL)上,prompt tuning与多任务模型调优的性能差距显著缩小,提示调优在大规模模型上非常有竞争力。
  3. 与GPT-3的比较
    • Prompt tuning在性能上明显优于GPT-3的少量样本学习(few-shot learning),即使GPT-3的模型规模远大于prompt tuning使用的T5模型。
  4. 参数效率
    • Prompt tuning非常参数高效,只需要调整非常少的任务特定参数,这使得它在参数数量上有显著优势。
  5. 鲁棒性测试
    • 在域迁移测试中,prompt tuning表现出比模型调优更好的鲁棒性,特别是在处理较大领域转移时。
  6. Prompt Ensembling
    • 通过prompt ensembling(即训练多个prompt并集成它们的预测)可以进一步提高任务性能,并且比传统的模型集成更高效。
  7. 解释性分析
    • 尽管prompt tuning在连续嵌入空间中工作,使得解释性更具挑战,但通过分析学习到的软提示的最近邻词汇,可以发现这些提示确实学习到了与任务相关的“词-like”表示。
  8. 不同初始化方法的影响
    • 实验还探讨了不同的prompt初始化方法对性能的影响,发现基于类标签的初始化在较小模型上表现更好,但在更大的模型上,这些差异消失。
  9. 预训练目标的影响
    • 使用不同的预训练目标(如掩码语言模型预训练与跨度腐败预训练)对prompt tuning的性能有显著影响,其中语言模型预训练目标表现更好。
  10. 适应步骤的影响
    • 对于预训练模型的额外适应步骤,实验发现更长的适应步骤可以提高性能,但对于XXL大小的模型,即使是短时间的适应也能获得很好的结果。

6 思考

为Proprompt算法提供了启发。Razdaibiedina A, Mao Y, Hou R, et al. Progressive prompts: Continual learning for language models[J]. arXiv preprint arXiv:2301.12314, 2023.

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐