大语言模型 Prompt 工程:从理论到实践
什么是 Prompt 工程
Prompt Engineering(提示词工程)是自然语言处理(NLP)和机器学习中的一个重要领域,关注如何设计有效的提示词来引导大语言模型生成高质量的文本。良好的提示词可以帮助模型准确理解任务需求,显著提高生成文本的相关性、准确性和可用性。
在聊天机器人、文本生成、问答系统以及自动化工作流中,提示词工程对于提升用户体验和系统性能至关重要。它不仅仅是简单的提问,而是通过结构化、约束和引导,让模型发挥最大潜力。
为什么要写好 Prompt
大语言模型虽然具备强大的泛化能力,但其输出质量高度依赖于输入的质量。遵循"Garbage In, Garbage Out"原则,模糊或错误的指令会导致模型产生幻觉、逻辑混乱或偏离目标。优化 Prompt 可以:
- 减少幻觉:通过明确约束和知识库引用,降低模型编造事实的概率。
- 提高一致性:确保多次调用返回格式统一,便于程序解析。
- 增强可控性:精确控制输出风格、长度和语气。
- 降低成本:更精准的 Prompt 往往能用更少的 Token 获得更好的结果,节省 API 费用。
基本写作方法
掌握通用的 Prompt 框架能显著提升编写效率。以下是几种主流框架:
ICIO 框架
- I (Instruction): 明确指令,告诉模型要做什么。
- C (Context): 提供背景信息,帮助模型理解场景。
- I (Input Data): 输入具体数据或待处理内容。
- O (Output Indicator): 指定输出格式或示例。
APE 框架
- A (Ask): 提出具体问题。
- P (Provide): 提供必要的上下文或资源。
- E (Example): 给出期望的输出示例(Few-Shot)。
BROKE 框架
- B (Background): 设定角色和背景。
- R (Request): 清晰表达请求。
- O (Objective): 定义目标。
- K (Key Constraints): 关键限制条件。
- E (Evaluation): 评估标准。
ROSES 与 SCOPE 框架
这些框架进一步细化了角色设定、任务拆解和输出规范。例如,ROSES 强调 Role(角色)、Objective(目标)、Style(风格)、Example(示例)、Step(步骤),适合复杂任务规划。
高级写作技巧
善用分隔符
使用 ###, ---, """ 等符号将不同部分的内容隔开,有助于模型区分指令、数据和参考内容,避免混淆。
结构化输出
要求模型以 JSON、Markdown 表格或特定 XML 标签格式输出,便于后续代码解析和处理。
迭代优化
Prompt 设计通常不是一次性的。通过测试 - 反馈 - 修改的循环,逐步逼近最佳效果。
自带知识库解决幻觉
在 Prompt 中提供相关文档片段或事实依据,并指示模型仅基于这些信息回答,可大幅减少虚构内容。


