跳到主要内容

01 大纲 — prompt-engineering-generative-ai(13 章)

切分依据:按新词密度,不按字数。原书 10 章 → 我们 13 章。原书 Ch3(标准做法)过大,拆 3 章;原书 Ch4(LangChain)合成 1 章;原书 Ch7(扩散导论)独立;评测贯穿原书多处,收拢成一章(06)。 差异化:姊妹书 prompt-engineering-for-llms 是 Copilot 工程师写的 LLM 专精(补全引擎/RLHF 内部/评估方法论);本书是文本+图像双模态、五原则骨架、LangChain/FAISS/智能体/扩散模型全覆盖。写时凡是「机制原理」层的(token、嵌入、RLHF)只讲够用的深度,把力气花在五原则、工程链路和图像三强上——那才是这本书独有的。

01-five-principles.md(原 Ch1)

主走查:产品名生成器,朴素提示 → 五原则各修一处 → 最终提示。

  • §1 这一章讲什么 — 以为:提示就是随便问 → 知道:提示工程是「发现能稳定产出可用结果的提示」的过程
  • §2 朴素提示的五个毛病 — 以为:随便问答案已经不错 → 知道:上线时它在方向/格式/例子/评测/分工五个维度全裸奔
  • §3 给方向 — 以为:把任务说清楚就行 → 知道:风格要指名(角色扮演/prewarming/外部规则),方向冲突要取舍
  • §4 定格式 — 以为:输出是给人看的 → 知道:输出是给程序解析的,格式要钉死
  • §5 给例子 — 以为:模型够聪明不用例子 → 知道:zero/one/few-shot 阶梯,例子即方向盘也有代价
  • §6 评质量 — 以为:看看就完了 → 知道:盲提示不是评测,先有反馈环再谈优化(细节留到 06)
  • §7 分工 — 以为:一个提示干一件事 → 知道:链式调用+元提示,模型写完再评更靠谱(机制:生成时不知道全局,评的时候有全文)
  • §8 图像侧同样成立 — 以为:五原则是文本的事 → 知道:底图/风格词/排列组合提示一一对应

02-text-models-foundations.md(原 Ch2 前半)

主走查:「The cat sat on the mat」从切词到吐下一个词。

  • §1 讲什么 — 以为:模型是黑箱 → 知道:四道工序的黑箱,每道都能指出来
  • §2 token 与 BPE — 以为:按词处理 → 知道:按 token,100 token≈75 词,BPE 怎么把 apple 拼成 appl
  • §3 嵌入 — 以为:词是符号 → 知道:词是一串数,意思相近距离近
  • §4 Transformer 与注意力 — 以为:按顺序读 → 知道:每个词同时看所有词(投票),编码器/解码器之分
  • §5 概率生成 — 以为:写文章 → 知道:argmax/采样反复挑下一个
  • §6 预训练与微调 — 以为:一次训出来 → 知道:先博览再上岗
  • §7 规模账单 — 以为:就是写代码 → 知道:1.7 万亿参数/$63M/650 公里书架/GPU 军备

03-model-landscape.md(原 Ch2 后半)

主走查:同一个产品名提示在 GPT-4/Claude 3/Llama 3 上的三份输出。

  • §1 讲什么 — 以为:ChatGPT 就是全部 → 知道:四个阵营四条路线
  • §2 GPT 系列与 RLHF — 以为:ChatGPT 是训出来的 → 知道:演示→监督微调→奖励模型+PPO 三步,它是「收集反馈」的产品
  • §3 竞争对手 — 以为:OpenAI 独大 → 知道:Gemini/Claude/Llama/Mistral 各自的差异化(上下文、Constitutional AI、开源、效率)
  • §4 开源的意义 — 以为:开源=免费 → 知道:量化+LoRA 让消费级硬件能微调,数据不出组织
  • §5 选型实测 — 以为:分数高就好 → 知道:同一提示只有 GPT-4 格式全对,指令遵循才是提示工程的第一指标
  • §6 上下文军备赛 — 以为:窗口越大越好 → 知道:8k→128k→1M 的代价与边界(哈利波特 18.5 万 token)

04-structured-output.md(原 Ch3 上)

