知识点图谱
105 个知识点,按 8 个知识域分组;域内按前置关系排序,前面的先学。 每个知识点页聚合了教程里讲它的段落、考它的面试题,以及它的前置与后继。
LLM 与 Prompt 基础15 个知识点
Token、采样、消息角色、上下文工程 —— 所有上层概念的地基。
- 入门Token 与上下文窗口
Token 是模型词表里的最小处理单位,数量是「文本 × 分词器」的函数而不是文本的属性;上下文窗口是一次推理里输入与输出共享的 token 预算。显存、计费、注意力有效性三层成本都叠在这一个维度上,所以它是大模型应用的第一约束。
- 入门消息角色与对话结构
一次请求在服务端被拼成固定顺序的 token 序列:tools → system → messages。system 是稳定前缀、优先级最高、缓存友好;API 本身无状态,多轮对话靠客户端把历史重新发一遍。角色是分工不是权限边界 —— 敏感规则放 system 挡不住注入。
前置:Token 与上下文窗口
- 入门自回归生成与 KV Cache
模型一次只生成一个 token,再把它拼回输入继续算;一次请求分成 prefill 与 decode 两个阶段,瓶颈完全不同。KV Cache 缓存的是已算过的注意力键值,省的是重复计算而不是首次计算 —— 它的显存占用随序列长度与并发线性增长,是长上下文成本的真正来源。
前置:Token 与上下文窗口
- 入门Embedding 与语义空间
Embedding 把一段文本压成定长实数向量;「相近的两句话向量就近」不是因为模型理解了语义,而是对比学习把训练目标定义成了这样。所以「相似」不等于「相关」:一句话和它的否定形式可能很近,对称相似与非对称检索是两种任务,换 embedding 模型意味着全量重建。
前置:Token 与上下文窗口
- 入门Few-shot 与上下文学习
few-shot 不更新参数,只把任务分布锚定到示例附近,效应是双向的:收敛(格式统一、边界清晰)与收窄(多样性与泛化被压掉)。能用结构化输出表达的格式就不该再堆示例;提示词改动要做消融验证,否则分不清是示例起效还是运气。
前置:消息角色与对话结构
- 进阶上下文工程
上下文工程是为每一次推理策展并维护一组最优 token,覆盖提示词之外所有会落进窗口的东西。把窗口当注意力预算来花:固定开销尽量薄、用渐进披露把冷门内容挪出去,写入 / 选择 / 压缩 / 隔离四种操作是它的基本工具箱;提示词工程只是它的一个子集。
- 进阶
- 入门采样参数:temperature 与 top_p
采样是从每步的概率分布里挑一个 token 的规则:temperature 改分布的陡峭程度,top_p 截断候选集,一般只调一个。temperature=0 也不保证复现,因为采样上游还有浮点、批处理等不确定源;新一代模型正把这层旋钮收回去,稳定性要靠约束解码与校验而不是调参。
- 入门幻觉与事实性
幻觉是自回归机制在信息缺失时的默认输出:模型像语料那样接下去,而不是「说真话」。应用层能做的是给证据(检索、引用溯源)、给出口(拒答)、给验收指标,做不到的是从机制上根除。
- 进阶Prompt 缓存
Prompt 缓存复用的是相同前缀的 KV 计算,所以它只认「从头开始逐字相同」:稳定内容放前面、易变内容放后面、缓存断点打在前缀末尾,TTL 内命中才省钱。任何改写前缀的动作(压缩、动态工具集、时间戳)都会击穿缓存,缓存友好是 prompt 设计的一条硬约束。
- 进阶Context rot 与长上下文衰减
注意力权重在全序列上归一化,序列越长单个位置分到的权重越被稀释,再叠加位置偏置与干扰项,模型就「越长越笨」。失败形态不只是记不住,还有指令漂移、早期约束失效、在噪声里选错证据;判断系统开始腐烂要靠可观测信号,不是等用户投诉。
前置:上下文工程
- 进阶结构化输出与约束解码
约束解码把 JSON Schema 编译成语法,在采样时屏蔽不合法 token,保证的是语法而不是语义。语法表达不了的约束(数值范围、跨字段一致性、业务规则)必须靠校验层;四条路线(提示词要求 / 预填 / 函数调用 / 原生结构化输出)保证的东西不同,选型看端点支持与失败代价。
- 进阶推理模型与思考档位
推理模型在作答前先生成一段内部推理;「推理模型 vs 普通模型」的二分已合流成一个 effort 旋钮。思考 token 计入输出、受 max_tokens 约束,effort 影响的是整个响应的 token 花费而不只是「想多久」,所以档位选择本质上是成本、延迟与质量的三方权衡,按任务路由而不是一刀切。
- 深水上下文压缩 compaction
压缩是把接近窗口上限的历史摘要成一段高保真摘要,然后从摘要继续跑。必须保真的是当前目标、已做出的决定、未完成的待办与关键约束;工具结果清理、压缩、缓存三者互相牵制 —— 改写前缀会击穿缓存,少次大压比频繁小压更省也更稳。
- 进阶CoT 思维链
CoT 让模型先写中间步骤再给答案,本质是把计算摊到更多 token 上。推理模型时代手写「请一步步思考」的收益大幅缩水 —— 思考已经内置且可按 effort 调档;仍值得手写的是任务特定的推理结构,而 self-consistency 之类的多采样投票要拿成本换稳定。
RAG 工程化23 个知识点
从文档解析到架构选型,检索增强生成链路上每一个可以单独拧的环节。
- 入门向量数据库与选型
向量库特殊在「近似最近邻 + 元数据过滤 + 持续写入」三件事要一起做好。Milvus / Qdrant / pgvector / Chroma / Elasticsearch 的差别不在能不能跑起来,而在这条路能走多远:数据量级、过滤复杂度、运维能力与已有技术栈决定选型。
- 入门RAG 链路总览
RAG 是「索引 → 检索 → 生成」三段链路:离线把文档解析、切分、向量化进库;在线把 query 变成检索、拿回证据、交给模型带证据作答。每一步都在解决一个具体问题,链路上任何一环出错都会表现成「答非所问」,所以先能把全链路讲清,后面的每个环节才有落点。
- 进阶BM25 与向量检索的互补
向量检索找的是「意思像」,专有名词、型号、错误码这类要一字不差的 query 天生适合 BM25。纯向量会漏召回,纯 BM25 不懂同义与口语 —— 两路各有擅长的 query 形态,这是混合检索存在的理由。
- 进阶Embedding 选型与 MTEB
选 embedding 模型看四个维度:检索精度看 MTEB 的检索子榜而不是综合分、向量维度不是越大越好、运营适配(多语言 / 许可证 / 托管与自托管)是 2026 年真正的分水岭、稀疏还是稠密还是混合。换模型意味着全量重建索引,所以这是一次性决策。
- 进阶
- 深水HNSW 与近似最近邻
向量检索的默认索引。分层图 + 贪心下沉把 O(N) 降到近似 O(log N),代价是召回不再是 100%,而且图结构常驻内存。M、ef_construction 定索引质量,ef_search 是唯一能在线拧的旋钮 —— 拿延迟换召回。
- 入门文档解析:脏文档与多模态
RAG 的上游是把文档解析干净:表格要保住结构、代码要保住块、扫描件要 OCR、图表与版面要靠 VLM 或 ColPali 这类视觉检索。解析质量决定后面所有环节的上限 —— 多数「检索不准」的根因在这一步。
前置:RAG 链路总览
- 进阶检索侧评测:召回率与评测集
有标注时检索侧最可靠:recall@k、MRR、NDCG 直接量化「该召回的召回了没有」。评测集从真实 query 日志、badcase 与人工构造三处来,按场景分桶;凑不齐一千条也要先跑起来,「知识库里没有答案」这一桶必须单独留。
前置:RAG 链路总览
- 进阶
- 进阶
- 进阶查询改写、扩展与 HyDE
用户 query 口语、含糊、带多轮指代,直接拿去检索就是问错话。查询改写解决指代与口语化,查询扩展解决表述鸿沟,HyDE 先让模型写一段假想答案再拿它去检索 —— 最反直觉也最常被追问。每一招都多一次模型调用,要算成本。
- 进阶混合检索与 RRF
BM25 分数与向量相似度不在一个量纲上,没法直接加;归一化受分布影响,RRF 只看排名、不看分数,所以多数团队直接用它。RRF 不是免费午餐:它抹平了强弱信号, k 值与两路候选数仍要评测集调。
- 进阶RAG 与长上下文的定位
百万级窗口不等于不需要检索:成本随 token 线性涨、context rot 让长输入的有效性塌方、知识更新与权限过滤仍要在窗口之外解决。「RAG 已死」之争的正确答法是按数据规模、更新频率、成本预算划边界,而不是站队。
- 入门Chunking 粒度与 overlap
切分粒度是 RAG 第一个要拧的参数:切大了检索不准、切小了上下文不全。递归字符切分是工程默认起点, overlap 用重叠窗口补跨块断句,但它同时放大索引体积与重复召回。chunk size 没有通用最优值,要拿评测集实测。
- 进阶生成侧评测:RAGAS 四大件
RAGAS 把生成侧拆成 faithfulness(有没有编)、answer relevancy(有没有答到点上)、 context precision / recall(给的证据对不对、全不全)四件,用 LLM-as-Judge 打分。它评的是「基于给定证据答得好不好」,评不了证据本身该不该被召回。
- 深水
- 进阶检索路由与多数据源
向量库、SQL、图谱、API 各答一类问题,路由层先做意图分类再决定问谁 —— 问错地方比检索不准更常见。路由可以是规则、小模型分类或让大模型选工具(NL2SQL 也是一条路由分支),每加一路都要算成本与错路代价。
- 进阶Rerank 与两阶段检索
召回要「全」,排序要「准」:第一阶段用便宜的向量 / BM25 从全库捞几十条,第二阶段用交叉编码器逐条精排。Rerank 补的是双塔模型看不到 query 与文档交互的先天缺陷,代价是每次查询多一跳延迟与成本。
前置:混合检索与 RRF
- 进阶语义切分与结构感知切分
固定切分之外的三条路:结构感知切分按标题层级切、语义切分按 embedding 相似度断句、父子(小到大)切分用小块检索、大块喂模型。它们各解决固定切分的一种失败,代价是解析依赖、离线成本与实现复杂度。
- 深水排障与归因:badcase 驱动迭代
用户说「答非所问」,先把评测切成两段:看检索结果里有没有正确证据 —— 有就是生成问题,没有就是检索问题,再往上游一层层归因到切分、解析或 query。badcase 驱动迭代是面试最想听的工作方法:每个 badcase 进评测集,修完回归,不凭感觉调参。
- 进阶Agentic RAG
把固定的「检索一次 → 生成」改成循环:模型自己决定要不要检索、检索什么、检索几轮,检索成了工具调用。强在能处理多跳与不确定的问题,贵在每轮都是一次模型调用 —— 失控时会反复检索同一个东西,或者明明该检索却直接答。
- 深水双塔、交叉编码器与后期交互
双塔(bi-encoder)把 query 与文档各自编码成向量,能预计算、能建索引,但看不到两者的交互;交叉编码器(cross-encoder)把两者拼在一起打分,准但每对都要现算,所以不能用来检索全库。 ColBERT 式后期交互是第三条路:token 级向量 + 延后打分。
- 深水RAG 架构选型决策树
Naive / Advanced / Agentic / Graph 四代形态不是升级关系,是坐标系上的四个位置。决策从数据形态出发:结构化程度、更新频率、问题是否多跳、成本与延迟预算;演进路径不要一步到位 —— 先 Naive 跑通评测集,被 badcase 逼着才升级。
Agent 开发24 个知识点
控制权、工具调用、循环、记忆、协议、护栏与评测 —— 把模型变成能干活的系统。
- 入门Agent 与 Workflow 的边界
Workflow 是代码决定下一步、模型只填空;Agent 是模型决定下一步、代码只执行。区别不在有没有循环,在控制权归谁。自主度是一条光谱不是二选一,交出控制权的收益是能处理事先写不出分支的任务,代价是可复现性与错误累积。
前置:消息角色与对话结构
- 进阶Workflow 还是 Agent:选型判据
五个问题定生死:任务分支能否事先枚举、错误能否被发现与回退、成本与延迟预算、可复现要求、谁为结果负责。答案多数时候是混合架构 —— 确定的骨架用 workflow,不确定的局部交给 Agent。盲目上 Agent 踩的坑是错误累积、账单失控与不可复现。
- 进阶Agent 记忆系统
工作记忆就是当前上下文,长期记忆是窗口之外的存储;分层是硬要求 —— 上下文预算不能当成一根随便拼接的字符串。写入策略决定记什么、什么时候记,记忆冲突要有仲裁规则,多租户隔离与合规(谁能看、能否删)从第一天就要设计。
前置:上下文工程
- 深水跨会话记忆与 RAG 的区别
跨会话记忆在检索这一步和 RAG 很像,但不是一回事:它在线增量写入、有主体(这个用户)、要处理冲突与遗忘(被遗忘权),评测标准是「用得得体」而不只是「召回了」。把它当成一个只读知识库来做,就会记住不该记的、忘不掉该忘的。
- 进阶Function Calling 机制
模型没有调用任何函数:它只是按 schema 输出一段结构化的「我想调什么、参数是什么」,真正执行的是你的代码,再把结果作为消息塞回去。完整六步缺一不可,理解这一点才能理解并行调用、结果裁剪与 MCP 各自在改哪一步。
- 深水Agent 上下文管理与压缩策略
上下文快满时三条路:滑动窗口丢最旧的、摘要压缩把历史变成一段、重要性过滤只留关键项 —— 各有各的失败模式。触发时机有三种策略;压缩的隐藏成本是缓存失效。压缩前必须固化 MUST-PRESERVE 清单:目标、决定、约束、待办,丢了关键决定就是开篇那种故障。
- 进阶并行调用与工具结果治理
并行工具调用适合彼此独立的读操作,写操作与有依赖的调用要串行。工具返回值是 Agent 上下文的头号杀手:一次查询返回几万 token 会直接把窗口吃光,解法是裁剪、分页、用句柄(handle)代替原文,需要时再取。
- 进阶工具 schema 与描述设计
模型选不准、填不对工具,八成是 schema 与描述的问题:名字要说清「做什么」而不是「怎么实现」、参数少而正交、描述里写清什么时候不该用。七条硬规则之外,方法是先建评测再改描述,不凭感觉调。
- 进阶MCP 协议:从 M×N 到 M+N
MCP 把「每个应用 × 每个工具」的适配矩阵变成「应用接协议 + 工具接协议」,解决的是 Function Calling 的工具发现与分发问题,不改变模型调用工具的机制。2026-07-28 的无状态改版让 Server 能扛住负载均衡:会话状态从连接里挪到了请求头。
- 进阶ReAct 循环与退出条件
最小 ReAct 循环四十行就能写,真正的考点是退出条件:模型给出最终答案、步数上限、成本预算熔断、无进展检测、外部中断 —— 五类一个都不能少。死循环有三种形态,对策是检测重复动作、降级到 workflow 或交人。
- 进阶Agent 成本与延迟优化
每轮都调大模型,成本与延迟由四类杠杆决定:少调(缓存、语义缓存)、调便宜的(模型路由)、调得短(裁剪上下文与工具结果)、并行。账单暴涨有固定的排查顺序;延迟优化和成本优化不完全同向,流式与首 token 延迟要单独看。
- 进阶Agent Skills 与渐进式披露
把说明全写进 system prompt 是常驻 token,每轮都付费还稀释注意力;Agent Skills 只常驻一行触发描述,命中时才加载手册与代码。渐进式披露把「什么时候加载」变成架构变量,是上下文工程在工具层的落地。
- 进阶A2A 协议与 Agent 间通信
A2A 让 Agent 把对方当黑盒协作,而不是把对方的工具搬过来:Agent Card 声明能力,Task 状态机管生命周期,消息与产物分开交付。它和 MCP 互补 —— MCP 连工具,A2A 连 Agent;判据是对端有没有自己的判断与状态。
- 进阶MCP 三大原语
Tools / Resources / Prompts 按「谁控制」来记:Tools 由模型决定调不调,Resources 由应用决定给不给,Prompts 由用户决定用不用。分清控制权才知道一个能力该暴露成哪种原语,弃用窗口则是协议演进时的兼容底线。
- 深水Agent 安全:工具投毒与越权
MCP 把工具变成了供应链:第三方 Server 的描述里可以藏指令(工具投毒),返回值里可以带间接注入, Agent 拿着用户凭证替攻击者办事就是 confused deputy。防线是最小权限、沙箱、对工具描述与返回值都做不信任处理,以及高危操作的人工确认。
- 进阶多 Agent 编排模式
五种编排模式里,orchestrator-workers 最常用:主 Agent 拆任务、派给 worker、再由合成器汇总。拆分唯一正当的理由是上下文隔离 —— 每个 worker 只背自己那份上下文;并行是副产品,不是目的。
- 进阶护栏与可靠性
护栏分五层(输入、工具、输出、策略引擎、人)加两条横切(可溯源、可回退);Agent 跑偏或幻觉不是靠一句「请不要犯错」修的,而是每层各拦一类错。输出校验用规则优先、LLM-as-judge 兜底,目标漂移要在轨迹层检测。
- 进阶Agent 框架选型
选框架选的是「交出多少控制权」:框架替你做了循环、状态、重试与追踪,抽象泄漏就发生在你要改这些默认行为的时候。LangGraph / Agents SDK / ADK / CrewAI 定位不同;不少团队最后自己写循环,是因为循环本身只有几十行,而绞杀者式重写比迁移框架便宜。
- 进阶Agent 评测:看轨迹而不只看结果
Agent 会以「看起来成功」的方式失败:结果对了但绕了十二步、调了不该调的工具、状态改错了。四个评测层次里轨迹评估是核心,指标要看分布而不是均值,不可复现是常态所以要多跑几次;评测集会过拟合,要持续从线上 badcase 补。
- 进阶Agent trace 与可观测性
一条 trace 是一棵 span 树:每次模型调用、每次工具调用各一个 span,带上 OTel 的 gen_ai.* 语义约定字段,才能重放、归因成本、定位是哪一步错的。内容捕获与采样策略要权衡隐私与排障需要,线上监控看的是分布与漂移。
- 进阶ReAct、Plan-and-Execute 与 Reflection
ReAct 边想边做,Plan-and-Execute 先列计划再执行、靠 replan 触发条件救场, Reflection 让模型评审自己的输出 —— 前提是评审信号真的来自外部,否则只是自评偏差。推理模型把「手写规划」的一部分吸收进了模型内部,生产里最常见的形态是混合。
- 深水多 Agent 的取舍与典型死法
多 Agent 不天然比单 Agent 好:交接损失、假设冲突、责任分散、成本翻倍是六种典型死法里的常客,组织结构还会照康威定律映射进架构。拆分前先问三个问题、先有单 Agent 的 baseline,拆完要能量出来比 baseline 好。
前置:多 Agent 编排模式
- 进阶
- 深水Harness 治理
Agent 的能力一半在模型、一半在 harness:提示词、工具集、循环策略、护栏这些模型之外的东西。模型换代时 harness 里为旧模型打的补丁会变成债务,治理的核心动作是做减法与提示词版本化,多 Agent 场景下还要多一层跨 Agent 的一致性约束。
前置:护栏与可靠性、Agent 框架选型
微调与对齐11 个知识点
后训练三档、LoRA 与显存账、什么时候该微调、微调完为什么变笨。
- 进阶后训练主线:SFT 到 GRPO
后训练的三档由监督信号的形态决定:SFT 用「正确答案」、RLHF / DPO 用「哪个更好」的偏好对、 GRPO 用可验证的奖励。信号越弱越便宜、越难标,能走到哪一档取决于你拿得到哪种信号,而不是取决于算法新旧。
- 进阶微调数据构造
数据构造四步:定判准、采集与清洗、标注与去重、切出评测集。质量比数量重要 —— 几百条高质量样本常胜过几万条噪声;数据量经验区间按任务类型分档。评测集必须在标注前切开,否则「效果提升」是泄漏出来的。
- 进阶LoRA 原理
LoRA 冻结原权重,在旁边加一对低秩矩阵 A·B 学增量:微调时只训这几百万参数,推理时可以合并回原权重不增加延迟。能成立的前提是权重更新本身低秩 —— 这也是它在「教格式、教风格」上好用、在「灌新知识」上乏力的原因。
- 深水RLHF 与 DPO:偏好对齐
RLHF 要四步四个模型:先训奖励模型再用 PPO 优化策略,KL 约束防跑偏。DPO 把奖励模型隐式写进损失函数,直接在偏好对上优化,省掉了奖励模型与 RL 训练的不稳定;代价是离线数据一旦分布偏了没有在线纠正的机会。
- 进阶prompt、RAG 还是微调:三问决策树
先问三个问题:缺的是知识还是行为、知识变不变、行为能不能用 prompt 和结构化输出表达。缺知识且会变 → RAG;缺行为且 prompt 表达不了 → 微调;其余写好 prompt 就够。四条路的成本量级差一到两个数量级,2026 年错误的微调理由有三个。
- 进阶
- 深水
- 深水
- 深水LoRA 超参与 QLoRA
r 定低秩矩阵的秩、alpha 定增量的缩放,两套常见数字(r=8/alpha=16 与 r=64/alpha=128)其实不矛盾 —— 看的是 alpha/r 的比值与任务复杂度。QLoRA 把冻结的基座量化到 NF4 省显存,训练的 LoRA 部分仍是全精度,省的是基座那份不是梯度那份。
前置:LoRA 原理
- 深水GRPO 与可验证奖励
GRPO 把 PPO 里的 critic 换成「同一题多次采样的平均分」做基线,省掉一个模型;配合可验证奖励(RLVR:数学能对答案、代码能跑测试),奖励不再靠人标。这就是推理模型训练里它常见的原因 —— 推理任务恰好有可验证的对错。
- 深水微调的护城河与资产寿命
基座半年一大版,微调被吃掉了三块半:通用能力、格式遵循、长上下文、大半的领域知识。剩下的四条护城河是私有数据分布、延迟与成本敏感的小模型、稳定的行为约束、离线可控。资产寿命是最容易被忽略的判据 —— 微调产物的折旧速度决定它值不值得投。
评测与可观测8 个知识点
评测集、judge 的偏差、离线在线鸿沟、trace 与线上质量监控。
- 入门评测集建设
评测集分三层:冒烟的黄金集、覆盖分层的回归集、从线上回流的 badcase 集。来源按含金量排序是真实日志、badcase、人工构造、合成;防泄漏三条要在标注前就守住。规模的三套数字对应三个阶段 —— 几十条起步、几百条回归、上千条做统计。
- 进阶回归测试与 A/B 的统计关
「涨了两个点」不是结论:同一评测集上的配对检验(McNemar)与置信区间才能说明换模型、换 prompt 是真变好还是噪声。上线走灰度与 A/B,护栏指标兜底;简历里的「效果提升」也要过这一关 —— 和 few-shot 基线比过没有、样本量够不够。
前置:评测集建设
- 进阶
- 进阶主观任务与人工评测设计
文案、对话质量这类主观任务,最差的判据是一个 1–5 的总体质量分:标注者之间对不齐, judge 也学不会。可靠的做法是拆成可判的维度、用成对比较代替打分、盲评、写标注指南并量标注者一致性;校准集要多少条,由它替你做多大的决策决定。
前置:评测集建设
- 进阶LLM-as-Judge 的偏差与校准
judge 是一个分类器,要用分类器的标准验收:偏差谱系有量表 —— 位置偏差消不掉只能对冲、自我偏好、冗长偏差。它只在有参照物(参考答案或成对比较)时可靠;校准流程五步,用 Cohen κ 对人工标注验收,judge 本身要版本管理。
前置:评测集建设
- 进阶线上质量监控与金丝雀集
线上没有标准答案,监控分三层且顺序不能反:先系统指标、再代理指标、最后抽样人审或 judge。质量回退归因的第一刀是金丝雀集 —— 一小撮固定样本定期重跑,一变就知道是模型变了、输入变难了还是系统变差了;事故处理先止血再归因树,最后补监控缺口。
前置:离线 / 在线鸿沟
- 进阶数据飞轮与用户反馈
点赞点踩是稀疏且有偏的显式信号,隐式信号(重问、复制、放弃)更多但更难解释;用采样器把它们变成待标注队列,错误分析回流成评测集与训练数据,让每次失败都留下资产。指标会反噬 —— 优化点赞率不等于优化质量。
前置:线上质量监控与金丝雀集
- 进阶trace 字段与 OTel 语义约定
一次多轮 Agent 请求的 trace 里必须记:每次模型调用的输入输出与 token、每次工具调用的参数与结果、模型与提示词版本、成本。OpenTelemetry 的 GenAI 语义约定(gen_ai.*)还在演进,内容捕获要处理 PII 与采样,目标是任何一条失败请求都能重放。
部署与成本10 个知识点
推理引擎、流式与实时链路、网关、缓存、路由与 token 成本治理。
- 入门流式输出:SSE 与 WebSocket
流式输出用 SSE 就够:单向、HTTP、EventSource 原生支持;WebSocket 只在需要客户端中途插话(语音、协同编辑)时才必要。SSE 的五个坑都写在规范里 —— 代理缓冲、超时、重连、事件语义三家不兼容、浏览器端带不了 Authorization 头所以绕不开自建后端。
前置:消息角色与对话结构
- 进阶LLM 网关:限流与多模型路由
网关是所有模型调用的统一出口,管四笔账:限流(先问你在保护谁 —— 上游配额还是自己的预算)、降级、缓存、路由,外加分账与可观测。两种负载均衡是两个问题:跨 key 摊配额,跨厂商做容灾。能力矩阵易腐化,选型看的是这四笔账谁替你算。
前置:消息角色与对话结构
- 进阶自建推理还是调 API:成本账
这笔账有四个维度:单位 token 成本、利用率(自建 GPU 空转就是烧钱)、容量规划与峰谷、人力与运维。throughput 会骗人 —— 要看 goodput,即满足延迟 SLO 的有效吞吐;多数团队在日均量级达到某个阈值前,调 API 更便宜。
- 进阶KV Cache 显存账与长上下文
KV Cache 的显存 = 2 × 层数 × KV 头数 × 头维度 × 序列长度 × 精度字节 × 并发,序列长度与并发都是线性项,长上下文推理显存爆炸就爆在这里。压它的四条路按成熟度排序: GQA / MLA 减头数、FP8 量化减字节、分页管理减碎片、卸载到主存换带宽。
- 深水实时语音链路
两条路:级联 ASR → LLM → TTS 可控、可换件、延迟叠加;端到端语音模型延迟低、能保留语气但黑盒难调。200 毫秒的体感预算逼出 WebRTC、VAD 与 barge-in(打断)这些文本链路没有的问题,三家实时接口的现状易变。
- 进阶限流应对与优雅降级
429 是你超了配额,529 是上游过载 —— 两者的正确反应不同。指数退避带抖动、尊重 retry-after、熔断后 fallback 到备用模型或降级功能、排队降级而不是直接报错;止血优先,先保核心链路再谈体验。
- 深水vLLM:PagedAttention 与 continuous batching
推理瓶颈分两段:prefill 算力密集、decode 带宽密集。PagedAttention 把 KV Cache 按页管理,消灭预分配造成的显存碎片;continuous batching 让请求在 decode 的每一步进出批次,不等最长的那条。chunked prefill 把长 prefill 切片混进 decode 步,平衡两段。
- 进阶语义缓存
缓存三层:精确缓存、prompt 前缀缓存、语义缓存 —— 每上一层,正确性的责任就往你这边转移一层。语义缓存拿 embedding 相似度当缓存键,FAQ 类高重复问题省大钱,但阈值稍松就误命中答错话;多租户必须隔离,盈亏平衡点要会算。
- 进阶Token 成本三刀归因
账单涨了三倍,先切三刀:第一刀输入侧还是输出侧,第二刀各侧内部再切(system 前缀、历史、工具结果、思考 token…),第三刀单价(模型、缓存命中、批处理)。降本动作有完整顺序与代价,四个反直觉的定价事实要记住,成本可观测有最低要求。
- 深水模型路由与难度判定
「简单问题走小模型」难在判断什么是简单:规则与分类器都要训练数据,级联(先小后大、小模型不自信再升级)是最稳的形态。大多数团队做不好是因为没有双轴评测 —— 质量与成本要同时量,路由错一次的代价常常大于省下的钱。
AI 编程协作8 个知识点
方法论域:带 AI 干活的工作流、上下文构建与规格 / 验证 / 回滚 / 准入四道闸。
- 进阶AI 编程协作:工作流与人的位置
从「AI 帮我写」到「我带 AI 干」:工具形态的三分法已经作废,换成三根轴(会话在哪跑、异步能力、编排单位)。上下文不是资料袋是工位,人的位置从写代码挪到定规格、验结果、归因翻车 —— 面试开场题问的就是你能不能说清一次省了一天与一次翻车各是为什么。
前置:上下文工程
- 进阶规格先行与任务拆解
四道闸的第一道:把验收标准从脑子里搬到文件里。复杂任务先写 spec 再让 AI 实现,计划模式先出方案再动手,拆解的粒度以「一次能验收」为准;规格先行有三个流派,差别在 spec 谁写、多细、什么时候冻结。
- 进阶AI 时代工程师的价值判断
「AI 这么能写代码了你的价值是什么」是终面的灵魂拷问:价值从产出代码挪到了定义问题、写清规格、付验证税、为结果负责这几件 AI 不能替你做的事。答不好的信号是把价值说成「我提示词写得好」,答得好的信号是能说清自己在哪一道闸上不可替代。
- 进阶AI 编程的上下文构建
上下文有四层来源,优先级不同、腐化速度也不同:规则文件常驻、任务描述每次给、检索结果按需、对话历史最容易烂。整仓塞进去反而更差是 context rot;两条检索路线(索引检索 vs 代理式检索)是两个不同的评价函数;提示缓存要求静态在前动态在后。
- 进阶
- 进阶AI 代码审查与验证税
验证有四档强度,越往下越不依赖模型的自觉:让它自己说、跑测试、对抗式评审、独立复现。 AI 代码高发的坑是 reward hacking(为了让测试通过改测试)、安全缺陷与看似合理的静默错误;产能翻倍后瓶颈换到了审查这一端,验证税是必须付的。
前置:规格先行与任务拆解
- 深水团队治理与准入
第四道闸是准入:先问你在防什么 —— 防没人看得懂、防没人认领、还是防安全事故,对应的规矩不同。vibe coding 上瘾的解法不是禁用,是披露政策(哪些代码是 AI 写的、谁负责)、可维护性门槛与验证税的显式分配。
- 深水AI 代码事故复盘:缺了哪道闸
AI 写的代码上线出事故,复盘的框架就是四道闸:规格挡做错、验证挡做坏、回滚挡收不回、准入挡没人认领 —— 逐道问缺了哪一道。先止血再归因树,改进项按「补哪道闸性价比最高」排序,责任意识体现在说清自己在哪一道闸上放了行。
场景设计6 个知识点
方法论域:五步通法与 toB 硬约束,场景题在拷哪些概念由关联边给出。
- 深水扩展性追问:日活 100 到 10 万
日活涨一千倍,架构要变的不是「加机器」:容量规划看 goodput 而不是 throughput, KV Cache 决定并发上限,长尾请求要有兜底策略(限流、降级、排队),网关与多 key 摊配额。答题时先说哪个环节先崩,再说各环节的触发信号。
- 深水
- 深水场景设计五步通法
场景题考的不是会做多少菜,是会不会点菜。五步:澄清需求(四类问题、只花两分钟)、给基线(最土的方案能到什么水平)、加挂并说代价、谈评测(三条线,只在掉分时下沉)、谈演进(给触发信号不给时间表)。四张随身表把决策树、评测线、成本三刀、四道闸随身带着。
前置:prompt、RAG 还是微调:三问决策树、检索侧评测:召回率与评测集、Workflow 还是 Agent:选型判据
- 深水代码库问答:两条检索路线
对着私有仓库问,两条检索路线不是谁对谁错:索引检索(embedding + 符号索引)快但有新鲜度问题,代理式检索(agentic grep)新鲜但每次都要走一遍。仓库权限是前置过滤的又一个落点,代码的结构(符号、调用关系)比自然语言更值得建索引。
- 深水成本约束追问:预算砍一半先砍什么
预算砍一半不是均摊,是按降本九步的顺序走:从「不影响正确性」的动作(缓存、裁剪、批处理)走到「影响正确性」的动作(降档位、换小模型、砍功能),最后一步是承认做不到。每一步都要说边际收益与代价,压力追问考的是取舍能不能说清。
- 深水人机协同与转人工
工单 Agent 的分类、查询、升级三段里,转人工的触发按不可逆程度分级,不按置信度 —— 模型不确定就转人工会把人工淹没。转人工率是一个被低估的零成本信号:它同时反映模型能力、需求分布与阈值设置,是场景题里最好谈的评测指标。