提示词工程学习笔记

一、提示词工程指南

1.1 它到底解决什么问题?

  1. 落地能力:帮助我们把 LLM 应用到各种业务场景和研究领域。
  2. 认知能力:看清 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 提示词四要素

  1. 指令:想要模型执行的特定任务。
  2. 上下文:外部信息或额外背景,引导模型更好地响应。
  3. 输入数据:用户输入的具体内容或问题。
  4. 输出指示:指定输出的类型或格式。

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 通过生成程序代码来解决问题,而非直接用自然语言推理。

核心思想

  1. LLM 负责:理解问题 + 生成代码(通常是 Python)
  2. 代码解释器负责:执行计算,得到最终答案

分工明确:模型做它擅长的(语言理解、问题分解),解释器做它擅长的(精确计算)。

解决了 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 既能把想法互相连接、合并、回环,又能调用结构化的外部知识。

图谱方式适合需要综合多路信息或依赖精确关系的复杂问题。


四、我的总结与落地思考(架构师视角)

  1. Prompt 工程的本质是"接口设计":把模糊的意图翻译成机器可解析的指令,越清晰越好。
  2. 分而治之依然有效:Prompt Chaining、ReAct、RAG 等本质上都是工程拆解思想在 LLM 领域的延伸。
  3. 选型指引(按任务复杂度递增)
    • 简单问答 → Zero-Shot / Few-Shot
    • 推理任务 → CoT / Self-Consistency
    • 数值/符号计算 → PAL
    • 需要外部知识 → RAG
    • 需要调用工具 → ReAct / ART
    • 需要学习改进 → Reflexion
    • 复杂任务编排 → Prompt Chaining / ToT
  4. 持续迭代:Prompt 不是一次写好,而是像调参一样反复优化。
  5. 把 LLM 当超级实习生:给清楚目标、喂对数据、验收结果------这套方法论和带团队没太大区别。

学习的终点不是记住所有技术名词,而是在遇到实际问题时能挑对工具

相关推荐
Flandern11112 小时前
# 学习AI Agent中了解到的几个概念
人工智能·学习
二哈赛车手2 小时前
新人笔记---多策略搭建策略执行链实现RAG检索后过滤
java·笔记·spring·设计模式·ai·策略模式
计算机安禾2 小时前
【Linux从入门到精通】第50篇:专栏总结与Linux学习之路的未来展望
linux·运维·学习
nashane2 小时前
HarmonyOS 6学习:应用推广引擎评论管理与长截图自动拼接实战
学习·华为·harmonyos·harmonyos 5
科技林总2 小时前
【系统分析师】14.2 编码与程序设计语言
学习
Brilliantwxx2 小时前
【C++】String的模拟实现(代码实现与坑点讲解)
开发语言·c++·笔记·算法
babe小鑫2 小时前
数据岗位的发展与学习数据分析指南
学习·数据挖掘·数据分析
楼田莉子2 小时前
仿Muduo的高并发服务器:Channel模块与Poller模块
linux·服务器·c++·学习·设计模式
知识分享小能手2 小时前
R语言入门学习教程,从入门到精通,R语言网络关系数据可视化(8)
学习·信息可视化·r语言