主走查:迪士尼角色清单,从自由文本 → 规整列表 → JSON → 可校验 YAML。

  • §1 讲什么 — 以为:让模型给列表很简单 → 知道:自由文本有四种解析陷阱
  • §2 列表与层级列表 — 以为:格式提示一句就够 → 知道:数量不受控(要 10 给 8),代码必须兜底
  • §3 正则的尽头 — 以为:正则能解析 → 知道:嵌套结构正则写不动,换 JSON
  • §4 JSON — 以为:说「返回 JSON」就行 → 知道:三条军规(只回合法 JSON/禁反引号/会被 json.loads 解析)
  • §5 YAML 与校验 — 以为:解析成功就完事 → 知道:YAML 更适合提示,且模型可当控制流,配六类自定义异常
  • §6 万能翻译与风格解绑 — 以为:翻译就是换语言 → 知道:LLM 是任意格式间的转换器(ELI5/风格指南/实体/摘要)
  • §7 先要上下文 — 以为:直接答 → 知道:让它先问你要决策依据(MongoDB vs PostgreSQL)

05-chunking-tokens.md(原 Ch3 中)

主走查:一篇 497 页营销书 → 切块 → 塞进 8192 token 窗口。

  • §1 讲什么 — 以为:文本直接喂 → 知道:窗口是预算,要算着花
  • §2 token 化实操 — 以为:按字符估 → 知道:tiktoken 三种编码,聊天消息每条 +3 token
  • §3 分块的好处与时机 — 以为:总该切 → 知道:何时切何时不切
  • §4 坏切法与六种策略 — 以为:按长度切就行 → 知道:断词断句毁语义,六种策略各有适用
  • §5 滑动窗口 — 以为:切块互不重叠 → 知道:重叠保上下文,步长是开关
  • §6 递归切分 — 以为:选一种切法 → 知道:递归 splitter 先保段再保句再保词

06-prompt-tactics.md(原 Ch3 下)

主走查:辅导应用答 52 张牌概率题:直接答 → thinking time → inner monologue → 只给提示。

  • §1 讲什么 — 以为:原则之外没东西了 → 知道:OpenAI 推荐的一组战术各治一种病
  • §2 引用文本防幻觉 — 以为:它知道就答 → 知道:只许用给定文本,答不出就说找不到
  • §3 思考时间 — 以为:直接评判 → 知道:先自己解再评判
  • §4 内心独白 — 以为:推理要展示 → 知道:三引号藏推理,只露提示
  • §5 least-to-most 与角色 — 以为:一次问到底 → 知道:从简到繁链式细化;角色收窄输出
  • §6 自评循环 — 以为:一稿定终 → 知道:让它改进自己的输出,直到无改进
  • §7 元提示 — 以为:提示人写 → 知道:让模型写提示(图像提示/风格指南)

07-evaluation.md(评测:原 Ch1§4 + Ch3 自评/分类 + Ch4 evals + Ch10 风格实验)

主走查:风格改写提示优化:A/B/C/D 四种提示 × 嵌入距离 → 选出胜者。

  • §1 讲什么 — 以为:读着好就是好 → 知道:没有反馈环的提示优化是盲飞
  • §2 最小反馈环:拇指评分 — 以为:要专业评测框架 → 知道:打乱盲评 5 次就能看出 A 0.2 / B 0.6
  • §3 程序化评测 — 以为:必须人看 → 知道:能量长度就别调模型;评测动机清单(成本/延迟/幻觉/注入…)
  • §4 分类与多数表决 — 以为:一次分类 → 知道:三次取多数降方差
  • §5 LLM 当裁判 — 以为:人评最准 → 知道:便宜一个数量级,但裁判本身要被评测(假阳性/假阴性)
  • §6 两两比较与 evals 工具 — 以为:打分绝对 → 知道:pairwise 带理由,Elo/竞技场
  • §7 图像侧评测 — 以为:图像没法测 → 知道:排列组合提示+网格

08-langchain.md(原 Ch4 全)

