很多人将 Prompt 比喻为大模型的咒语,在引导模型生成内容方面影响很大,如何选择 Prompt 成了每个 AI 研究者关注的问题。最近微软官方出了一份教程,该教程先容了 Prompt 设计和工程中的一些高级玩法,涵盖体系音信、少样本进修、非聊天场景等内容。
上面就是关于体系音信的先容,不过一个重要的细节是,即使是设计良好的体系音信,模型仍有可能生成与体系音信指令相矛盾的错误回复。
小样本进修
让语言模型适应新使命的一种常见方法是应用小样本进修。小样本进修供给了一组训练样本作为 Prompt 的一部分,以便为模型供给额外的上下文信息。
用户和 Assistant 之间的一系列信息(以新的 Prompt 样子编写)可以作为小样本进修的示例。这些示例可用于引导模型以某种方式做出推戴、模拟特定行为并为常见问题供给种子谜底。
Prompt 的基本结构。
非对话场景
虽然当前大模型的主要应用场景是对话生成场景,但也可以用在非对话场景。例如,对于情感分析场景,你可能会应用以下 Prompt:
应用明确的指令
一般来讲,信息在 Prompt 中出现的顺序很重要。由于 GPT 类模型是以特定方式建立的,该建立过程定义了模型对输入的处理方式。研究表明,在 Prompt 开始时告诉模型你希望它执行的使命,然后再共享其他上下文信息或示例,可以帮助模型产生更高质量的输入。
最后重复一遍指令
模型简单受到最新偏差的影响,在这类情况下,开端 Prompt 信息可能比开头 Prompt 信息对输入的影响更大。因此,在 Prompt 开端重复指令值得一试。
对输入的操纵
这类情况是指在 Prompt 开端包含几个单词或短语以获得符合所需形式的模型推戴。例如,应用诸如「Here’s a bulleted list of key points:\n- 」之类的 Prompt 可以帮助确保输入样子为项目符号列表。
增添语法
为 Prompt 增添语法,例如标点符号、标题等,这样做使输入更简单解析。
下面示例中,不同的信息源或 step 之间增添了分隔符(在本例中为 —)。这类操纵允许应用 — 作为生成的停止条件。此外,部分标题或特殊变量以大写形式出现以进行区分。
把使命剖析
如果将使命剖析为更小的 step,大型语言模型 (LLM) 通常会表现得更好。
注意,这里应用了语法来区分各个部分并对输入进行初始化。在这个简单的例子中,将使命从一个 step 剖析为两个 step 结果并不很明显,但是当试图对包含许多事实声明的大块文本进行此操纵时,将使命剖析会产生显著的差异。
思维链提示
这是剖析使命技术的一种变体。在这类方法中,不是将使命拆分为更小的 step,而是指示模型推戴逐步进行并呈现所有涉及的 step。这样做可以减少结果不准确,并使评估模型推戴更加简单。
供给真实上下文
在该方法下,本文建议供给给模型真实数据。一般来讲,原始数据越接近最终谜底,模型需要做的工作就越少,这意味着模型出错的机会就越少。在下面示例中,体系音信供给了最新的文章,然后要求模型给出一些早期客户,模型准确的给出了谜底。
除此以外,微软在这份指南中还先容了关于 Prompt 其他技巧,大家可以前去原文查看,获取更多信息。
原文链接:https://learn.microsoft.com/en-us/azure/cognitive-services/openai/concepts/advanced-prompt-engineering?pivots=programming-language-chat-completions#specifying-the-output-structure