跳到主要内容

八股

自用别看

周一 6月 27 2005
14879 字 · 53 分钟

AI 应用开发岗 · 八股广度清单

适用:校招 AI 应用开发 / LLM 应用工程方向 定位: 项目之外的通用知识考察。项目相关题见另一份《面试全覆盖题库(追问链版)》。

优先级标记

标记含义建议
★★★几乎必问 / 不会就是硬伤必须能口头讲清楚
★★常见,考察深度要知道原理和取舍
★加分项,考察广度知道有这回事、能说个大概就够

使用方式

  • 这份清单是 广度覆盖,每条只给要点骨架。能看着要点讲出 2-3 句连贯的话,就算过关。
  • 讲不出来的标 🔴,回头单独补。
  • 不要背答案。面试官追问的方式是「为什么」,背的答不出为什么。
  • 涉及具体模型版本、榜单排名、价格的部分, 以官方最新公开信息为准,这份清单只给判断框架。

⚠️ 先读这一节:这份清单要裁着看

368 条不是让你全背的——那是 6 小时的量。它的真正用途是 让你知道自己哪里不会,扫一遍标出 🔴,然后只补那部分。

更关键的是: 这 14 章不是等权的。有的是你这个岗位的核心考点,有的其实是另一个岗位的考纲混进来了。按下表裁:

章节条数对「AI 应用开发」的定位怎么过
一 LLM 基础48核心全过,每条要能讲 2 分钟
二 Prompt 工程22核心全过,2.1 优先于 2.2
三 RAG43核心(命中率最高的一章)全过,3.1–3.3 是重中之重
四 Agent32核心全过,4.1 和 4.4 优先
七 评估20核心,但最常被忽略全过。多数候选人答不出”怎么评估”,这是拉开差距的地方
八 AI 工程化25核心全过
十二 系统设计17核心全过,背下 12.3 的 checklist
五 微调与对齐29部分只过:LoRA 原理、什么时候该微调而不是 RAG、量化概念。对齐细节、压缩细节可跳
六 推理与部署25部分必看 6.1(KV Cache、连续批处理)和 6.3(成本);6.2 服务化按你简历的深度看
十 Python39部分10.3 工程实践最对口;10.1 只挑 GIL / asyncio / 深浅拷贝 / 装饰器 / pydantic。元类、描述符、__new__、迭代器协议这类”语言律师题”可跳
十三 开放题—了解略读,知道思路即可
十四 行业认知20了解14.1 模型选型、14.3「为什么做这行」必看;14.2 知道名词就行
九 ML/DL 基础28⚠️ 错配章节见下方说明
十一 算法—通用(与岗位无关)校招必考,但不属于八股范畴,单独刷题

要不要准备传统后端知识?要,但边界很清晰

结论:需要,但只需要”和你简历强相关”的那部分,大概 30 个考点。

三个理由

  1. 岗位后缀是”开发”。AI 应用开发不是”AI 研究员”——你写的东西要上线、要扛流量、要能被观测。一个 RAG 系统里有缓存、有向量库、有异步 Pipeline;一个 Agent 系统里有流式、有超时、有重试、有并发控制。 这些全是后端问题,而且恰恰是最容易出事故的地方。
  2. 你的简历就是后端栈。两个项目里,Go 微服务 / gRPC / Kafka / Redis / Canal / K8s 占了七成篇幅,AI 相关(ReAct、Eino、RAG)只占三行。 面试官看着这份简历不问后端是不可能的——他甚至可能主要就是按后端在考你,AI 部分才用来区分。
  3. 你已经有优势,不需要从头补。这是好事:项目二那段 Canal+Kafka 的缓存一致性链路,本身就是很好的后端证明。你要做的是* 把已经做过的事情讲清楚*,不是去背新东西。

边界:三层分法

层内容你的状态
必须会Go 并发(GMP/channel/context/锁)、gRPC 与 Protobuf、Redis 缓存三兄弟 + 数据结构选型、Kafka 分区顺序性与消费语义、SQL 索引与事务隔离、微服务拆分的代价、容器与 K8s 基础简历里都做过,在实战手册第 6 章,约 30 个考点,逐个过一遍即可
知道就行HTTP/2 与 SSE、连接池调优、限流熔断降级、分布式追踪、CAP 与最终一致能在被问到时说清楚原理和取舍,不用展开细节
完全不用准备Spring 全家桶、JVM 调优、Dubbo、ZooKeeper、分布式事务的各种实现(Seata/TCC/Saga)、RPC 框架源码、MySQL 主从复制细节那是Java 后端岗的考纲,不是你的

一、LLM 基础与原理

1.1 Transformer 与注意力(★★★)

#问题要点
1Self-Attention 在做什么让序列中每个位置都能直接看到所有其他位置,按相关性加权聚合信息。解决 RNN 的长程依赖和串行问题
2Q / K / V 的含义Query 是当前位置”想找什么”,Key 是各位置”能提供什么”,Value 是”实际内容”。softmax(QKᵀ/√d_k)V
3为什么要除以 √d_k防止点积方差随维度增大而变大,把 softmax 推到梯度极小的饱和区。这是缩放点积注意力的由来
4为什么要 Multi-Head单个注意力头只能关注一种关系;多头让不同子空间并行捕捉语法、指代、语义等不同模式,最后拼接投影
5Attention 的时间和空间复杂度O(n²·d),对序列长度 n 是平方级。这是长上下文成本高的根本原因
6位置编码的作用Attention 本身是置换不变的(打乱词序结果不变),必须显式注入位置信息
7绝对位置编码 vs 相对位置正弦编码(固定、可外推)、可学习编码(灵活、外推差);RoPE 用旋转编码把相对位置信息编码进 Q/K,是目前主流;ALiBi 直接在注意力分数上加线性偏置
8为什么主流是 Decoder-only生成任务天然是自回归;训练效率高(所有 token 都参与 loss);规模扩展性好。Encoder-Decoder(T5)在翻译等任务仍有优势
9Layer Norm 的位置(Pre-LN vs Post-LN)Post-LN 收敛快但深层易不稳定;Pre-LN 训练更稳定(现在主流),代价是最终效果略依赖调参
10FFN 层的作用对每个位置独立做非线性变换,提供模型的”知识存储”能力。参数量占比很大
11残差连接的作用梯度高速公路,缓解深层网络的梯度消失
12为什么有之类的特殊 token序列边界标记、任务分隔、padding 对齐、生成起始信号
13前缀注意力 / Causal Mask解码时屏蔽未来 token,保证自回归性质

1.2 预训练与训练(★★★)

