操盘手年鉴The Operators’ Almanac
AI · PB · 204

上下文填充 RAG 模式

Context Stuffing RAG Pattern · context-stuffing-rag-pattern--dan-shipper
AI 与新工作方式 操作手册 过渡期 2023-02 Dan Shipper ✓ 已核验出处
所属簇 模型技术素养

解决什么问题

想让 LLM 基于它没被训练过的私有语料(付费 newsletter 存档、内部文档)准确答题,而不是自信地编造。这是 2023 年初对后来被称为 RAG 的模式最早的大众化教程之一。

核心内容

类比:开卷考试的 index card——物理老师允许带一张写满公式的卡片进考场,考的不再是记忆而是推理。同样,在 prompt 里塞入含答案的原文片段("notecard"),模型通常就能答对;用的是它的推理能力,不是它的记忆。

约束:prompt 空间有限(当时 GPT-3 约 4,000 tokens,1 token ≈ 3/4 个词),塞不下整个 archive,必须挑选放什么。

三步流水线(当时用 GPT Index / 后来的 LlamaIndex 实现,几行代码):

  1. 建索引:把全部文档切成小的连续 chunks,为每块计算 embedding——文本的压缩数学表示;类比经纬度判断两城市距离,embedding 距离近 = 语义相近——存成可搜索格式(成本参考:当时 $0.0004/1K tokens)
  2. 检索:用户提问时,找出与问题 embedding 最近的若干 chunks
  3. 合成:把相关 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` 同一底层原理(给模型工作所需上下文),一个面向产品构建、一个面向个人工作流

被这些卡引用

出处Dan Shipper (Every 联合创始人/CEO) · 02-newsletters/i-built-a-lenny-chatbot-using-gpt-3-heres-how-to-build-your-own.md
提炼自 Lenny Rachitsky 的 Lenny’s Newsletter & Podcast(2019–2026)。本站为个人学习用途的二次创作,与 Lenny’s Newsletter 无官方关联。
provenance · 已核验 · glm-5.2