Post

提示词工程

角色、指示、上下文、例子、输入、输出。角色=最匹配任务身份;指示=任务描述;上下文=背景;例子=FewShot;输入=明确标识;输出=风格/格式(JSON/XML 便于解析)。

大模型工程 阅读 0 点赞 0 评论 0

1. 六要素结构

角色、指示、上下文、例子、输入、输出。角色=最匹配任务身份;指示=任务描述;上下文=背景;例子=Few-Shot;输入=明确标识;输出=风格/格式(JSON/XML 便于解析)。

2. 优化方向 & 写作技巧

优化:① 指示限制补充 ② Few-Shot 鲜明例子 ③ 思维链 CoT(一步步思考)④ 选推理模型。
技巧:角色设定 · Few-shot(2-3 高质量示例比长指令有效)· CoT(Let's think step by step)· 结构化(Markdown 标题/分隔符/XML 标签明确边界)· 限定输出(别废话、直接 JSON)。

3. 字数分配

过长导致 Lost in the Middle + 增成本。
- Task/Role:约 200 字,明确身份("资深高考数学命题专家")。
- Constraints 负向约束:约 300 字,极重要("严禁超纲""严禁输出 JSON 外任何解释")。
- Few-Shot:占大头 1000-2000 字,2-3 正例 + 1 典型反例(说明为什么错)。

4. Lost in the Middle

模型对 Prompt 开头和结尾最敏感,中间最易忽略(U 型曲线)。策略:重要指令/变量放开头或结尾;长上下文检索把最相关片段放两端。

5. Prompt Caching

对长且重复前缀(长系统指令/长 RAG 上下文/长代码库)缓存 KV Cache。价值:降本(缓存部分约 1/10 费用)+ 增效(降 TTFT)。注意 Anthropic 服务端缓存约 5 分钟失效。

6. 结构化输出

三方式:① JSON Mode 强制 JSON ② Function Calling/Tool Use 输出符合 Schema 参数 ③ JSON Schema(OpenAI 最新,保证 100% 符合结构)。
少括号/多符号解析报错闭环:① 前置硬约束(Structured Outputs/JSON Mode + Pydantic Schema)② Prompt 防御(禁 Markdown 代码块包裹、长文本字段禁未转义换行、统一各学科 JSON 规范)③ 后置容错(json_repair 库自动修复缺括号/漏逗号)。

7. 防泄答 / 控制输出(苏格拉底场景)

Few-shot 注入正反例明确禁止输出 Answer + System Prompt 角色隔离 + 状态机控制(把题目拆固定步骤,每次只针对当前步骤提问,后端校验通过才推进)。Prompt 和代码双层锁死答案。

8. 超长提示词处理

① 文档分块(段落/章节/语义单元,滑动窗口保连续)② 关键信息提取(TF-IDF/TextRank)③ 摘要压缩 ④ 用长窗口模型(Gemini 1.5 Pro 1M)。

9. CoT 变体全谱系

CoT(思维链)之外还有一整套变体,面试问"了解哪些提示技巧"时能展开就是加分:
- Zero-shot-CoT:问题结尾加"Let's think step by step"即触发推理链,无需示例。
- Few-shot-CoT:示例里同时给答案 + 推导过程;缺点是结果易受示例波动不稳定。
- Self-Consistency 自洽:同一问题多次采样多条推理路径,对最终答案投票取多数,比单条 CoT 更稳(也是幻觉缓解手段)。
- Least-to-Most(LtM):先把问题分解成子问题序列,再逐个求解且前一答案喂给后一子问题
- ToT 思维树 / GoT 思维图 / AoT 思维算法:把单链推理扩展成树/图/搜索(详见 03-Agent §4b)。
- 共同局限:都需人工写 instruction 和 in-context example,属 prompt 工程——自动化 prompt 是未来方向。


继续阅读

全部归档

评论