← 返回列表

AI系列面试12:Prompt 怎么调优?

Prompt 调优(Prompt Engineering / Optimization)是让大语言模型“听话”的关键技能,尤其在 RAG 系统中,直接决定模型是否愿意忠实依据检索内容、避免幻觉、输出格式规范。


一、Prompt 调优的核心原则

  1. 清晰 > 复杂:简单的直白指令往往比花哨的思维链更有效。
  2. 给足约束:明确告诉模型“能做什么、不能做什么”。
  3. 提供范例:Few-shot 比 Zero-shot 更稳定。
  4. 可验证:让模型输出引用或置信度,便于下游判断。
  5. 迭代优化:从基线开始,每次只改一个变量,对比效果。

二、具体调优技巧(从易到难)

1. 角色设定(System Prompt)

你是一个专业的客服助手。你只能根据下面提供的【参考资料】回答问题。
如果你不知道答案,请直接说“资料中没有相关信息”,不要自己编造。
  • 作用:设定边界和语气。
  • 调优点:语气(专业/亲切)、约束强度(严格/宽松)。

2. 明确指令

❌ 差:“回答用户问题。”
✅ 好:“仅依据下方【参考资料】回答。如果参考资料不包含答案,请回答‘我无法回答这个问题’。”

3. 输出格式控制

请按以下 JSON 格式输出:
{
  "answer": "你的答案",
  "confidence": "高/中/低",
  "sources": [1, 3]
}
  • 用途:便于下游解析、引用、调试。

4. Few-shot 示例(极有效)

示例1:
问题:年假有几天?
参考资料:年假规则:满1年5天,满10年10天。
答案:满1年5天,满10年10天。

示例2:
问题:加班费怎么算?
参考资料:工作日加班1.5倍,周末2倍。
答案:工作日1.5倍,周末2倍。

现在请回答:
问题:{用户问题}
参考资料:{检索内容}
答案:
  • 技巧:示例要覆盖不同难度,最好包括一个“无法回答”的例子。

5. 强制引用

在答案末尾用[citation:X]标注来源编号。例如:“年假为5天[citation:1]。”
如果综合多个资料,分别标注。

6. 设置拒答阈值

  • 硬约束:“如果参考资料与问题完全无关,请回答‘资料不相关’。”
  • 软约束:结合检索置信度分数,低于阈值时自动走拒答分支。

7. 思维链(Chain-of-Thought)用于多跳推理

问题:张三的老板是谁?
步骤:1. 先找出张三的部门。2. 再找出该部门负责人。3. 给出最终答案。
请按步骤思考后输出。

8. 否定指令(Negative Prompting)

不要编造答案。不要使用“可能”“也许”等模糊词。不要输出任何参考资料以外的数字。

三、如何评估 Prompt 的好坏?

指标 含义 如何测量
忠实度 答案是否严格基于参考资料 人工或 RAGAS 的 Faithfulness
拒答准确率 应该拒答时是否拒答 在无答案的测试集上计算
格式遵循率 是否按要求输出 JSON / 引用 正则匹配
用户满意度 答案是否有用 在线反馈 / A/B测试

建议:准备一个小型测试集(20-50 个边缘案例),每次改 prompt 后跑一遍,记录变化。

四、常见陷阱与调优方向

问题表现 可能原因 调优方法
模型忽略参考资料,自行回答 指令不够强制 改为“仅根据以下资料”,并用 few-shot 展示拒答
模型总是说“不知道” 拒答阈值过高 降低阈值或检查检索质量
输出格式乱,不按 JSON 指令不清晰 加上严格的格式示例,或者使用 function calling
答案太长/太短 没指定长度 “用不超过3句话回答”
多跳推理出错 模型推理能力不够 要求展示逐步推理,或换用更强模型
出现幻觉数字/日期 模型依赖自身知识 强调“不要使用任何你记忆中的数字,只看资料”

评论

暂无已展示的评论。

发表评论(匿名)