一、定义
提示工程(Prompt Engineering)是指设计和优化向语言模型(如 GPT 系列、BERT、文心一言、通义千问等)输入的文本提示,以引导模型生成更准确、有用、符合预期的输出的过程。
提示工程通过为大模型设计高效且精确的提示词,能够有效引导大模型理解输入信息,从而提升生成的准确性与相关性。提示工程的核心在于设计任务指令、上下文信息、输入数据和输出格式的合理组合,通过具体指令、示例学习、默认回复策略、角色设定等技巧,有效解决生成过程中可能出现的缺失信息、格式错误等问题,提升 RAG 系统回答的生成效果。
二、结构
-
指令(Instruction):指明模型要执行的特定任务或操作。
-
上下文(Context):为模型提供额外信息或背景,可以帮助引导模型生成更准确的响应。
-
输入数据(Input Data):我们希望模型回答的问题或感兴趣的输入内容。
-
输出指示符(Output Indicator):指定模型的输出类型或格式,例如格式、是否要求生成代码、总结文本或回答具体问题。
三、技巧
-
具体指令法通过向大模型提供具体、清晰的指令,能够提高输出的准确性。模糊的指示往往导致模型产生不理想的结果,而具体指令则有助于模型明确任务目标,生成更符合预期的内容。
-
示例学习通过给模型提供多个参考示例,模型可以基于这些示例进行模式识别,进而模仿、思考并生成类似的答案。这种方法在无需对模型进行进一步训练的情况下,有效提升了模型的输出质量。
-
默认回复策略当模型无法从文档中获取足够信息时,通过设定默认回复策略,避免模型产生“幻觉”,即生成虚假的答案。这可以确保模型仅基于文档中的事实进行回答。
-
任务角色设定通过为模型设定特定的角色身份,可以帮助模型更好地理解任务要求和角色责任,从而输出更加一致、专业的内容。
-
解释理由法在编写提示时,向模型解释为什么某些任务需要特定的处理方式。这样可以帮助模型更好地理解任务背景,从而提高输出的质量和相关性。
-
文档基础说明为模型提供文档的背景信息和文本来源可以帮助奠定任务基础,让模型更好地进行任务推理和回答。