一、提示词工程指南
1.1 它到底解决什么问题?
- 落地能力:帮助我们把 LLM 应用到各种业务场景和研究领域。
- 认知能力:看清 LLM 的能力边界和局限性,避免把它当"万能工具"。
架构师视角:这和我们选型一个中间件是一样的------先知道它能干什么、不能干什么,再决定怎么用。
二、提示工程简介
2.1 LLM 模型设置(调参)
| 参数 | 作用 | 使用建议 |
|---|---|---|
| Temperature | 控制输出的随机性。越小越稳定,越大越发散 | 结构化输出用小值;创意类用大值 |
| Top_p | 候选词维度的控制。越低越稳定,越高越发散 | 与 Temperature 二选一 即可 |
| Max Length | 输出 Token 的最大数量 | 控制成本和输出边界 |
| Stop Sequences | "遇到这个词就闭嘴"的开关 | 控制输出边界,让结果更干净可解析 |
| Frequency Penalty | 抑制同一词语的重复使用 | 控制"能不能重复说同一个词" |
| Presence Penalty | 抑制已经出现过的 token 再次出现 | 鼓励新话题,与 Frequency Penalty 二选一 |
一句话记忆:
temperature决定 "多敢冒险"top_p决定 "从多大的候选池里选"
2.2 基本概念
Prompt 的三种角色
| 角色 | 比喻 | 职能 |
|---|---|---|
| System | 导演给的剧本设定 | 设定角色、风格、边界 |
| User | 观众的提问 | 发起请求 |
| Assistant | 演员的台词 | LLM 的回复 |
三者配合,才构成一场完整的对话戏。
提示词工程的核心目的
让 LLM 的回复更加符合你的预期。
零样本 vs 少样本(个人感悟)
- 零样本提示:只给开放命题,不告诉它该怎么做。
- 少样本提示:明确告诉它你想要什么,并给示例。
我的感悟:就像是在人类浩瀚知识海洋里做"向量检索"------你给它一个样例(就是锚点),它能更快更准地搜到你想要的那片海域。
学提示词工程,就是在找这种"定位感"。
2.3 提示词四要素
- 指令:想要模型执行的特定任务。
- 上下文:外部信息或额外背景,引导模型更好地响应。
- 输入数据:用户输入的具体内容或问题。
- 输出指示:指定输出的类型或格式。
2.4 设计提示的通用技巧
- 从简单开始:做 prompt 是迭代过程,先跑通再优化。
- 指令明确:把 LLM 当程序看------告诉它"具体做什么"。
- 具体性 :需要明确结果时,输入越具体越好。
- 比喻:把它当成一个 "超级无敌的实习生"------确定目标 + 喂对数据,才能产出你要的结果。
- 避免不确定:别绕圈子,直接说。AI 没有情绪,不用顾及。
- 做什么 > 不做什么:告诉模型要做什么,而不是不要做什么。负面指令会引起"幻觉"。
2.5 常见提示词应用场景
| 场景 | 要点 |
|---|---|
| 文本概括 | 直接丢文章让它提炼,但逻辑通顺度有限 |
| 信息提取 | 把拗口内容丢给它提取关键要素,日常高频 |
| 问答 | 难点在于识别回答中的逻辑关系,很费脑 |
| 文本分类 | 给出明确示例效果最好 |
| 对话 | 通过模拟对话让它学习风格 |
| 代码生成 | 要学会指导模型产出好代码 |
| 推理 | 教它运算规则;更稳的做法是让它产生脚本来完成任务 |
三、提示技术
3.1 零样本提示 (Zero-Shot)
不提供任何样例,直接下达指令。适用于简单任务。
3.2 少样本提示 (Few-Shot)
提供少量样本,让 LLM 从样本中学习所需的格式和逻辑。
3.3 链式思考提示 (Chain-of-Thought, CoT)
- CoT:LLM 本身不会"思考",但可以通过样例教它怎么一步步思考。
- Zero-Shot CoT:对推理题,明确要求它"逐步思考(Let's think step by step)",否则容易给出"拍脑袋"的答案。
- Auto-CoT 自动思维链 :让模型先自己写推理示例,再拿这些示例当 few-shot 参考------省去人工,比"直接让它思考"更稳定。
3.4 自我一致性 (Self-Consistency)
核心还是"通过样例教 LLM 如何思考",同时通过多路径采样后投票,提升答案稳定性。
3.5 生成知识提示 (Generated Knowledge)
让 LLM 先探索/生成相关知识,再基于这些知识生成答案。
亲身体验:先让它做"调研",再基于调研结果回答,准确度显著提升。
3.6 Prompt Chaining(提示链)
把复杂任务拆成多步,每一步一个独立的 prompt,上一步输出作为下一步输入------像流水线一样串起多次 LLM 调用。
核心思想:不要指望一个 prompt 解决所有事。分而治之,每个 prompt 只专注做好一件事。
架构师视角:和微服务一样,单一职责原则。
3.7 思维树 (Tree of Thoughts, ToT)
让模型像下棋一样思考------每一步产生多个候选想法,评估后选择有前景的分支继续探索,必要时回溯换条路走。
3.8 检索增强生成 (RAG)
RAG 让大模型"先查资料再回答"。不是凭记忆硬答,而是实时从外部知识库检索相关内容,塞进 prompt,让模型基于这些资料生成答案。
阶段 1:索引(Indexing,离线准备)
原始文档 (PDF/网页/Word...)
↓
[分块 Chunking] → 切成一段段小文本
↓
[向量化 Embedding] → 每段转成向量(如 1536 维)
↓
[存入向量数据库] → Pinecone / Weaviate / Milvus / pgvector ...
阶段 2:检索 + 生成(Retrieval + Generation,在线查询)
用户问题
↓
[问题向量化]
↓
[向量数据库相似度搜索] → 返回 top-k 相关文本
↓
[拼接 prompt]
"根据以下资料回答问题:
[检索到的文本1]
[检索到的文本2]
...
问题:{用户问题}"
↓
[LLM 生成答案]
↓
返回答案(+ 引用来源)
架构师视角:这是当前企业落地 LLM 最主流的架构,本质上是"向量检索 + LLM"组合拳。
3.9 自动推理并使用工具 (ART)
让 LLM 自动选择合适的推理步骤 ,并在需要时自动调用外部工具(计算器、搜索、代码执行器等),不需要人工为每个新任务写示例。
3.10 自动提示工程师 (APE)
让 LLM 自己写 prompt ,再让 LLM 评估哪个 prompt 最好------把"人类工程师手动调 prompt"的工作自动化。
3.11 Active-Prompt
不是所有问题都值得人类写推理示例------找出模型最没把握的那些问题,只给这些问题人工标注推理链,再用这批精挑细选的示例做 few-shot CoT。
灵感来自机器学习的 Active Learning------把人类标注的精力花在刀刃上。
3.12 方向性刺激提示 (Directional Stimulus)
用一个小模型生成"提示性线索(hint)",作为方向性刺激信号,引导大模型(黑盒)生成更符合期望的输出。
一句话:小模型当"提词员",大模型当"演员"。
3.13 Program-Aided Language Models (PAL)
让 LLM 通过生成程序代码来解决问题,而非直接用自然语言推理。
核心思想:
- LLM 负责:理解问题 + 生成代码(通常是 Python)
- 代码解释器负责:执行计算,得到最终答案
分工明确:模型做它擅长的(语言理解、问题分解),解释器做它擅长的(精确计算)。
解决了 CoT 在数学/逻辑/符号计算上易错的问题。
3.14 ReAct 框架
让 LLM 在解决问题时交替进行思考和行动:
Thought(思考)→ Action(行动)→ Observation(观察结果)→ Thought → ...
- Thought:推理下一步该做什么
- Action:调用工具(搜索、计算器、API...)
- Observation:获取工具返回的结果,作为下一轮思考的输入
当前 Agent 的事实标准范式。
3.15 Reflexion
传统强化学习通过梯度更新;Reflexion 通过自然语言反思让 Agent 学习------把"教训"写成文字存到记忆里,下次尝试时作为上下文参考。
用"语言"代替"梯度",用"反思"代替"训练"。
3.16 多模态思维链 (Multimodal CoT)
把推理拆成两阶段,先"看懂图+题",再"基于理解推理":
- 阶段 1 --- Rationale Generation:输入图像 + 问题,输出自然语言推理过程(融合图文信息)。
- 阶段 2 --- Answer Inference:输入图像 + 问题 + 阶段 1 的 rationale,输出最终答案。
两阶段都能看到图像,但第二阶段多了第一阶段的"思考过程"作为辅助。
3.17 基于图的提示 (Graph Prompting)
把"线性思考"升级成"网状思考"------让 LLM 既能把想法互相连接、合并、回环,又能调用结构化的外部知识。
图谱方式适合需要综合多路信息或依赖精确关系的复杂问题。
四、我的总结与落地思考(架构师视角)
- Prompt 工程的本质是"接口设计":把模糊的意图翻译成机器可解析的指令,越清晰越好。
- 分而治之依然有效:Prompt Chaining、ReAct、RAG 等本质上都是工程拆解思想在 LLM 领域的延伸。
- 选型指引(按任务复杂度递增) :
- 简单问答 → Zero-Shot / Few-Shot
- 推理任务 → CoT / Self-Consistency
- 数值/符号计算 → PAL
- 需要外部知识 → RAG
- 需要调用工具 → ReAct / ART
- 需要学习改进 → Reflexion
- 复杂任务编排 → Prompt Chaining / ToT
- 持续迭代:Prompt 不是一次写好,而是像调参一样反复优化。
- 把 LLM 当超级实习生:给清楚目标、喂对数据、验收结果------这套方法论和带团队没太大区别。
学习的终点不是记住所有技术名词,而是在遇到实际问题时能挑对工具。