【博士每天一篇文献-算法】大模型下游任务微调优化之PromptTuning算法:The power of scale for parameter-efficient prompt tuning
本文介绍了一种名为“prompt tuning”的算法,它通过在学习过程中优化(调整)少量的“软提示”(soft prompts),来调整冻结的语言模型,使其能够执行特定的下游任务。这种方法在大规模模型上的效果与全模型微调(model tuning)相当,同时显著减少了需要调整的参数数量。
·
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 创新点
- Prompt Tuning方法:提出了一种新的参数高效的方法,通过学习“软提示”(soft prompts)来调整冻结的语言模型,使其能够适应特定的下游任务。
- 与模型规模的关联性:发现随着模型规模的增加,prompt tuning方法与全模型微调(model tuning)的性能差距逐渐缩小,特别是在大规模模型上,prompt tuning能够匹配甚至超越全模型微调的性能。
- Prompt Ensembling:提出了一种新的模型集成方法,通过训练多个不同的提示(prompts)来提高任务性能,这种方法比传统的模型集成更高效。
- 对域迁移的鲁棒性:展示了prompt tuning在域迁移问题上的优势,即在输入分布发生变化时,prompt tuning能够更好地保持性能,这表明它在避免过拟合特定数据集方面具有优势。
- 简化的实现:相比于其他需要调整模型中间层或输出层的方法,prompt tuning通过仅在输入层添加可训练的提示来实现任务适应,这种方法更简单,参数效率更高。
- 解释性分析:对学习到的软提示进行了解释性分析,发现这些提示能够学习到与任务相关的“词-like”表示,尽管它们在序列层面上不太可解释,但提供了对模型行为的一些洞察。
3 相关研究
- ELMo:提出了冻结预训练模型并在每一层学习任务特定权重的方法。
- Deep contextualized word representations. 2018
- 模型调优(Model Tuning):以GPT和BERT为代表,主导的适应技术是在适应过程中调整所有模型参数。
- Universal language model fine-tuning for text classification.2018.
- Prompt设计(Prompt Design):Brown等人展示了通过文本提示调节冻结的GPT-3模型行为的有效性。提示通常由任务描述和/或几个典型示例组成。
- Language models are few-shot learners. 2020
- 自动化提示设计:Shin等人提出了一种基于下游应用训练数据的离散词汇空间搜索算法。
- 2020. AutoPrompt: Eliciting Knowledge from Language Models with Automatically Generated Prompts.
- 前缀调优(Prefix Tuning):Li和Liang提出了一种在编码器堆栈的每层前添加可训练的前缀激活的方法,并展示了在生成任务上的强结果。
- 2021. Prefix-tuning: Optimizing continuous prompts for generation.
- 输入和输出子网络的调优:Hambardzumyan等人通过限制可训练参数到掩蔽语言模型的输入和输出子网络,并在分类任务上展示了合理的结果。
- 2021. WARP: Word-level Adversarial ReProgramming.
4 算法
4.1 算法原理
- 冻结预训练模型:算法首先使用一个已经预训练好的大型语言模型,但冻结其所有参数,即在后续的训练过程中不更新这些参数。
- 引入软提示(Soft Prompts):在模型的输入端引入可学习的“软提示”,这些提示是一系列可训练的嵌入向量,它们可以被视为一种特殊的输入,用于引导模型完成特定的下游任务。
- 端到端学习:尽管预训练模型的参数被冻结,但这些软提示(soft prompts)的参数是可以在训练过程中通过反向传播进行更新的。这样,模型可以学习到如何通过调整这些软提示来适应不同的任务。
- 参数效率:相比于传统的模型微调(fine-tuning)方法,prompt tuning只需要更新很少的参数(即软提示的参数),这使得它在参数效率上具有优势。
- 任务适应性:通过调整软提示,模型可以适应不同的下游任务,而不需要为每个任务训练一个完整的模型副本。这意味着可以使用单个冻结的模型来处理多个任务。
- 混合任务推理:由于软提示的存在,prompt tuning还允许在同一模型上进行多任务推理,即在同一个批次中处理来自不同任务的输入。
- 鲁棒性和可解释性:prompt tuning通过保持预训练模型的核心参数不变,增强了模型对领域转移的鲁棒性。同时,学习到的软提示提供了一定程度的可解释性,因为它们可以被看作是任务的信号浓缩。
4.2 算法步骤
- 预训练模型准备:
- 选择一个预训练好的语言模型,例如T5,作为基础模型。
- 冻结该模型的所有参数,即在后续的训练过程中,这些参数不会更新。
- 软提示(Soft Prompts)的初始化:
- 为每个下游任务定义一系列可学习的软提示。这些提示是作为输入的一部分,并且有自己专属的参数(嵌入向量)。
- 软提示可以随机初始化,或者根据特定的策略(如使用词汇表中的词嵌入,或与任务相关的类标签嵌入)进行初始化。
- 任务格式转换:
- 将所有下游任务转换为文本生成任务,即将分类问题转化为条件生成问题。
- 训练数据准备:
- 准备带标签的训练数据,这些数据将用于训练软提示。
- 对于每个任务,将输入文本和软提示结合,形成模型的输入。
- 训练过程:
- 使用标准的优化算法(如Adam或Adafactor)和损失函数(如交叉熵损失)来训练软提示。
- 通过反向传播更新软提示的参数,而保持预训练模型的参数不变。
- 训练过程中,监控验证集上的性能,并使用早停法(early stopping)来选择最佳的检查点。
- 模型评估:
- 在验证集或测试集上评估模型的性能,使用适当的评估指标(如准确率、F1分数等)。
- 多任务和领域迁移:
- 利用同一个冻结的预训练模型,通过更换不同的软提示,来适应多个任务。
- 评估模型在不同领域数据上的表现,以测试其对领域迁移的鲁棒性。
- 模型集成(可选):
- 为了进一步提高性能,可以训练多个软提示(即多个“模型”),然后通过集成(如投票或平均)的方式来综合它们的预测结果。
- 部署和应用:
- 将训练好的模型部署到实际应用中,使用软提示来处理实际的下游任务。
5 实验分析
(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)
- SuperGLUE benchmark:是一个更具有挑战性的自然语言理解评估基准,包含了GLUE中的一些任务以及其他更复杂的任务。
- SQuAD (Stanford Question Answering Dataset):一个用于评估模型在问答任务上性能的数据集。
- MRQA (Machine Reading for Question Answering) shared task datasets:用于测试模型在不同领域数据集上的泛化能力,包括从不同来源收集的问答数据集。
(2)评价指标
- 准确率(Accuracy):
- 用于分类任务,衡量模型预测正确的样本占总样本的比例。
- F1分数(F1 Score):
- 用于需要评估精确度和召回率的任务,如问答(QA)和自然语言推理(NLI)任务。F1分数是精确度和召回率的调和平均数,是一个综合考虑两者的指标。
- 平均准确率(Average Accuracy):
- 在多分类任务中,计算每个类别的准确率,然后取平均值。
- 精确度(Precision)和召回率(Recall):
- 这两个指标通常成对出现,用于评估模型在特定任务上的性能,尤其是在信息检索和问答任务中。
- EM(Exact Match)和F1a(F1 Score with Answer Normalization):
- 在问答任务中,EM衡量完全匹配正确答案的比例,而F1a则在计算F1分数时对答案进行归一化处理,以考虑近似正确的情况。
- SuperGLUE分数:
- SuperGLUE基准测试提供了一个总体分数,综合了多个任务上的性能,用于评估模型在广泛自然语言理解任务上的表现。
(3)结果分析
- 性能比较:
- Prompt tuning在SuperGLUE基准测试中的表现与模型调优(model tuning)相当,并且随着模型规模的增加,prompt tuning的性能逐渐接近甚至超过了模型调优。
- 模型规模的影响:
- 在较大的模型(如T5 XXL)上,prompt tuning与多任务模型调优的性能差距显著缩小,提示调优在大规模模型上非常有竞争力。
- 与GPT-3的比较:
- Prompt tuning在性能上明显优于GPT-3的少量样本学习(few-shot learning),即使GPT-3的模型规模远大于prompt tuning使用的T5模型。
- 参数效率:
- Prompt tuning非常参数高效,只需要调整非常少的任务特定参数,这使得它在参数数量上有显著优势。
- 鲁棒性测试:
- 在域迁移测试中,prompt tuning表现出比模型调优更好的鲁棒性,特别是在处理较大领域转移时。
- Prompt Ensembling:
- 通过prompt ensembling(即训练多个prompt并集成它们的预测)可以进一步提高任务性能,并且比传统的模型集成更高效。
- 解释性分析:
- 尽管prompt tuning在连续嵌入空间中工作,使得解释性更具挑战,但通过分析学习到的软提示的最近邻词汇,可以发现这些提示确实学习到了与任务相关的“词-like”表示。
- 不同初始化方法的影响:
- 实验还探讨了不同的prompt初始化方法对性能的影响,发现基于类标签的初始化在较小模型上表现更好,但在更大的模型上,这些差异消失。
- 预训练目标的影响:
- 使用不同的预训练目标(如掩码语言模型预训练与跨度腐败预训练)对prompt tuning的性能有显著影响,其中语言模型预训练目标表现更好。
- 适应步骤的影响:
- 对于预训练模型的额外适应步骤,实验发现更长的适应步骤可以提高性能,但对于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.
更多推荐

所有评论(0)