课程开篇 · 动手之前,先把方向看清

先懂上下文,再学具体技巧

Prompt、检索、微调和工具调用,都会改变模型看到的东西。先理解这个共同机制,才能判断问题是缺上下文、指令不清,还是能力本身有边界。

本页解决的问题

先给结论

「先懂上下文,再学具体技巧」要解决的关键问题是什么?

Prompt、检索、微调和工具调用,都会改变模型看到的东西。先理解这个共同机制,才能判断问题是缺上下文、指令不清,还是能力本身有边界。

判断标准

大多数 AI 技巧,本质都是上下文设计。 先检查消息列表:给了什么、漏了什么、重复了什么,以及哪些内容被要求模型自己猜。

下一步

把一个 AI 功能的输入上下文画成五个有名字的模块。

常见误区

不断改 Prompt,却没发现真正的问题在检索、状态或权限。

AI 所有工程化操作,本质上都是对上下文的高效处理

不管是 Prompt Engineering、RAG、Fine-tuning,还是 Agent 工具调用,所有的花活,基本上都围绕着这个 message list 处理。理解它,你才能真正判断方案好不好、问题出在哪里。

所有工程化操作,本质都在做这件事

Prompt Engineering

精心构造 messages,让模型看到正确的上下文:系统指令、角色定义、少样本示例,全部是往 message list 里塞内容。

RAG 检索增强生成

从外部知识库取回相关文档片段,拼进 message list 再发给模型,本质是在运行时扩充上下文。

Agent 工具调用

模型输出 function call → 执行工具 → 把结果 append 回 message list → 再次推理。每一轮都是在积累上下文。

Fine-tuning / SFT

把大量理想的 message list 烧进模型权重,让模型默认就能按期望方式处理上下文,省去每次都要在 prompt 里说明的成本。

不理解底层,会卡在这些问题上

「Prompt 改了没用」

System Prompt 被截断、历史对话占满窗口,问题根本出在上下文管理,跟 Prompt 写得好不好没有关系。

「RAG 效果差,不知道哪环节坏了」

Chunking 粒度、Embedding 模型、相似度阈值,不了解原理就不知道该查哪里,只能瞎试。

「模型答错了,该改 Prompt 还是 Fine-tune?」

是上下文没给对,还是参数里压根没这个知识?两件事的修复方式完全不同,搞错方向浪费大量时间。

我会花比较大的篇幅讲解这部分,不推荐跳过
理解了 message list 的处理逻辑,后面所有工程化方案你都能一眼看穿它在做什么,为什么有效,局限在哪。

「AI 所有工程化操作,本质上都是对上下文的高效处理」为什么能找到相关内容

「不管是 Prompt Engineering、RAG、Fine-tuning,还是 Agent 工具调用, 所有的花活,基本上都围绕着这个 message list 处理 。理解它,你才能真正判断方案好不好、问题出在哪里」把检索问题从“把资料存起来”推进到“怎样找到真正相关的资料”。这一步决定了 RAG、推荐和以图搜图最后交给模型的输入质量。

相似度不是答案,召回之后还要核对

在「精心构造 messages ,让模型看到正确的上下文:系统指令、角色定义、少样本示例,全部是往 message list 里塞内容」对应的流程里,Embedding 负责把对象放到可比较的语义空间,近邻索引负责减少搜索范围,最终的回答仍然依赖召回片段是否覆盖问题、距离指标是否合适,以及内容有没有过期。

先区分找得到和找得准

把「我会花 比较大的篇幅 讲解这部分, 不推荐跳过 。」落成一次小测试:准备几条有明确答案的查询,记录召回的相关性、遗漏和无关结果,再决定是否需要换切分方式、索引或重排。

从这个例子继续往下看

这篇内容先从「不管是 Prompt Engineering、RAG、Fine-tuning,还是 Agent 工具调用, 所有的花活,基本上都围绕着这个 message list 处理 。理解它,你才能真正判断方案好不好、问题出在哪里」展开,再把问题推进到「精心构造 messages ,让模型看到正确的上下文:系统指令、角色定义、少样本示例,全部是往 message list 里塞内容」。把这两个片段放在一起看,可以更清楚地分辨:哪些是文章给出的事实,哪些是需要结合条件才能成立的判断。

把这条判断带到下一个场景

检索系统也可以这样看:先确定什么算相关,再观察召回是否覆盖问题,最后检查排序、切分和时效性有没有把真正有用的内容挤出去。

  • 「AI 所有工程化操作,本质上都是对上下文的高效处理」:不管是 Prompt Engineering、RAG、Fine-tuning,还是 Agent 工具调用, 所有的花活,基本上都围绕着这个 message list 处理 。理解它,你才能真正判断方案好不好、问题出在哪里
  • 「继续往下看」:精心构造 messages ,让模型看到正确的上下文:系统指令、角色定义、少样本示例,全部是往 message list 里塞内容
  • 「最后的要点」:是上下文没给对,还是参数里压根没这个知识? 两件事的修复方式完全不同 ,搞错方向浪费大量时间

最后的「最后的要点」把讨论落到「是上下文没给对,还是参数里压根没这个知识? 两件事的修复方式完全不同 ,搞错方向浪费大量时间」。回看这条线索时,最值得保留的是:当输入、规模或风险改变,哪些判断需要重新做一遍。

标记为已学完 阅读进度会自动记录
← 上一篇下一篇 →

继续阅读

同一条线上的下一篇。

文章讨论

读到这里,留下一个判断。

把刚想明白的地方、还没想通的问题,留给下一位一起学习的人。

正在讨论 先懂上下文,再学具体技巧 动手之前,先把方向看清
3条讨论文章讨论 · 与共学社区同步
在共学社区查看
AM
Asha Morgan内容编辑
观点实践记录

我把这篇文章里的一个判断改写成了今天可以验证的小实验。比记住结论更有用的是,知道下一步要观察什么。

文章讨论7 有帮助
LH
Lin Harper独立开发者
观点观点

读完以后我先回头找它成立的条件,而不是直接把方法搬进项目。这个顺序让后面的取舍清楚很多。

文章讨论5 有帮助
KM
Kiki Moore产品运营
问题问题

如果把这个判断放到真实工作里,最先需要补的约束是什么?我想知道从阅读到第一次实践之间,哪一步最值得先做。

文章讨论4 有帮助