上下文填充 RAG 模式
解决什么问题
想让 LLM 基于它没被训练过的私有语料(付费 newsletter 存档、内部文档)准确答题,而不是自信地编造。这是 2023 年初对后来被称为 RAG 的模式最早的大众化教程之一。
核心内容
类比:开卷考试的 index card——物理老师允许带一张写满公式的卡片进考场,考的不再是记忆而是推理。同样,在 prompt 里塞入含答案的原文片段("notecard"),模型通常就能答对;用的是它的推理能力,不是它的记忆。
约束:prompt 空间有限(当时 GPT-3 约 4,000 tokens,1 token ≈ 3/4 个词),塞不下整个 archive,必须挑选放什么。
三步流水线(当时用 GPT Index / 后来的 LlamaIndex 实现,几行代码):
- 建索引:把全部文档切成小的连续 chunks,为每块计算 embedding——文本的压缩数学表示;类比经纬度判断两城市距离,embedding 距离近 = 语义相近——存成可搜索格式(成本参考:当时 $0.0004/1K tokens)
- 检索:用户提问时,找出与问题 embedding 最近的若干 chunks
- 合成:把相关 chunks 与问题拼成 prompt 发给模型,输出答案
效果验证:未加上下文时模型自信答错(说 Substack 首个 publisher 是 Andrew Sullivan,实为 Bill Bishop;说"解决自己的问题绝对是消费创业最佳起点",而 Lenny 数据是不到三分之一);把含答案的原文段落连同周边文本一起塞入后,模型按原文正确回答。
适用边界
- 具体工具与 4k token 上限是 2023 年快照,早已过时;但"检索相关片段塞进 prompt"的模式(即 RAG)至今是让模型使用私有/最新知识的标准做法
- 对语料覆盖不到的问题依然可能幻觉;检索质量决定答案上限
关键引述 · 原话
"If, in your prompt, you include the equivalent of a notecard with context to help it answer the question, it will often get it right." — Dan Shipper
关联卡片
- 即后来标准化命名的 RAG(an-ai-glossary.md 中 Lenny 用同一"开卷考试"类比定义 RAG) - 诊断部分见 `chatbot-two-failure-roots--dan-shipper` - 与 `context-over-prompts--tal-raviv` 同一底层原理(给模型工作所需上下文),一个面向产品构建、一个面向个人工作流
被这些卡引用
提炼自 Lenny Rachitsky 的 Lenny’s Newsletter & Podcast(2019–2026)。本站为个人学习用途的二次创作,与 Lenny’s Newsletter 无官方关联。
provenance · 已核验 · glm-5.2