你好,我是三桥君
在今年,我研究了结构化编写Prompt的方法,并观察到这种结构化、模板化的Prompt能够有效地突破ChatGPT 3.5的限制,实现所谓的“越狱”。然而,为什么ChatGPT会对这种结构化Prompt如此有效呢?
因为Prompt的本质是向模型传达下游任务的指令,就是指导模型执行特定任务并生成相应的输出内容。在过去,模型通常是针对特定任务设计的,只能解决某一类问题。 以ChatGPT为代表的大模型则通过结构化模板的方法,将各种特定任务统一起来。这些模型为不同的任务和样本构建了不同的结构化模板,从而在海量数据上实现了针对各种任务的预训练。
学术界对如何构建合适的模板投入了大量时间和精力,因为不同的任务和样本可能需要其特定的模板。在训练阶段,模型能够根据不同的数据集(甚至不同的样本)自适应地选择合适的模板,这意味着不同的任务在训练阶段会有相应的模板提示信息。 当模型的参数量足够大,训练过程中使用了充足的语料,并且预训练任务设计得足够有效时,仅需设计恰当的模板或指令,就能实现无需进一步参数训练的高质量零样本学习,即能够得到我们期望的各种输出结果。
也就是说,当模型的参数量足够大,训练过程中使用了充足的语料,并且预训练任务设计得足够有效时,仅需设计恰当的模板或指令,就能实现无需进一步参数训练的高质量零样本学习,即能够得到我们期望的各种输出结果。
这是三桥君总结的结构化提示词的撰写方法如下,这个格式并非一成不变,仅作为模板,供大家学习和参考使用。在实际应用中,可以根据个人需求进行相应的修改或精简。只要遵循提示词撰写的一些基本原则和技巧,就能够充分激发创意和想象力,个性化地构建提示词。
-
Role: 通过指定角色名称,可以引导GPT专注于特定领域的信息输出。Profile author/version/description: 记录贡献者信息、迭代版本以及描述,以便追踪和参考。Goals: 用一句话概述提示词的目标,这有助于GPT集中注意力,明确信息输出的方向。Constrains: 描述特定的限制条件,这有助于GPT在生成回答时进行有效的信息剪枝,避免不必要的计算分支。Skills: 列出相关的技能项,这样可以增强GPT在特定领域的信息权重,提高回答的相关性。Workflow: 这是撰写提示词的核心部分,它定义了你希望GPT按照何种方式进行对话和输出信息。Initialization: 在冷启动阶段提供的对话,这也是一个强调关键点的机会,确保GPT从开始就关注到重要的信息。
综上所述,我认为结构化Prompt之所以有效,原因在于:
-
模板适应性:结构化Prompt能够根据不同的任务和样本自适应地选择合适的模板,这使得模型能够更好地理解和执行指令。
-
预训练效率:大型模型在预训练过程中已经接触了大量的结构化模板,因此对于这类Prompt有更高的响应度和准确性。
-
零样本学习能力:由于模型在预训练时已经学习了如何根据模板执行任务,因此在面对新的任务时,即使没有具体的训练样本,也能通过结构化Prompt生成高质量的输出。
当然,在实际应用中,结构化Prompt的设计和应用仍需根据具体任务和模型的特点进行细致的调整和优化。