主走查:电影公司故事管线:角色 → 情节 → 场景 → 摘要(串起模板/LCEL/解析器/选择器/文档链)。

  • §1 讲什么 — 以为:直接调 API 就够 → 知道:何时需要框架(上下文长度/组合/推理)
  • §2 消息与流式 — 以为:一问一答 → 知道:三种消息、stream/batch/async
  • §3 模板与 LCEL — 以为:f-string 就行 → 知道:| 管道把提示/模型/解析器串成链
  • §4 输出解析器 — 以为:自己写正则 → 知道:Pydantic parser 注入格式说明并校验
  • §5 函数调用 — 以为:模型只会说话 → 知道:schema 声明函数,模型挑函数给参数(并行调用)
  • §6 few-shot 模板与选择器 — 以为:例子固定塞 → 知道:按长度动态增减
  • §7 数据管道与文本切分 — 以为:数据就在那 → 知道:loaders→transformers→嵌入→向量库→retrievers
  • §8 任务分解与文档链 — 以为:一条链到底 → 知道:Stuff/Refine/MapReduce/MapRe-rank 四种文档链

09-vector-databases-rag.md(原 Ch5)

主走查:员工手册问答:「我们有免费独角兽骑吗?」从切块到 FAISS 命中到 RAG 回答。

  • §1 讲什么 — 以为:数据库按关键词查 → 知道:按「意思的距离」查
  • §2 向量与 k 近邻 — 以为:词是词 → 知道:坐标;mouse 的邻居是 mickey/cheese/trap
  • §3 嵌入从哪来 — 以为:随便生成 → 知道:ada-002 1536 维,$1.60 嵌入整部圣经;模型决定一切
  • §4 稠密/稀疏与 TF-IDF — 以为:只有神经网络嵌入 → 知道:小语料 TF-IDF 更稳
  • §5 嵌什么:分块权衡 — 以为:整本嵌 → 知道:大了回归均值,小了断义
  • §6 FAISS 本地检索 — 以为:检索要服务 → 知道:IndexFlatL2 暴力比对,存盘复用
  • §7 Pinecone 托管与元数据 — 以为:托管=省心 → 知道:省心换成本/锁定/隐私;元数据过滤
  • §8 RAG 与自查询 — 以为:检索是搜索 → 知道:RAG 四步;LLM 自己写过滤器

10-agents.md(原 Ch6)

主走查:「查 James Phoenix 年龄然后平方」→ 观察/思考/行动循环 → 31²=961。

  • §1 讲什么 — 以为:agent 是魔法 → 知道:输入/目标/动作三件套+循环
  • §2 思维链 — 以为:直接给答案 → 知道:step-by-step 逼出分步
  • §3 ReAct — 以为:想完再做 → 知道:观察→思考→行动交替,不许猜工具结果
  • §4 手写 ReAct 实现 — 以为:框架黑箱 → 知道:正则取 action+stop 序列就是全部
  • §5 工具与函数调用对照 — 以为:工具越多越好 → 知道:太多会困惑;函数调用 vs ReAct 选型表
  • §6 记忆 — 以为:模型记得 → 知道:记忆是外挂;Buffer/Window/Summary/SummaryBuffer/TokenBuffer 五种
  • §7 规划与思维树 — 以为:想一条道 → 知道:plan-execute 分工;ToT 24 点 4%→74%
  • §8 回调与算钱 — 以为:跑就行 → 知道:callbacks 观测,token 账单要逐次记

11-diffusion-models.md(原 Ch7)

主走查:「勃兰登堡门上的柯基」同一提示三家出图。

  • §1 讲什么 — 以为:图像 AI 是黑箱 → 知道:加噪-去噪,条件是你的描述
  • §2 扩散原理 — 以为:从数据库拼 → 知道:几 GB 装不下训练集;35 万张只复现 109 张
  • §3 潜空间 — 以为:提示是命令 → 知道:提示是地图上的地址,插值中间皆连贯;提示工程=导航
  • §4 三家路线 — 以为:都差不多 → 知道:DALL-E 封闭/MJ 社区订阅/SD 开源三种商业模式
  • §5 简史与争议 — 以为:一路向好 → 知道: waitlist/偏见纠偏笨拙/NSFW 过滤反噬/版权灰区
  • §6 选型 — 以为:选最强 → 知道:DALL-E 构图/MJ 美学/SD 灵活;视频在延伸

12-image-prompting.md(原 Ch8)

