趋近智
提示词微调提供了一种独特的模型行为引导策略。与那些通过修改或增加Transformer层中的组件来进行模型微调的方法不同,提示词微调通过操作模型的输入来实现这一点,而完全不改变基础模型的内部权重。此方法简单但对许多任务来说非常有效,是现有参数效率最高的策略之一。
传统提示词涉及在实际输入前添加离散的文本指令(例如:“将英语翻译成法语:”)。提示词微调用可学习的连续向量取代了这些手动编写的文本提示词,这些向量通常被称为“软提示词”或“提示词嵌入”。
想象一下,你想对LLM进行摘要任务的微调。你不是仅仅输入要摘要的文本,而是在其前面添加一个包含k个特殊提示词嵌入的序列:
[P1,P2,...,Pk,E(x1),E(x2),...,E(xn)]
此处:
在微调过程中,唯一被更新的参数是这k个提示词向量P1,...,Pk。所有原始LLM参数(注意力层、前馈网络中的权重,嵌入查找表E等)都保持冻结。优化过程通过反向传播调整提示词嵌入Pj,以便将它们添加到输入序列前,从而引导冻结的LLM生成所需的输出(例如,一个正确的摘要)。
这种方法极大地减少了可训练参数的数量,即使对于数十亿参数的模型,通常也只减少到几千或几万个(远低于总参数的0.1%)。这使得训练的内存效率非常高。
提示词嵌入Pj的初始化方式可以明显影响训练稳定性和最终性能。常用策略有:
尽管基础提示词微调效率很高,但其性能有时会落后于完全微调或LoRA等方法,特别是在GLUE或SuperGLUE等基准测试中发现的复杂自然语言理解(NLU)任务上。开发P-Tuning等变体就是为了解决这些局限性。
P-Tuning (v1):引入提示词编码器
P-Tuning (v1) 观察到手动选择最优提示词的离散性很难实现,并且独立的提示词嵌入(如基础提示词微调中所示)可能缺乏表现力。它提出了两个主要方面:
然而,P-Tuning v1仍然主要集中在输入嵌入层周围进行修改,有时会出现优化不稳定的情况。
P-Tuning v2(深度提示词微调):层级特定提示词
P-Tuning v2(常被称为深度提示词微调)通过将可训练的提示词嵌入应用于Transformer的每个层,而不仅仅是输入层,从而大幅增强了该方法。
在这种设置中,对于每个层l,都会维护一组可训练的提示词嵌入Pj(l)。这些嵌入会添加到进入该层的隐藏状态序列之前。这类似于Prefix Tuning,后者也在每个层注入可调参数。然而,P-Tuning v2通常只添加前缀向量,而Prefix Tuning通常涉及专门为注意力机制学习前缀键值对。
通过允许对模型内部计算在每个层进行直接影响,P-Tuning v2克服了浅层提示词微调的局限性,即初始提示词的影响可能在更深层消散。它在具有挑战性的NLU基准测试上表现出接近完全微调的性能,同时保持了高参数效率(尽管略低于基础提示词微调的效率,但仍远高于LoRA或完全微调)。它有效地为冻结的LLM提供了一种层级“引导机制”。
提示词微调与P-Tuning:
优点:
缺点:
提示词微调及其P-Tuning变体构成了一组有吸引力的PEFT技术,当计算资源高度受限或需要单个基础模型实例同时支持多项任务时,它们尤其有价值。特别是P-Tuning v2,在参数效率和性能之间取得了良好的平衡,在许多NLU任务上与更复杂的方法相媲美。
这部分内容有帮助吗?
© 2026 ApX Machine Learning用心打造