来源:learn.microsoft.com
编译:活水智能
提示工程(Prompt engineering)可以提升大模型输出质量。
然而,这也具有一定挑战性,因为它需要理解模型的能力和局限性,以及所涉及的领域和任务。
以下是微软官网给出的9个撰写提示词的建议。
更多内容可在文末点击阅读原文查看。
**
**
1. 提供明确的指示
确保提示词具体说明你希望模型生成的内容,包括预期的格式、长度和语气。
例如,如果你希望模型生成新闻文章的摘要,可以指定句子的数量、需要涵盖的主要观点以及写作风格。
2. 使用关键词、符号或标签
这有助于大模型更清晰地识别有意义的信息,并消除歧义。
你可以在单个提示词中使用多种策略,例如用“Summary:”和“< | end | >”等短语标明完成的开始和结束。 |
你还可以指示大模型查找特定格式提供的上下文,这有助于将更复杂的提示词模板化。
例如:“总结用三重引号分隔的文本。使用少于25个单词。’’‘<待总结文本>'''”。待总结文本>
3. 提供上下文
提供一些关于应用、领域和用户意图的背景信息。这些上下文有助于模型生成更相关和连贯的输出。
例如,如果你希望模型生成代码,可以包括一些导入语句以使模型专注于相关的库和模块。
你还可以提供一些注释或描述来解释代码的目的和逻辑。对于对话任务,可以提供一些关于用户、话题和对话目标的背景信息。
4. 从零样本学习开始,然后进行少样本学习
当你没有或只有有限的数据用于任务时,零样本(zero-shot)学习可能很有用,或者当你想测试模型的创造力和多样性时,零样本学习也很有用。
少样本(few- shot)学习在你有一些任务数据,或者当你想引导模型的行为,输出示范的文本时很有用。你可以根据需要尝试不同数量的示例,并根据输入或反馈动态选择这些示例。
例如,如果你希望模型生成产品评论,可以从零样本学习开始,看看模型生成什么内容。然后提供一些正面或负面的评论示例来引导模型的情感和风格。
5. 尝试重新排列你的提示词
提示词中元素的顺序会影响模型的注意力和影响力。提示词底部的少样本示例或其他信息,比顶部的更能影响完成结果。
你可以尝试不同的提示词排列方式,看看模型如何响应以及哪种方式最适合你的任务。
例如,如果你希望模型生成新闻文章的标题,可以尝试将文章放在提示词的顶部或底部,看看模型如何捕捉文章的主要思想和语气。
6. 调整历史消息长度
在多轮对话应用中,如聊天机器人,提示中包含的历史对话消息长度可以为模型提供足够的上下文,以生成自然和一致的响应。
然而,你也需要监控模型的行为,发现以下问题时,清除或限制历史消息条数。
• 偏离对话的话题或目标
• 自我重复
• 自相矛盾
你可以通过以下方法识别:
• 根据对话的复杂性和连贯性调整历史长度
• 查看是否和主题相关
• 情感分析
• 检测重复性
7. 优化少样本例子
你提供给模型的少样本(few-shot)示例,会显著影响模型的性能和泛化能力。你可以在你的数据上训练或微调语义相似性模型,以选择更相关的少样本示例。
语义相似性模型可以根据文本的意义和内容,而不是表面形式或句法,衡量两个文本之间的相似性。
你可以使用语义相似性模型对数据进行排序和过滤,并选择与输入或任务最相似的示例。
例如,如果你希望模型生成食谱,可以使用语义相似性模型选择一些具有类似成分、菜系或步骤的食谱示例。
8. 指导模型如何推理
你可以通过思维链(CoT)和自问自答等技术提高大模型的一些推理能力。
例如,思维链(CoT)使大模型能够将多步骤问题分解为中间步骤,从而解决标准提示方法无法解决的复杂推理问题。
9. 帮助大模型处理模糊上下文
通过指导其重新表述问题,使其更容易清晰回答。
论文 Rephrase and Respond 提供了起始提示和有用指导,说明这种技术如何让大模型重新构建人类提出的问题,使其更容易推理,并向用户提供重新表述查询的方法建议。
这种技术可以与其他推理方法如思维链结合使用,以提高推理性能并提供更具对话性和用户友好的聊天体验。
如果本文对你有帮助,请点赞、在看,分享给更多朋友🤗
ToT、IO、CoT与CoT-SC,提高你向GPT提问的能力