动态提示是什么?根据每个输入自动调整的提示词
动态提示(Dynamic Prompts)是一种根据具体任务或输入实例来动态调整提示词的技术。与对所有输入都使用同一段固定提示的做法不同,动态提示会针对每个输入,自动地选择或生成最合适的提示内容,从而提高模型的性能和适应性。它被用于自然语言处理和其他人工智能应用中。相关的系统性研究之一,来自加利福尼亚大学圣塔芭芭拉分校和 NEC 美国实验室的研究人员。
背景:提示学习
大模型时代,提示词对模型的表现影响很大。一种叫“提示学习”或“提示微调”的方法,不改动预训练模型本身的参数,而是在输入前面加上一段可以学习的“软提示”,也就是一组可训练的向量,只训练这段提示来让模型适应新任务。这种方法参数少、成本低。但传统的提示学习通常为整个任务学习一段固定的提示,所有输入都共用同一段提示,忽略了不同输入之间的差异:同一个任务中,有的输入简单,有的复杂;有的需要这方面的提示,有的需要那方面的。
动态提示怎么做
动态提示的研究探讨了提示在几个维度上可以“动态”地调整。位置:提示应该放在输入的前面、后面,还是插在中间?不同的任务和输入,最合适的位置可能不同。长度:提示应该多长?简单的输入可能只需要很短的提示,复杂的需要更长。内容:提示的具体内容是否应该根据输入而变化?研究者设计了一个轻量的网络,根据每个输入实例的特征,自动地决定提示的位置、长度和内容表示,比如从一个提示池中为当前输入挑选和组合最合适的提示。实验显示,与固定提示相比,动态提示在多种自然语言处理、视觉识别和视觉语言任务上都带来了效果的提升,在小样本、多任务等场景下优势更明显。
更广义的动态提示
在大模型应用的实践中,“动态提示”也常常泛指一类工程做法:不写死一段提示词,而是根据当前的用户、任务和上下文,在程序中动态地组装提示。比如根据用户的问题,从知识库中检索出相关的资料拼进提示里(检索增强生成);从一个示例库中挑选与当前问题最相似的几个例子作为少样本示例;根据用户的身份和偏好调整系统指令;根据对话的历史动态地压缩和插入记忆。这些做法本质上都是让提示随输入而变,是如今“上下文工程”的重要组成部分。