Prompt Engineering (提示工程)
本指南分享了从 GPT-4 等大型语言模型中获得更好结果的策略和战术。这些方法有些可以结合使用以获得更强大的效果。
六大核心策略
1. 写清楚指令 (Write clear instructions)
模型无法读懂你的心思。如果输出太长,要求简短;如果输出太简单,要求专家级写作。如果不喜欢格式,展示你想要的格式。
- 包含细节: "写关于 AI 的代码" -> "用 Python 写一段代码,使用 PyTorch 库实现一个简单的线性回归模型,并包含注释。"
- 使用分隔符: 使用
""",---, ````,<tag>等符号清晰区分指令和引用的文本。 - 指定角色: "你是一位专业的学术编辑..."
- 举例说明 (Few-shot): 提供“输入-输出”对的示例,让模型模仿风格或格式。
2. 提供参考文本 (Provide reference text)
语言模型有时会自信地编造假消息(幻觉)。提供参考资料可以帮助模型回答更准确。
- 基于参考回答: "使用下面的文章来回答问题。如果你无法从文章中找到答案,请说不知道。"
- 引用来源: 要求模型在回答中引用参考文本的具体段落。
3. 将复杂任务拆分为简单子任务 (Split complex tasks into simpler subtasks)
就像软件工程将复杂系统分解为模块一样。
- 多步处理: 不要试图在一个 Prompt 中完成所有事情。先让模型提取信息,再让模型总结,最后格式化。
- Intent Classification (意图分类): 先判断用户意图(客服、技术支持、销售),然后根据分类加载不同的指令集。
4. 给模型“思考”的时间 (Give the model time to "think")
如果你被要求立即计算 17 x 24,你可能会算错。如果你可以一步步写下来,正确率会大大提高。
- 思维链 (Chain of Thought): 要求模型 "Let's think step by step" (让我们一步步思考)。
- 强制推理: 在让模型给出最终结论前,先要求它列出推理过程或计算步骤。
- 检查工作: 要求模型在输出最终答案前,先检查自己生成的代码或逻辑是否存在错误。
5. 使用外部工具 (Use external tools)
通过给模型提供工具来弥补其弱点。
- 代码执行: 使用 Code Interpreter 进行精确计算或运行代码,而不是让模型“心算”。
- 检索增强生成 (RAG): 使用 Embeddings 或搜索工具获取外部知识库的信息。
- API 调用: 使用 Function Calling 连接到你的业务系统。
6. 系统地测试变更 (Test changes systematically)
如果你无法衡量性能,就无法改进它。
- 构建评估集 (Evals): 创建一组具有标准答案(黄金标准)的测试用例。
- 自动化评估: 随着 Prompt 的修改,运行评估集,检查准确率、风格一致性等指标是否提升。
- 不要只依赖一两个例子的感觉,要看整体指标。
示例:优化 Prompt
优化前 (Bad):
帮我写个关于鞋子的广告。
优化后 (Good):
你是一位专业的营销文案。请为一款名为 "AirStride" 的新型跑鞋写一篇 Instagram 广告文案。
产品特点:
- 重量仅 200g
- 专为马拉松设计
- 售价 $120
要求:
- 语气充满活力且励志
- 包含 3 个相关的 emoji
- 结尾包含 "立即购买" 的号召性用语