#问题要点
14预训练任务是什么自回归语言建模(预测下一个 token)。本质是在海量文本上做无监督学习
15为什么”预测下一个词”能产生智能压缩即智能——要准确预测,模型必须学会语法、事实、推理、世界模型
16Scaling Law模型性能与参数量、数据量、计算量呈幂律关系。指导了”堆规模”的路线
17数据质量为什么越来越重要高质量 token 有限;重复低质数据收益递减;清洗、去重、配比成为核心竞争力
18涌现能力(Emergent Abilities)某些能力在规模跨过阈值后突然出现(如多步推理)。也有研究认为部分是评测指标不连续造成的假象
19预训练 / 继续预训练 / 微调 的区别预训练从零学;继续预训练往已有模型里灌领域知识(数据量大、无标注);微调改行为(数据量小、有标注)
20指令微调(SFT)做什么用「指令-回答」对训练,让模型从”续写”变成”听懂指令并回答”
21灾难性遗忘微调后旧能力退化。缓解:混合原始数据、低学习率、LoRA(只改少量参数)
22混合精度训练FP16/BF16 计算 + FP32 主权重。BF16 指数位多、不易溢出,大模型训练更常用
23分布式训练 parallelism数据并行(DP)、张量并行(TP,切矩阵)、流水线并行(PP,切层)、ZeRO(切优化器状态/梯度/参数)。大模型通常组合使用

1.3 Tokenizer 与上下文(★★★)

#问题要点
24Token 是什么模型的最小处理单位,不是字也不是词。常见 BPE 算法
25BPE 的原理从字符开始,反复合并出现频率最高的相邻符号对,直到词表达到目标大小
26为什么中文 token 效率低多数 tokenizer 以英文为主训练,中文常被切得碎,一个汉字可能占 1-2 个 token。直接影响成本和上下文预算
27数字为什么会被切成多段BPE 对数字的处理不一致,导致算术能力差。一些模型做了专门优化
28上下文窗口是什么模型单次能处理的最大 token 数(输入+输出)
29超出上下文会怎样直接报错,或从头部截断。需要自己做滑动窗口/摘要
30“Lost in the middle”长上下文中,模型对开头和结尾的信息利用更好,中间部分容易被忽略。这是长上下文应用的经典陷阱
31输出长度也占上下文吗占。输入 + 输出 ≤ 上下文窗口

1.4 解码与采样(★★★)

#问题要点
32自回归生成的过程逐个 token 生成,每次把已生成内容拼回去再预测下一个。O(n) 次前向,无法并行
33temperature缩放 logits 后再 softmax。低→分布尖锐→确定;高→分布平缓→多样。趋于 0 等价贪心
34top-p(核采样)只在累积概率达到 p 的最小候选集里采样。动态截断,比 top-k 灵活
35top-k只在概率最高的 k 个里采样。固定大小,分布平坦时可能截断过多
36贪心 vs 采样贪心确定性高但容易重复、呆板;采样有创造性但可能跑偏
37repetition penalty对已出现 token 的 logits 打折,抑制重复。过大会导致语句不通
38为什么同样输入两次结果不同采样随机性 + 服务端批处理导致的浮点非确定性
39怎么保证结果可复现temperature=0(贪心)+ 固定 seed。注意服务端仍可能有微小抖动
40代码/工具调用场景怎么设低温(0 或接近 0),要确定性
41为什么需要 stop sequence告诉模型什么时候停,避免它自顾自地继续生成

1.5 幻觉与局限性(★★★)

#问题要点
42幻觉是什么生成看似合理但与事实不符或无法从给定材料推出的内容
43幻觉的根因模型是概率续写而非查数据库;训练数据有噪声/过时;缺乏”我不知道”的选项
44缓解幻觉的手段① RAG grounding ② 要求引用来源 ③ 低温 ④ 自检/验证链路 ⑤ 工具调用代替直接回答(让模型算而不是猜)
45模型为什么不会算术本质是模式匹配不是计算。解法:让它生成代码再执行(工具调用),而不是直接答
46知识时效性预训练有截止日期,之后的事不知道。解法:RAG、联网搜索、继续预训练
47模型的”自信的错误”LLM 无法可靠表达不确定性。**校准(calibration)**是个开放问题
48为什么不直接问模型”你对这个答案有多大把握”自我报告置信度与实际准确率相关性弱。更可靠的做法是多次采样看一致性,或用外部验证

二、Prompt 工程

2.1 基础技巧(★★★)