主走查:时代广场×达利:直呼其名 → meme 解绑 → 重混出新风格。

  • §1 讲什么 — 以为:图像提示堆词 → 知道:每个词都在扰动模型
  • §2 格式修饰符 — 以为:风格是装饰 → 知道:格式会改内容(油画里没有电脑)
  • §3 艺术家与潜空间捷径 — 以为:报名字是作弊 → 知道:是导航;在世艺术家灰区
  • §4 质量词与负提示 — 以为:模型追求好图 → 知道:它只是模仿训练集;--no 拆开纠缠概念
  • §5 加权 — 以为:词平等 → 知道:::配重,网格搜索找配比
  • §6 图像当提示与局部重绘 — 以为:文字是唯一输入 → 知道:底图/inpainting/outpainting/一致角色
  • §7 提示改写与解绑 — 以为:用户会写提示 → 知道:让模型改写;解绑风格成可重混的部件
  • §8 提示分析 — 以为:长=好 → 知道:/shorten 暴露词权重,删比加有效

13-stable-diffusion.md(原 Ch9)

主走查:把一张城堡照片变成奇幻插画:img2img → ControlNet 各预处理器 → 出图。

  • §1 讲什么 — 以为:提示就是全部 → 知道:开源模型的旋钮在提示之外
  • §2 跑起来 — 以为:要服务器 → 知道:本地/Colab/AUTOMATIC1111;safetensors 更安全
  • §3 三个核心旋钮 — 以为:默认就行 → 知道:seed 可复现/步数/CFG(1 无视 ↔ 30 严守)
  • §4 权重语法与提示编辑 — 以为:提示是静态的 → 知道:(word:1.5) 与 [from:to:when] 中途换提示
  • §5 img2img 与放大 — 以为:一次成图 → 知道:denoising strength 是从原图出发多远;分块放大
  • §6 ControlNet — 以为:构图不可控 → 知道:边缘/深度/法线/姿态/线稿/分割六种条件
  • §7 SAM — 以为:蒙版手画 → 知道:点一下出掩码
  • §8 DreamBooth — 以为:训练要 $60 万 → 知道:5-30 张图 45 分钟;LoRA/Textual Inversion 对照

14-end-to-end.md(原 Ch10)

主走查:博客系统端到端:主题 → 调研 → 访谈 → 大纲 → 成文 → 风格 → 标题 → 配图 → UI。

  • §1 讲什么 — 以为:一个提示一篇文 → 知道:朴素提示五原则体检全挂
  • §2 调研与访谈 — 以为:模型自带知识 → 知道:搜索摘要+向用户要信息增量
  • §3 大纲与分节写作 — 以为:一口气写 → 知道:每节检索上下文+只存 AI 消息的记忆
  • §4 风格改写 — 以为:最轻松的一步 → 知道:最难,唯一必须 GPT-4 的环节
  • §5 配图与 UI — 以为:最后再管 → 知道:元提示生成图像提示;Gradio 先收反馈
  • §6 全书的落点 — 以为:学的是技巧 → 知道:学的是把五原则落到一条可观测的流水线

自查(任意两行「出去时知道」是否重复):

  • 02§3 嵌入 vs 09§2 向量:02 讲「词怎么变成数」(机制),09 讲「数怎么被拿来查」(k 近邻检索)。不同,保留。
  • 04§4 JSON vs 08§4 解析器:04 讲「让模型只回 JSON 的军规与校验」,08 讲「LangChain 把这步自动化」。不同,保留。
  • 05 分块 vs 09§5 嵌什么:05 讲切法本身,09§5 讲切块大小对向量的影响。不同,保留。
  • 06§3 思考时间 vs 10§2 思维链:06 是战术(单提示内先解后评),10 是 agent 的推理循环起点。不同,保留。
  • 07 评测 vs 01§6:01 只立概念(盲提示不算评测),07 展开全部方法。不重复。
  • 12§7 提示改写/解绑 vs 06§7 元提示:06 是文本侧通用战术,12 是图像侧应用(改写用户提示+解绑风格)。不同,保留。
  • 13§4 提示编辑 vs 12§5 加权:不同(一个是中途换提示,一个是静态配重)。保留。