通过指令原则提升大模型输出质量
大语言模型如ChatGPT在多个领域和任务中展现出卓越的能力,但在普通用户设计最优指令或提示时,它们的应用和使用有时可能并不清晰。而他们的工作是为开发人员或普通用户揭示与LLMs询问和交互时时“神秘的黑盒”,并通过简单地策划更好的提示来进一步提高预训练LLMs的响应质量。
研究团队提出了26条用于 LLM 提示的原则:
与LLM交流时,无需使用礼貌性语言,如“请”、“如果你不介意”、“谢谢”等,直接陈述要点。
在提示中整合预期的听众,例如“听众是该领域的专家”。
将复杂任务分解为一系列更简单的提示,并通过互动式对话进行。
使用肯定的指令,如“做”,避免使用否定语言,如“不要”。
当你需要清晰理解某个主题、想法或任何信息时,使用以下提示:简单地解释[具体主题]。像我是11岁的孩子一样向我解释。像我是[领域]新手一样向我解释。
添加“I’m going to tip $xxx for a better solution!”(我会给xxx小费以获得更好的解决方案!)。
实施示例驱动的提示(使用少数示例提示)。
在格式化提示时,首先使用‘###Instruction###’,然后是‘###Example###’或‘###Question###’(如果相关),然后呈现内容。使用一个或多个换行符来分隔指令、示例、问题、上下文和输入数据。
加入以下短语:“Your task is”(你的任务是)和“You MUST”(你必须)。
加入以下短语:“You will be penalized”(你将受到惩罚)。
在提示中使用短语“Answer a question in a natural human-like manner”(以自然的人类方式回答问题)。
使用引导性词汇,如写“think step by step”(逐步思考)。
在你的提示中添加以下短语:“Ensure that your answer is unbiased and does not rely on stereotypes”(确保你的回答是无偏见的,不依赖于刻板印象)。
允许模型通过向你提问直到获得足够的信息来提供所需输出,例如“From now on I would like you to ask me questions to…”(**从现在开始,我希望你向我提问,直到…**)。
要了解特定主题或想法或任何信息,并且你想测试你的理解,你可以使用以下短语:“Teach me the [Any theorem/topic/rule name] and include a test at the end but don’t give me the answers and then tell me if I got the answer right when I respond”(教我[任何定理/主题/规则名称]并在最后包括一个测试,但不要给我答案,然后在我回答时告诉我是否正确)。
为大语言模型分配一个角色。
使用分隔符。
在提示中多次重复特定单词或短语。
结合思维链(CoT)与少数示例提示。
使用输出引导器,它涉及以期望输出的开始结束你的提示。通过以预期响应的开始结束你的提示来使用输出引导器。
要编写详细的[论文/文本/段落/文章]或任何需要详细的文本类型:“为我详细写一篇关于[主题]的详细[论文/文本/段落],添加所有必要的信息”。
要更正/更改特定文本而不改变其风格:“尝试修改用户发送的每个段落。你只应该改善用户的语法和词汇,确保它听起来自然。你不应该改变写作风格,例如将正式段落变得非正式”。
当你有一个可能涉及不同文件的复杂编码提示时:“**从现在开始,每当你生成跨越多个文件的代码时,生成一个[编程语言]脚本,可以运行以自动创建指定的文件或对现有文件进行更改以插入生成的代码。[你的问题]**”。
当你想使用特定单词、短语或句子开始或继续文本时,使用以下提示:我为你提供了开始[歌词/故事/段落/论文…]:[插入歌词/单词/句子]。根据提供的词汇完成它。保持流畅一致。
明确陈述模型必须遵循的要求,以便根据关键词、规则、提示或指令产生内容。
要写任何文本,如文章或段落,且内容与提供的样本相似,请包含以下指示:”请根据提供的段落[/标题/文本/文章/答案]使用相同的语言基础。“
根据这些原则特有的性质,研究团队将它们分为五个类别:
(1) 提示结构和清晰度,例如,在提示中整合预期的听众,如听众是该领域的专家;
(2) 具体性和信息,例如,在你的提示中添加以下短语“确保你的回答是无偏见的,不依赖于刻板印象。”;
(3) 用户互动和参与,例如,允许模型通过向你提问来获取精确的细节和要求,直到它有足够的信息来提供所需的输出“从现在开始,我希望你向我提出问题…”;
(4) 内容和语言风格,例如,与LLM交流无需礼貌,因此无需添加诸如“请”、“如果你不介意”、“谢谢”、“我想要”等短语,直接切入主题;
(5) 复杂任务和编码提示,例如,将复杂任务分解为一个互动对话中的一系列更简单的提示。