#问题要点
49好 prompt 的要素角色设定 + 任务描述 + 上下文/输入 + 输出格式要求 + 约束条件 + 示例
50Zero-shot vs Few-shotFew-shot 给几个示例让模型理解格式和期望。通常能显著提升格式一致性
51Few-shot 的注意事项示例要有代表性、覆盖边界情况、顺序会影响结果(近因效应)、示例多了会挤占上下文
52Chain-of-Thought(CoT)让模型”说出推理过程”再给答案。显著提升多步推理正确率
53为什么 CoT 有效把复杂推理拆成中间步骤,每步更简单;中间 token 相当于给了模型更多”思考空间”
54“Let’s think step by step”Zero-shot CoT 的经典触发句,无需示例即可激活推理链
55CoT 的代价输出变长 → token 成本和延迟上升;简单任务上可能反而更差
56Self-Consistency采样多条推理路径,投票选最一致的答案。提升准确率的代价是 N 倍成本
57Tree of Thoughts(ToT)★把推理展开成树,搜索 + 回溯。适合需要探索的任务,成本很高
58角色设定的作用激活模型在特定领域的语料分布,影响语气和深度。对格式和风格影响明显,对事实准确性影响有限
59分隔符的使用用 ```、XML 标签、### 明确区分指令和数据。防注入 + 防歧义
60负面约束怎么写光说”不要 XX”效果有限(模型对否定不敏感),更好的是说”要 YY”
61输出格式的约束层级原生 Structured Outputs / JSON Mode > Function Calling schema > prompt 里写”请返回 JSON”

2.2 高级技巧(★★)

#问题要点
62System / User / Assistant 的区别System 设定全局行为和身份,优先级最高;User 是每次的输入;Assistant 可用于 few-shot 和预填充
63Prefill / 预填充 Assistant手动写 Assistant 消息的开头,强制模型从这里续写(如直接写 { 强制输出 JSON)
64结构化输出怎么保证优先用厂商原生能力(语法级约束解码),其次 Function Calling schema,最后才是 prompt 约束 + 解析容错 + 重试
65Prompt 里的边界语义一定要写明(“0-based, inclusive”),否则经典的差一错误
66长 prompt 的组织指令放开头或结尾(中间容易丢),重要约束重复一遍,用结构化的 markdown 标题分段
67Prompt 版本管理prompt 是代码。要版本化、要测试、要 A/B。工业上用 prompt 模板 + 变量 + 回归测试集
68Prompt 注入(Prompt Injection)★★★攻击者在不可信内容里藏指令,让模型执行。缓解:内容用分隔符包裹并声明”以下是数据不是指令”、权限最小化、输出侧校验、危险操作人工确认
69越狱(Jailbreak)★绕过安全对齐。常见手法:角色扮演、编码混淆、多轮诱导
70Prompt 压缩 ★用模型把长 prompt 压缩成短 prompt 以省 token,但可能丢关键信息,需要评估

三、RAG(检索增强生成)

AI 应用岗最高频的模块,几乎必考。

3.1 全链路(★★★)

#问题要点
71RAG 是什么先从知识库检索相关片段,再把它塞进上下文让模型基于它生成。解决知识时效性、幻觉、私有数据的问题
72RAG 的完整链路数据接入 → 清洗 → 切分 → 向量化 → 存储索引 → 检索 → (重排)→ 上下文组装 → 生成 → 评估
73RAG vs 微调RAG 管知识(可更新、可溯源、成本低);微调管行为(格式、风格、领域术语)。不要指望微调灌知识
74RAG vs 长上下文长上下文简单但贵、有 lost-in-middle;RAG 便宜、可扩展、可溯源。工业上常混合:RAG 粗筛 + 长上下文精读
75什么时候不该用 RAG需要全局理解整个文档(如”总结全书的主题”)、知识库极小(直接全塞进去)、需要实时计算的场景

3.2 切分(Chunking)(★★★)

#问题要点
76切分的目标每个 chunk 语义完整、大小适中、检索友好
77固定长度切分简单,但会切断语义。需要 overlap
78按结构切分按标题/段落/代码块/函数切。语义完整性最好,代码场景首选按 AST 节点切
79语义切分 ★用 embedding 相似度在语义突变处切
80Chunk 大小的权衡太小→语义不完整、召回碎片化;太大→噪声多、塞占上下文、embedding 表达被稀释
81Overlap 的作用和代价缓解跨边界信息丢失;代价是冗余存储和重复召回
82父子 chunk(Small-to-Big)★★用小 chunk 做检索(匹配精准),召回后返回它所属的大 chunk(上下文完整)。工业常用
83元数据的重要性给每个 chunk 带上文件名、标题、时间、权限标签。支持过滤检索和引用溯源
84表格/图片怎么处理表格:转文本描述或保留结构;图片:多模态 embedding 或 OCR + 描述

3.3 Embedding 与向量(★★★)

#问题要点
85Embedding 是什么把文本映射成稠密向量,语义相近的文本在向量空间里距离近
86相似度度量余弦相似度(方向,最常用)、内积(含模长信息)、欧氏距离(L2 后与余弦等价)
87为什么常用余弦对向量长度不敏感,更注重方向语义,且归一化后点积计算快
88Embedding 模型怎么选看:语言支持(中文要选中文强的)、维度、最大输入长度、是否在权威榜单(如 MTEB)上表现好、推理成本
89对称检索 vs 非对称检索对称:query 和 doc 同构(相似句匹配);非对称:query 短、doc 长(搜索)。要选对应训练目标的模型
90向量维度的影响维度高表达力强但存储/计算贵、索引效率低;维度低则相反。可做 Matryoshka(可截断)降维
91向量数据库 vs 向量索引pgvector(PG 插件,量小/已有 PG 首选)、Milvus/Qdrant(大规模、分布式)、FAISS(库而非服务,需自己封装)
92ANN 索引:IVFFlat vs HNSWIVFFlat:聚类倒排,构建快、内存小、查询需调 probes;HNSW:多层图,查询快、召回高,但构建慢、内存大
93HNSW 的调参M(每个节点的连接数)、efConstruction(构建时的搜索宽度)、efSearch(查询时宽度)。召回率与延迟的权衡
94为什么 ANN 是”近似”精确 KNN 在高维下退化为线性扫描(维度灾难),ANN 用召回率换速度
95关键词检索为什么还重要 ★★★向量是模糊语义匹配,精确标识符/错误码/专有名词上表现差。BM25 这类稀疏检索能精确匹配
96BM25 原理基于 TF-IDF 改进:词频饱和(k1)+ 文档长度归一化(b)
97混合检索(Hybrid Search)★★★稀疏 + 稠密双路召回,再用 RRF 或加权融合
98RRF(Reciprocal Rank Fusion)score = Σ 1/(k + rank_i),k 常取 60。不需要归一化分数,避开了 BM25 分数无上界、余弦在 [0,1] 的尺度问题
99只用向量的失败场景搜”GetUserByID”时,GetUserByName 可能相似度极高 → 搜错。这就是 BM25 必须存在的理由

3.4 检索后处理(★★)

#问题要点
100为什么需要 Rerank向量检索(bi-encoder)为效率把 query 和 doc 独立编码,交互少、精度粗
101Bi-encoder vs Cross-encoderBi:分别编码,可预先算 doc 向量,快;Cross:query+doc 拼接一起过模型,精度高但慢
102两段式检索向量召回 Top-50 → Cross-encoder 精排 Top-5。工业标准做法
103上下文组装的注意点去重、按相关性或原始顺序排、带上元数据、处理长度预算
104Lost-in-middle 的缓解把最相关的放开头和结尾;或用压缩/摘要减少总长度
105引用溯源怎么做生成时要求标注来源 ID,输出后校验引用的 chunk 是否真在上下文里
106召回不到怎么办查询改写(Query Rewriting)、HyDE(用 LLM 生成假设答案再检索)、多路查询、放宽过滤条件

3.5 高级 RAG(★)

#问题要点
107Query Rewriting / 查询改写用 LLM 把用户问题改写成更适合检索的形式(补全省略、消歧、多轮对话的指代消解)
108HyDE让 LLM 先生成一个”假想答案”,用这个答案去检索。利用答案-答案相似度
109Multi-query / 多路查询从多角度改写 query,各路召回后合并去重
110Self-RAG ★模型自己决定要不要检索、检索结果有没有用、要不要重新检索
111GraphRAG ★用知识图谱组织实体关系,适合”跨文档全局性问题”(如”这些文档里有哪些主要主题”)
112Agentic RAG ★把检索做成 Agent 的一个工具,由模型自主决定检索几次、检索什么
113RAG 的评估见第七章(RAGAS)

四、Agent 与工具调用

你的项目在这个方向,但这一章是 通用知识,不含你项目的内容。

4.1 Agent 范式(★★★)

#问题要点
114什么是 LLM Agent以 LLM 为决策核心,能自主规划、调用工具、观察结果、迭代直到完成目标的系统
115Agent 的核心循环感知 → 推理/规划 → 行动 → 观察 → 回到推理
116ReActReasoning + Acting 交替。每轮输出 Thought / Action / Observation
117ReAct 的优缺点优:能根据观察动态调整;缺:串行慢、上下文膨胀、错误会累积
118Plan-and-Execute先让 LLM 规划全部步骤,再逐步执行。适合步骤可预先分解的任务,但计划错了要 replan
119Reflection / Self-Refine生成 → 自我批评 → 修正。质量敏感场景有效,成本翻倍
120Function Calling / Tool Calling模型输出结构化的工具调用请求(名称 + 参数),由外部执行后把结果喂回
121Tool Calling 和 ReAct 的关系Tool Calling 是能力,ReAct 是使用这个能力的一种范式
122Multi-Agent多个角色(规划者/执行者/审查者/领域专家)协作。灵活但通信成本高、一致性难保证
123Agent vs WorkflowWorkflow 是预定义的有向图,确定性强、可控;Agent 由模型动态决策,灵活但不可控。工业上常是 Workflow 骨架 + Agent 节点
124什么时候不该用 Agent流程固定、要求确定性、延迟敏感、成本敏感的场景,用 Workflow 或直接编码

4.2 工具与环境(★★)

#问题要点
125工具定义的关键精确的 JSON Schema + 清晰的 description。description 是给 LLM 看的说明书,极其重要
126工具数量多了怎么办工具太多会让模型选择困难、prompt 膨胀。解法:分层/分组、按需动态加载、先做工具检索
127参数 schema 写粗了的后果模型可能把参数包成 {"args": {...}} 或格式错乱
128工具调用失败的处理把错误作为 Observation 喂回模型,让它自我纠正;而不是直接中断
129并行工具调用无依赖的工具调用可以并行发出,减少轮次
130MCP(Model Context Protocol)★模型与外部工具/数据源的标准化连接协议,解决”每个应用都要写一遍集成”的问题
131代码执行类工具的安全沙箱隔离、路径白名单、命令白名单、资源限额、危险操作人工确认
132幂等性工具重试不应产生副作用。设计上要支持重复执行

4.3 记忆与状态(★★)

#问题要点
133短期记忆上下文窗口内的对话历史
134长期记忆外部存储(向量库/KV),按需检索注入
135上下文膨胀怎么办滑动窗口(保留最近 N 轮)、摘要压缩、把历史存库按需召回
136摘要压缩的注意点保留关键决策和事实,丢弃寒暄;摘要本身也要存起来形成层级
137多轮对话的指代消解用户说”它怎么样”时,需要结合历史改写 query
138会话状态持久化存 DB,支持断线重连、跨设备、审计回放

4.4 可靠性与失控(★★★)

#问题要点
139Agent 死循环的原因工具反复返回同样结果、模型忘记已尝试、目标不可达
140防失控的手段迭代上限、token 预算、超时、重复调用检测(同参数 hash)、进展评估
141达到上限怎么办优雅退出并给出当前进展摘要,而不是抛异常
142Agent 的可观测性记录每一步的 thought/action/observation,支持回放和审计
143Human-in-the-loop高风险操作(删除、支付、外发)必须人工确认
144Agent 的错误是累积的早期工具错误会误导后续所有决策。要有回滚和检查点机制
145怎么评估一个 Agent单元层(工具选择/参数准确率)+ 任务层(端到端成功率、平均轮数、成本)+ 质量层(产物通过验证的比例)


五、微调与对齐

5.1 微调方法(★★★)

#问题要点
146全参数微调 vs 参数高效微调(PEFT)全参微调效果最好但显存和成本高、易灾难性遗忘;PEFT 只训少量参数,成本低、易切换
147LoRA 原理在原始权重旁挂一个低秩分解(A×B)的可训练旁路,W' = W + BA。冻结原权重,只训 A/B
148LoRA 为什么有效微调的增量本身是低秩的(内在维度低)。rank r 通常取个位数到几十
149LoRA 的 rank 怎么选小→表达能力弱;大→接近全参但成本上升。按任务复杂度调
150QLoRALoRA + 4bit 量化基座模型。让消费级显卡也能微调大模型
151Prefix Tuning / P-Tuning在输入前加可学习的连续向量(soft prompt),只训这些向量
152Adapter在层间插入小模块,只训模块
153微调需要多少数据数量不是关键,质量和多样性才是。几百到几千条高质量样本常能改变行为
154微调数据怎么造人工标注(质量高、成本高)、用强模型蒸馏生成(常用)、从真实日志中挖掘
155数据配比的重要性混合通用数据防止遗忘;不同任务类型的配比影响很大
156微调的过拟合表现训练集 loss 很低但泛化差、输出变单调、丧失原有能力
157什么时候该微调需要特定输出格式/风格、需要压缩 prompt 省成本、小模型要追特定任务效果
158什么时候不该微调知识更新(用 RAG)、数据少且不稳定、需求还在快速变化

5.2 对齐(★★)

#问题要点
159为什么要对齐预训练模型只会续写,不会”有帮助、诚实、无害”地回答
160RLHF 流程SFT(学指令)→ 训练奖励模型 RM(学人类偏好)→ PPO 强化学习优化策略
161RLHF 的难点奖励模型容易被”钻空子”(reward hacking)、PPO 训练不稳定、超参敏感
162DPO直接在偏好数据上优化,跳过奖励模型。更简单稳定,目前主流
163DPO vs PPODPO 离线、简单、稳定;PPO 在线探索、上限可能更高但工程复杂
164其他对齐方法 ★KTO(只需好/坏标签)、ORPO/SimPO(把偏好损失融进 SFT)
165Reward Hacking模型找到奖励模型的高分捷径但并非真的好。对齐的核心难题
166Constitutional AI ★用一套原则让模型自我批评和修正,减少对人工标注的依赖

5.3 模型压缩(★★)

#问题要点
167量化的原理用低精度(INT8/INT4/FP8)表示权重,减少显存和带宽
168量化为什么能几乎不掉点神经网络对权重精度不敏感(有冗余),关键在激活值的处理
169训练后量化(PTQ)vs 量化感知训练(QAT)PTQ 直接量化,快但损失大;QAT 训练时模拟量化,效果好但成本高
170常见量化方案GPTQ(逐层量化,GPU)、AWQ(激活感知,保重要权重)、GGUF/GGML(CPU/本地推理常用)
171量化命名里的 Q4_K_M 是什么GGUF 的量化格式:4 bit、K 系(混合精度)、M(中等)。不同后缀是质量/体积的权衡
172蒸馏用大模型(teacher)的输出训练小模型(student),把能力迁移过去
173剪枝 ★去掉不重要的权重或神经元。结构化剪枝才能真正加速
174小模型 vs 大模型的取舍小模型便宜、快、可端侧;大模型能力强。趋势是路由:简单的给小模型,难的给大模型

六、推理加速与部署

6.1 推理瓶颈与优化(★★★)

#问题要点
175自回归生成的两个阶段Prefill(一次性处理整个 prompt,计算密集)+ Decode(逐 token 生成,带宽密集)
176为什么 Decode 慢每生成一个 token 都要把全部权重从显存读一遍 → 访存带宽是瓶颈,不是算力
177KV Cache 是什么缓存已计算的 Key/Value,避免每步重算。用显存换时间
178KV Cache 的代价显存随 batch × 序列长度线性增长,是并发能力的主要限制
179Continuous Batching(连续批处理)★★★传统静态 batch 要等整批完成;连续批处理在请求完成时立即插入新请求,大幅提升 GPU 利用率
180PagedAttention(vLLM 核心)★★把 KV Cache 分成固定大小的块(像虚拟内存分页),消除碎片、支持共享前缀
181前缀缓存(Prefix Caching)★★相同前缀(如 system prompt)的 KV Cache 复用。对多轮对话和固定 prompt 场景收益巨大
182Flash Attention ★IO 感知的精确注意力算法,通过分块(tiling)减少 HBM 读写,显著省显存、提速度
183投机解码(Speculative Decoding)★小模型先快速生成草稿,大模型并行验证。在分布接近时显著加速
184张量并行 / 流水线并行推理单卡放不下时把模型切到多卡。TP 切矩阵(通信多、延迟低),PP 切层(通信少、有气泡)
185常见推理框架vLLM(连续批处理+PagedAttention,高吞吐)、SGLang(RadixAttention,前缀复用强)、TensorRT-LLM(NVIDIA 深度优化)、Ollama / llama.cpp(本地/CPU)

6.2 服务化(★★)

#问题要点
186流式输出(SSE)逐 token 返回,感知延迟大幅下降。AI 应用几乎必备
187为什么用 SSE 不用 WebSocket 做输出单向场景 SSE 更简单(HTTP 原生、自动重连、代理友好);需要双向才用 WebSocket
188长连接的超时设置代理/Nginx/网关的默认超时会掐断长请求,需要单独配置
189请求排队与优先级GPU 资源有限,需要队列 + 超时 + 优先级
190多模型路由按任务难度/成本路由到不同模型
191降级策略主模型不可用 → 备模型 → 缓存 → 兜底回复
192重试策略指数退避 + 抖动;只对可重试错误(429/5xx/超时)重试,400 不重试
193幂等与重试成本重试会重复计费,需要幂等键或克制重试次数
194批处理 API ★非实时场景用批处理接口,成本显著更低

6.3 成本(★★★)

#问题要点
195成本构成输入 token + 输出 token(输出通常更贵)+ 请求次数
196降成本手段prompt 精简、缓存(前缀缓存/结果缓存)、小模型路由、批处理、缩短输出、减少 RAG 上下文
197结果缓存完全相同/语义相近的 query 直接返回缓存。注意 temperature=0 才有意义
198为什么要监控 token单个用户/接口的 token 消耗失控会直接烧钱。需要配额和告警
199上下文长度与成本的关系Attention 是 O(n²) 计算、KV Cache 是 O(n) 显存,长上下文不只是 token 贵

七、评估与 Benchmark

7.1 通用评估(★★★)

#问题要点
200为什么 LLM 评估难生成任务没有唯一正确答案;开放式任务的主观性;容易过拟合到评测集
201客观指标精确率/召回率/F1(分类、抽取)、完全匹配 EM(问答)、代码通过率 pass@k
202BLEU / ROUGE基于 n-gram 重叠。与人类判断相关性弱,尤其对生成任务。知道它们不适合评估开放式生成
203语义相似度评估用 embedding 算生成答案与参考答案的相似度。比 n-gram 好,但仍抓不住事实错误
204LLM-as-a-Judge ★★★用强模型按评分标准给生成结果打分。工业界主流,可扩展、与人类判断相关性较好
205LLM-as-Judge 的坑位置偏差(偏爱第一个)、长度偏差(偏爱长的)、自我偏爱(偏爱自己家的模型)。缓解:随机化顺序、成对比较、明确 rubric
206人工评估金标准,但贵、慢、一致性难保证(需要多人 + 算一致性系数)
207常见基准 ★MMLU(多学科知识)、HumanEval / MBPP(代码)、GSM8K / MATH(数学推理)、SWE-bench(软件工程任务)、MT-Bench / AlpacaEval(对话)
208基准的局限数据污染(测试集进了训练集)、刷榜过拟合、与真实业务场景分布不一致
209业务指标才是最终标准任务成功率、用户采纳率、人工修改率、耗时。离线指标只是代理

7.2 RAG 评估(★★)

#问题要点
210RAG 该评什么检索质量(召回率、精确率、MRR、NDCG)+ 生成质量(忠实度、相关性、准确率)
211Faithfulness(忠实度)★★★生成内容是否都能从检索到的上下文中推出。衡量幻觉
212Answer Relevancy答案是否切题
213Context Precision / Recall检索到的上下文中有用内容的比例 / 有用内容被检索到的比例
214RAGAS ★一套 RAG 自动化评估框架,核心指标就是上面几个
215RAG 效果不好怎么定位 ★★★分层排查:① 把正确答案塞进上下文,能答对 → 是检索的问题 ② Top-50 里有但 Top-5 没有 → 需要 Rerank ③ 上下文有但答错 → 是生成/prompt 的问题
216怎么造评测集从真实日志采样 + 人工标注;或用强模型生成 query-answer 对(注意质量)

7.3 Agent 评估(★★)

#问题要点
217评估维度工具选择准确率、参数正确率、端到端任务成功率、平均迭代轮数、token 消耗、失败模式分布
218轨迹评估不只看最终结果,还要看中间步骤是否合理
219失败模式分类工具选择错、参数错、陷入循环、提前终止、理解错需求

八、AI 应用工程化

8.1 应用层架构(★★★)

#问题要点
220一个 AI 应用的典型分层接入层 → 编排层(prompt 管理、Agent 循环、工作流)→ 能力层(检索、工具)→ 模型层(多模型路由)→ 基础设施(缓存、队列、可观测)
221为什么需要编排层解耦业务逻辑和模型调用;统一管理 prompt、重试、降级、缓存、成本
222常见编排框架LangChain / LangGraph(生态全、抽象重)、LlamaIndex(检索强)、Eino(CloudWeGo,Go 生态)、或自己写(可控性最好)
223用框架 vs 自己写框架快、生态全,但抽象泄漏、调试难、版本变化快;自己写可控但重复劳动。建议:核心链路自己写,通用组件用库
224Prompt 管理模板化 + 版本化 + 变量注入 + 回归测试。不要硬编码在代码里
225模型抽象层统一接口封装多家厂商,便于切换和降级
226幂等与重试LLM 调用可能超时但实际已执行,重试要能识别
227异步化长任务用队列 + 回调/轮询,不要阻塞 HTTP 请求

8.2 可观测性(★★)

#问题要点
228AI 应用要观测什么延迟(首 token / 总时长)、token 消耗、成本、错误率、工具调用成功率、用户反馈
229Tracing 的重要性一次请求可能经过多次 LLM 调用 + 多次检索 + 多次工具调用。没有链路追踪根本没法排查
230要记录什么完整的 prompt(含变量渲染结果)、模型参数、响应、耗时、token 数
231隐私与合规日志里可能有用户敏感数据,需要脱敏和访问控制
232用户反馈闭环点赞/点踩 → 收集 bad case → 迭代 prompt/检索/路由

8.3 安全与合规(★★★)

#问题要点
233Prompt 注入见 #68。OWASP LLM Top 10 的第一位
234数据泄露风险用户输入进模型 → 可能被用于训练;RAG 检索到越权文档
235越权访问RAG 必须做权限过滤,不能检索到用户无权查看的内容
236输出内容安全输入输出都要有内容审核
237PII 处理敏感信息脱敏后再发给模型
238数据出境用境外模型服务时的数据合规问题
239模型本身的不确定性带来的责任需要有人工审核环节,尤其是高风险决策

8.4 交互体验(★★)

#问题要点
240流式输出几乎是标配。首 token 时间是关键体验指标
241中间状态展示展示”正在检索""正在思考""调用了 XX 工具”,降低等待焦虑
242中断与取消用户能随时中止,服务端要能真正取消(context 传播)
243失败兜底模型不可用时的降级文案,不要让白屏
244结果可编辑AI 输出通常不是最终结果,要方便用户修改

九、机器学习 / 深度学习基础

⚠️ 本章是算法工程师 / 数据挖掘岗的考纲,对 AI 应用开发岗属于错配章节。 见开头「这份清单要裁着看」。 只看 261(AdamW)和 264(LN vs BN)两条即可,其余扫一眼知道有这回事就行,不必花时间补。

9.1 机器学习基础(★★)

#问题要点
245监督/无监督/半监督/强化学习有无标签;RL 是通过奖励信号学习
246过拟合与欠拟合过拟合:训练好测试差(记住了噪声);欠拟合:两边都差(模型太简单)
247解决过拟合更多数据、数据增强、正则化(L1/L2)、Dropout、早停、简化模型、集成
248L1 vs L2 正则L1 产生稀疏解(可做特征选择);L2 让权重整体变小(更平滑)
249Bias-Variance 权衡模型复杂度上升,偏差下降、方差上升。要找最优点
250交叉验证充分利用数据评估模型,避免单次划分的偶然性
251分类指标精确率(查准)、召回率(查全)、F1(调和平均)、ROC-AUC(排序质量)
252精确率和召回率的权衡取决于业务代价。疾病筛查要召回,垃圾邮件要精确率
253类别不平衡怎么办重采样、类别权重、换评估指标(看 PR 曲线而非 ROC)、换阈值
254特征工程归一化/标准化、编码、缺失值处理、分箱。传统 ML 的核心
255常见传统模型逻辑回归、决策树、随机森林、XGBoost/LightGBM、SVM
256为什么表格数据上树模型常优于深度学习结构化数据、样本量不大、特征有明确含义时,树模型更鲁棒、可解释、训练快

9.2 深度学习基础(★★)

#问题要点
257前向传播与反向传播前向算输出;反向按链式法则算梯度并回传
258梯度消失/爆炸深层连乘导致梯度趋 0 或爆炸。缓解:残差连接、Layer Norm、合适初始化、梯度裁剪
259激活函数ReLU(简单快,但有 dying ReLU)、GELU(Transformer 主流,平滑)、Sigmoid(输出压到 0-1,用于门控)
260损失函数交叉熵(分类)、MSE(回归)、对比损失(embedding 训练)
261优化器SGD(简单,泛化好)、Adam/AdamW(自适应学习率,Transformer 标配。AdamW 修正了 weight decay 的实现)
262学习率调度Warmup(先小后大,稳定训练初期)+ 余弦衰减(后期精细收敛)。大模型训练标配
263Batch Size 的影响大 batch 训练稳、并行效率高,但泛化可能变差、显存大
264Batch Norm vs Layer NormBN 在 batch 维度归一化(不适合变长序列、依赖 batch size);LN 在特征维度归一化(Transformer 用)
265Dropout随机置零部分神经元,防止过拟合。推理时不生效
266CNN 的核心思想局部感受野 + 权重共享 + 平移等变性。适合图像
267RNN/LSTM 的局限串行无法并行、长程依赖衰减。这是 Transformer 取代它的原因
268迁移学习用预训练模型在小数据上微调。深度学习的默认范式

9.3 多模态(★)

#问题要点
269多模态大模型怎么做把图像/音频编码成 token 序列,和文本 token 拼在一起进 Transformer
270CLIP 类模型 ★图文对比学习,把图像和文本映射到同一向量空间。是图文检索和文生图的基础
271视觉 token 的成本图片会占大量 token,成本远高于纯文本
272OCR 在多模态 RAG 里的位置扫描件/表格仍需 OCR,且 OCR 质量直接决定 RAG 上限


十、Python 与工程基础

AI 应用岗的 主语言。Go 岗写 Go,AI 岗写 Python,两边都要能写。

⚠️ 本章 39 条里混了两类东西,别平均用力:

  • 对口的部分:10.3 工程实践(httpx 流式、Semaphore 限流、pydantic 校验、tenacity 重试) 全部要看,这些直接对应 AI 应用开发的日常工作;10.1 里的 GIL、asyncio、生成器、深浅拷贝、装饰器、pydantic 也是高频。
  • “语言律师题”:元类、描述符、__new__ vs __init__、迭代器协议、is vs ==—— 可以跳过。这些是通用 Python 岗的考点,AI 应用岗几乎不问,问了也区分不出人,还会挤占你准备 RAG 和 Agent 的时间。

10.1 Python 语言(★★★)

#问题要点
273GIL 是什么全局解释器锁,同一时刻只有一个线程执行 Python 字节码。限制了 CPU 密集型的多线程并行
274GIL 的影响与绕过IO 密集不受影响(等待时释放 GIL);CPU 密集用多进程(multiprocessing)或 C 扩展(numpy 就绕过了)
275多线程 vs 多进程 vs 协程线程:IO 密集、共享内存;进程:CPU 密集、隔离;协程(asyncio):高并发 IO、单线程切换
276asyncio 的核心事件循环 + await 让出控制权。避免在协程里用阻塞调用,会卡死整个循环
277生成器与 yield惰性求值,节省内存。yield from 委托给子生成器
278装饰器接收函数返回函数的高阶函数,用 @ 语法糖。要会写带参数的装饰器(三层嵌套)
279functools.wraps 的作用保留原函数的 __name__、__doc__。不加会让被装饰函数”改名”
280深拷贝 vs 浅拷贝浅拷贝只复制一层,嵌套对象仍共享;深拷贝递归复制全部。循环引用需要特殊处理
281可变默认参数的坑def f(a, lst=[]) 的 lst 在函数定义时创建一次,被所有调用共享。用 None 做哨兵
282闭包与 late binding循环里创建的闭包会共享同一个变量。用默认参数绑定:lambda x=i: x
283*args / **kwargs位置参数打包成 tuple,关键字参数打包成 dict
284迭代器协议__iter__ + __next__。for 循环的本质
285上下文管理器__enter__ / __exit__,或 @contextmanager。保证资源释放
286__new__ vs __init____new__ 创建实例(控制实例化,如单例),__init__ 初始化
287描述符与 property控制属性访问。@property 让方法变成属性
288元类 ★类的类。控制类的创建行为。框架里常见,业务代码少用
289类型注解提示性的,运行时不校验。配合 mypy 做静态检查。Python 3.10+ 的 X| Y 联合类型
290dataclass自动生成 __init__/__repr__/__eq__。定义数据类首选
291pydantic运行时数据校验和序列化。AI 应用里做结构化输出校验的标配
292内存管理与垃圾回收引用计数为主 + 分代回收处理循环引用
293列表 vs 生成器列表占内存但可重复遍历、可索引;生成器省内存但只能遍历一次
294is vs ==is 比身份(内存地址),== 比值。小整数有缓存所以 1 is 1 为 True
295字典的实现哈希表。Python 3.7+ 保证插入顺序
296常用标准库collections(defaultdict/Counter/deque)、itertools、functools(lru_cache/reduce)、dataclasses、concurrent.futures

10.2 数据科学生态(★★)

#问题要点
297numpy 的核心多维数组 + 向量化运算(底层 C,绕过 GIL 且快)
298broadcasting形状不同的数组自动扩展对齐再运算。避免写 Python 循环
299view vs copy切片返回 view(共享内存),copy() 才是真拷贝。改 view 会影响原数组
300pandas 常用操作groupby / merge / pivot / apply。注意 apply 慢,优先向量化
301链式索引的坑df[df.a>1]['b'] = 1 可能改不动(链式赋值)。用 .loc
302虚拟环境venv / conda / poetry / uv。隔离依赖,必会
303Jupyter 的定位探索和实验;生产代码要落到 .py 文件

10.3 工程实践(★★)

#问题要点
304HTTP 客户端requests(同步)、httpx(同步+异步,AI 应用常用)、aiohttp
305流式响应怎么处理httpx 的 stream() + 迭代 iter_bytes();注意 SSE 的 data: 格式解析
306异步调用 LLM SDK厂商 SDK 通常提供 Async 客户端,配合 asyncio.gather 并发
307并发调用多个 LLM 的限流asyncio.Semaphore 限制并发数
308重试库tenacity(功能全、装饰器形式好用)
309结构化输出校验pydantic + instructor 之类的库(把 LLM 输出直接校验成 pydantic 对象)
310测试pytest;mock LLM 调用(不要真调 API);用 VCR 录制回放
311依赖管理requirements.txt / pyproject.toml;锁定版本

十一、数据结构与算法

校招必考。这里给 高频清单,不展开解法。

11.1 必刷清单(★★★)

数组 / 字符串

  • 两数之和(哈希)
  • 滑动窗口(最长无重复子串、最小覆盖子串)
  • 二分查找(含边界写法、旋转数组、搜索插入位置)
  • 前缀和 / 差分
  • 双指针(三数之和、盛水容器、接雨水)
  • 原地哈希、快慢指针

链表

  • 反转链表(全反转 / 部分反转 / K 个一组)
  • 环形链表检测(快慢指针)
  • 相交链表、合并有序链表、删除倒数第 N 个
  • LRU 缓存(哈希 + 双向链表) ——AI/后端都爱考

栈 / 队列 / 堆

  • 单调栈(下一个更大元素、柱状图最大矩形)
  • 优先队列(Top-K、合并 K 个有序链表、数据流中位数)
  • 用栈实现队列 / 用队列实现栈

树

  • 二叉树的四种遍历(递归 + 迭代)
  • 层序遍历(BFS)
  • 二叉搜索树的性质与验证
  • 最近公共祖先 LCA
  • 前缀树 Trie(字符串检索、自动补全)

图

  • BFS / DFS
  • 拓扑排序(课程表、依赖解析) —— Agent 任务依赖能用上
  • 并查集
  • 最短路径(Dijkstra / BFS 无权图)

动态规划

  • 背包问题(01 / 完全)
  • 最长递增子序列、最长公共子序列、编辑距离
  • 打家劫舍、股票买卖系列
  • 区间 DP、状态压缩 DP(了解)

其他高频

  • 回溯(全排列、子集、N 皇后、组合总和)
  • 贪心(区间调度)
  • 位运算
  • 快排 / 归并 / 堆排(要能手撕,并说清复杂度、稳定性、是否原地)

11.2 复杂度(★★★)

#要点
312常见数据结构操作复杂度:数组随机访问 O(1)、插入删除 O(n);链表插入删除 O(1)、访问 O(n);哈希表平均 O(1)、最坏 O(n);平衡树 O(logn);堆插入删除 O(logn)、取最值 O(1)
313排序算法:快排平均 O(nlogn) 最坏 O(n²) 不稳定;归并 O(nlogn) 稳定但需 O(n) 空间;堆排 O(nlogn) 不稳定原地;冒泡/插入/选择 O(n²)
314递归的复杂度分析:主定理(Master Theorem)
315空间复杂度要算递归栈

11.3 AI 场景可能长出来的算法题(★)

#题目考点
316手撕 BM25 / 倒排索引哈希 + 排序 + 统计
317手撕 LRU / LFU哈希 + 双向链表
318手撕令牌桶限流时间差计算
319Top-K(从大文件找最大 K 个)小顶堆
320实现一个简单的 ReAct 循环状态机 + 错误处理
321文本相似度计算(Jaccard / 余弦)集合运算 / 向量
322实现 Trie 做前缀提示树

十二、系统设计(AI 场景)

校招通常是 简化版,15-25 分钟。重点是 结构化表达和 取舍意识,不是完美方案。

12.1 通用答题框架(★★★)

五步法:

  1. 澄清需求:用户量、QPS、延迟要求、准确性要求、数据规模、成本约束
  2. 顶层架构:画出分层,说清数据流向
  3. 核心模块深入:挑 1-2 个难点展开(通常是检索、缓存、异步)
  4. 瓶颈与扩展:哪里先挂?怎么扩容?
  5. 权衡总结:你放弃了什么、为什么

💡 不要一上来就堆组件。先把”要解决的矛盾”说出来,再给方案。

12.2 高频 AI 设计题(★★)

#题目核心考点
323设计一个文档问答系统(企业知识库)文档解析 → 切分 → embedding → 向量库 + BM25 混合检索 → rerank → 生成 → 引用溯源;权限过滤;增量索引
324设计一个智能客服意图识别 → 知识库 RAG / 业务 API 工具调用 → 多轮对话管理 → 人工接管;拒答机制
325设计一个 AI 代码助手(补全 / Chat)仓库索引(AST + 检索)、上下文组装策略、低延迟要求、流式输出、安全沙箱
326设计一个联网搜索问答查询改写 → 搜索 API → 页面抓取解析 → 内容提取 → 摘要 + 引用
327设计一个高并发 LLM API 网关多模型路由、限流、缓存(前缀 + 结果)、队列、降级、成本统计、流式透传
328设计一个多模态内容审核系统异步流水线、分级(规则 → 小模型 → 大模型)、人机协同、误杀与漏放的权衡
329设计一个推荐 / 召回系统(结合 LLM)传统召回 + LLM 做重排或特征增强;LLM 的延迟决定了它只能在离线或重排层
330设计一个 AI 应用的评测平台评测集管理、批量跑批、多维指标(含 LLM-as-judge)、对比实验、结果可视化

12.3 设计里必须想到的点(★★★)

#要点
331延迟预算分解:检索 + LLM 首 token + 生成。流式能把感知延迟降下来
332LLM 延迟不可控:长任务必须异步化(队列 + 回调/轮询)
333缓存分层:结果缓存(完全相同 query)→ 前缀缓存(同 system prompt)→ 检索缓存
334限流与配额:按用户、按接口;GPU 是稀缺资源
335降级链路:主模型 → 备模型 → 缓存 → 规则兜底
336权限过滤:RAG 检索必须带权限,不能越权召回
337成本监控:token 消耗要有配额和告警
338可观测:一次请求多次模型调用,必须有 trace
339数据闭环:用户反馈 → bad case → 迭代

十三、开放题与思维题

这类题没有标准答案,考察的是 结构化思考和 诚实。

#问题回答思路
340你觉得 LLM 目前最大的局限是什么选一个你有体会的角度(幻觉/不确定性/成本/长程规划/无法真正学习新知识),讲清楚为什么、举一个具体例子、说你觉得短期能缓解到什么程度
341如果让你做一个 XX 场景的 AI 产品,你怎么设计先问清楚用户和场景;不要上来就谈技术;说清”为什么这里需要 LLM”而不是规则
342RAG 和长上下文,未来哪个会赢不要二选一。讲各自的适用边界,说工业上会混合
343Agent 能取代 Workflow 吗谈确定性 vs 灵活性;说清楚在什么约束下选哪个
344你怎么判断一个需求该不该用 LLM看:是否有明确的规则解法(有就用规则)、是否容忍不确定性、成本是否划算、是否有兜底
345模型输出错了,用户投诉,你怎么排查分层:是检索错了(召回/排序)→ 是上下文组装错了 → 是 prompt 错了 → 是模型能力不足。每一步都要有可验证的手段
346你怎么跟进这个领域的发展说具体的信息源和习惯(论文/官方博客/开源项目/自己动手跑)。别说”看公众号”
347你最近关注的 AI 方向是什么选一个你真能讲 3 分钟的方向,讲清楚:解决什么问题、主流做法、难点在哪
348小公司/创业团队和大厂做 AI 应用的区别讲资源约束、迭代速度、数据、工程基建的差异,不做优劣评判

十四、行业认知

⚠️ 这一章只给判断框架,不列具体版本和排名 —— 模型迭代极快,任何具体数字在几个月内就会过时,面试时说错反而扣分。实际信息请以官方最新公开资料为准。

14.1 模型选型(★★)

#思考维度
349能力维度:任务类型(推理/生成/代码/多模态)、指令遵循能力、上下文长度、语言支持(中文表现)
350成本维度:输入/输出价格、是否有批处理折扣、是否有免费额度
351工程维度:延迟、可用性、限流策略、是否有结构化输出/函数调用等原生能力、SDK 成熟度
352合规维度:数据是否出境、是否支持私有化部署、服务条款对数据的约定
353开源 vs 闭源:开源可私有化、可定制、数据安全,但要自己扛部署和运维;闭源开箱即用、能力通常领先,但数据在外部、有供应商锁定
354不要给模型排名:可以说”在我测的 XX 任务上,A 的表现是……B 是……”,不要说”A 比 B 好”
355路由策略比单一选型更实际:简单任务用小模型、难任务路由到大模型,是工业上更常见的做法

14.2 热点方向(知道名词 + 能说原理即可)(★)

#方向一句话
356推理模型 / 思维链强化训练模型在回答前生成长链推理,在数学/代码/复杂推理上提升明显,代价是 token 和时间
357Test-time Compute推理时多花算力( longer thinking / 多次采样投票)换效果,是新的 scaling 维度
358Agentic Coding从补全走向自主完成工程任务(读仓库、改多文件、跑测试)
359MCP / 工具生态标准化让工具集成从”每个应用写一遍”变成”一次接入到处可用”
360端侧小模型手机/PC 上跑,隐私好、零延迟、离线可用,能力有限
361多模态图文音视频统一建模;成本和理解能力仍在爬坡
362长上下文从”能塞多少”走向”塞进去真的用得上”(解决 lost-in-middle)
363AI 安全与对齐注入攻击、越狱、数据泄露、可控性
364模型蒸馏与小模型用小成本模型逼近大模型在特定任务上的效果

14.3 你要能回答的”为什么做这行”(★★★)

#问题建议
365为什么选 AI 应用开发说一个具体的触发点(做某个项目时的某个发现),而不是”前景好”。面试官一天听二十遍”前景好”
366你觉得 AI 应用开发的核心难点是什么好的答案方向:不确定性工程化(怎么让概率系统可靠)、评估(怎么知道它变好了)、成本与效果的平衡
367你觉得自己比别人强在哪结合你的具体经历说,别说”学习能力强”这种无法验证的话
368你的职业规划短期讲”想补什么”,长期讲”想深到什么方向”。不要给具体年限和职级

附录:冲刺优先级

这是按「AI 应用开发岗 + 你的简历(Go 后端栈 + 两个 AI/微服务项目)」重排的,和章节顺序无关。

第一梯队 — 不会就是硬伤

  • 一 LLM 基础:Transformer 与注意力、tokenizer、采样参数、 幻觉成因
  • 三 RAG 全链路:切分策略、embedding 选型、混合检索、rerank
  • 四 Agent:ReAct、Tool Calling 原理、 4.4 防失控
  • 七 评估: 这一章最容易被忽略,也最容易被问倒——RAG 分层排查、LLM-as-Judge、怎么判断改动是变好还是变差
  • 八 工程化:分层架构、可观测、Prompt Injection
  • 十二 系统设计:把 12.3 的 checklist 背下来,任何 AI 场景题都能套

第二梯队 — 拉开差距

  • 二 Prompt 的 2.2 高级技巧(CoT、few-shot、自我一致性)
  • 五 微调: 只过 LoRA 原理 + 什么时候该微调而不是 RAG(后者是高频决策题)
  • 六 推理:KV Cache、连续批处理、6.3 成本
  • 十 Python:10.3 工程实践(httpx 流式、Semaphore 限流、pydantic 校验)+ GIL / asyncio
  • 十四 行业认知:14.1 模型选型、 14.3「为什么做这行」(必考动机题)

第三梯队 — 有余力再看

  • 三 的 3.5 高级 RAG
  • 五 的 5.2 对齐、5.3 压缩
  • 十三 开放题
  • 十四 的 14.2 热点名词(知道名词和一句话原理即可)

不属于这份清单的准备范围

内容去哪准备
九 ML/DL 基础跳过——算法岗考纲,不是你的方向(例外:261 AdamW、264 LN vs BN)
十一 算法与手撕校招必考,但看清单没用,要上题库刷题
传统后端(Go/Redis/Kafka/SQL)见《面试实战手册》第 6 章,约 30 个考点,都是你简历上已有的

时间预算

你有多少时间怎么分配
2 小时(临阵)只扫第一梯队的 ★★★,每章 20 分钟,扫完标 🔴
半天第一梯队全过 → 二 Prompt 2.2 → 五 LoRA → 六 KV Cache 与成本
1–2 天一二三四七八十二全过 → 第二梯队 → 实战手册第 6 章后端 30 考点
一周以上全过 + 第三梯队 + 算法刷题 + 后端系统补

判断标准:不要追求”过完了”,要追求”扫完知道自己哪里不会”。368 条里你大概率有 200 条已经会了, 真正需要补的可能只有 40–60 条——那才是你该花时间的地方。

最后三条

  1. 每个 ★★★ 都要能讲 2 分钟,而不是只认得名词。面试官判断你懂不懂,靠的是你能不能展开,不是你能不能说出这个词。
  2. 遇到不会的,说”这个我没深入过,我了解的相关部分是……我要搞清楚的话会……”,比瞎编强。瞎编被追问会直接暴露。
  3. 主动说边界。比如提到量化就说”具体比特数的效果差异要看实测,不同模型差异很大”——主动标注自己知识边界的人,比什么都敢答的人可信得多。

感谢您的阅读!如果可以,给俺点些关注吧~

八股

周一 6月 27 2005
14879 字 · 53 分钟