吃透作业帮 AI 应用开发岗|LLM + 全栈:27 秋招作战手册

适用人群:2027 届本/硕,目标岗位为「AI 应用算法工程师 / 大模型应用开发(全栈方向)/ 大模型对话算法」等 LLM 应用层岗位
内容定位:不是八股文合集,而是一份从 JD 反推能力模型、从能力模型反推项目与面试脚本的完整作战文档
成文时间:2026 年 10 月(27 届秋招进行中)


目录


0. 写在前面:为什么这篇值得你读完

先说结论:2026 年的 LLM 应用层岗位,招聘逻辑已经彻底变了。

三年前,一个"大模型岗"的面试可能是:讲讲 Transformer、手推 Attention、写个 Self-Attention 的 numpy 实现。今天,同样一个岗位,面试官打开简历后的第一句话大概率是——

“挑一个你做得最完整的项目,讲讲它的背景、目标、方案,以及效果是怎么量化的。”

这不是我编的。牛客上公开的作业帮大模型岗面经里,一面第一道非自我介绍的问题就是这个,且在多份面经里反复出现。另一份面经追问的是「RAG 的准确率、召回率有没有做过评测」「会话记忆用了滑动窗口 + 压缩,压缩会不会丢记忆,怎么解决」。

区别一目了然:考点从"你知不知道"变成了"你做没做过、量没量过、改没改过"。

而作业帮尤其典型:它不做通用模型的军备竞赛,它做的是把大模型塞进亿级用户的教育产品里。它要的人,不是能复现一篇论文的人,而是能回答下面三个问题的人:

  1. 一个 10 万条题库的 RAG 系统,怎么切分、怎么召回、怎么保证讲错的题不会误导学生?
  2. 一个陪伴式辅导 Agent,怎么在 3 秒内给出第一 token,同时成本控制在每次对话几厘钱?
  3. 上线之后效果掉了 3 个点,你怎么知道是哪一步掉的?

整篇文档围绕这三个问题展开。能把这三个问题答到 80 分,这个岗位你就有竞争力了。

补充一个背景数据:「AI Engineer(在预训练模型之上构建产品,而非训练模型)」已被多条 2026 年技术路线图独立认定为增长最快的开发者角色,且它们给出的学习顺序惊人一致——工程基础 → 原生 API → RAG → Agent → 评测与生产化。本手册的章节顺序与这个共识一致。


1. 岗位画像:三段真实 JD 的逐句翻译

先把真实 JD 摆上来,逐句翻译"潜台词"。以下三段均来自公开渠道的作业帮 27 届招聘信息(暑期实习 / 秋招)。

1.1 AI 应用算法工程师(核心职责原文切片)

  1. 参与作业帮搜索、对话等场景端到端系统设计与开发,包括但不限于 AI Agent、RAG 系统、意图识别与多轮对话等核心模块的构建与优化;
  2. 负责将大模型能力(LLM/多模态模型)与真实业务场景深度融合,面向生产力场景进行算法方案设计、原型验证与效果迭代;
  3. 参与 Prompt 工程、检索增强生成(RAG)、记忆管理等技术方向的探索与落地,推动 AI 技术从"能用"到"好用"的产品化进程;
  4. 设计并搭建量化评测体系,对算法效果进行系统性评估,沉淀可复用、可规模化的技术方法论;
  5. 关注 AIGC、智能体(Agent)、具身智能等前沿技术动态……

逐句翻译:

JD 原文真正的筛选信号
“端到端系统设计与开发”不要只会调 API 的人。要能从前处理讲到上线,能画出完整链路图
“AI Agent、RAG、意图识别、多轮对话”这四件事至少要有两件是亲手做过的,不是看过文章
“从’能用’到’好用’的产品化”Demo 不算数。面试官会问"你上线了吗?有人用吗?"
“记忆管理”多轮会话的上下文工程,是 2026 年的高频考点
“量化评测体系”这一条是分水岭。90% 的候选人答不出自己的项目准确率是多少

1.2 优先考虑项(这才是真正的门槛)

  1. 使用 Claude Code、Cursor 等 AI Agent 完整搭建过系统优先考虑;
  2. 有实际的算法产品化经验,理解"可上线、可迭代、可控成本"的工程化落地思路;
  3. 对 AI Agent、RAG、Prompt 工程有实践经历或深入认知(课程项目、开源贡献、个人作品均可);
  4. 有搜索、推荐、对话系统、信息检索等方向的项目经验或研究背景;
  5. 在 NeurIPS / ICML / ICLR / ACL / EMNLP 等顶会发表过相关论文。

注意第 1 条:"用 AI Agent 完整搭建过系统"被写进了 JD 的第一条优先项。这在 2025 年之前是不可想象的。它释放的信号是——公司默认你能用 AI 编码工具把效率拉满,不再考察你"会不会用",而是考察你"用 AI 搭出来的东西有没有架构、有没有边界、有没有质量门"。

第 5 条(顶会论文)虽然写了,但它排序在最后,说明是 tie-breaker(同分时加码)而非 hard requirement。没有论文完全不必慌,前四条才是主战场。

1.3 大模型对话算法工程师(业务更聚焦)

  1. 针对 K12 教育解题对话场景进行 LLM 调优;
  2. 搭建与优化 RAG 链路;
  3. 构建 SFT/RLHF 高质量数据集;
  4. 建立自动化评测 Pipeline 并解决 Bad Case。

技能要求:熟悉 Transformer 结构、LLM 开发框架,具备 NLP 项目经验,了解 LoRA、P-tuning 等微调技术。

1.4 大模型应用开发工程师(全栈方向)

这一版 JD 把"全栈"摊开说了,技术栈写得非常具体,几乎是一份现成的学习清单:

  • 后端:Python、Flask / FastAPI
  • 前端:Streamlit / Gradio(快速原型),ToC 产品则需真正的前端能力
  • 编排:LangChain / LangGraph(多步骤、有状态的 Agent 与工作流)
  • 检索:RAG 全流程,非结构化数据处理,FAISS / Chroma 向量库
  • 低代码迁移:Coze / Dify 的项目经验,并理解其底层 Agent 机制
  • 部署调优:量化压缩(GGML / AWQ)、推理加速(vLLM / TensorRT-LLM)、Docker

1.5 三条隐藏筛选线

把三段 JD 放在一起做交叉对比,会浮出三条主线。这三条线,就是你准备的全部重心:

                ┌─────────────────────────────────────┐
                │   线一:端到端交付能力(能不能扛起一条链路)│
                │   文档解析 → 切分 → 索引 → 召回 → 重排        │
                │   → 生成 → 校验 → 日志 → 回流                │
                └─────────────────────────────────────┘
                ┌─────────────────────────────────────┐
                │   线二:量化评测能力(知不知道自己做得多好)│
                │   评测集 → 指标 → 基线 → 迭代 → 回归门         │
                └─────────────────────────────────────┘
                ┌─────────────────────────────────────┐
                │   线三:工程与成本能力(能不能真的上线)    │
                │   流式 → 缓存 → 降级 → 并发 → 成本控制        │
                └─────────────────────────────────────┘

绝大多数候选人在第 1 条线内卷,少数人意识到第 2 条,几乎没人准备第 3 条——而第 3 条恰恰是"有实习经验"和"做过课设"的分界线。


2. 业务底盘:作业帮到底在用大模型干什么

准备一个公司,最忌讳的是把它当成"某个用大模型的公司"。你必须知道它拿大模型赚钱的具体姿势,因为面试官的所有场景题,都从这些姿势里长出来。

2.1 银河大模型:教育垂直领域的自研底座

  • 2023 年 9 月 2 日,作业帮在服贸会正式发布自研银河大模型,定位是"覆盖多学科、多学段、多场景的教育大模型"。
  • 公开榜单成绩:C-Eval 平均 73.7 分(榜首);CMMLU Five-shot 74.03 / Zero-shot 73.85(均第一);MMLU 71.88。是首个同时在 C-Eval、CMMLU 两大榜单平均分排名第一的教育大模型。
  • 能力描述:多学科知识解答、创意写作、自主提问、陪伴式辅导。
  • 落地载体:作业帮 App 等学习工具、智能硬件(学习机/学习笔)、智能图书、教育数字化。
  • 团队持续在 ACL、AAAI、ICML、NeurIPS、CIKM 等会议发表工作。

对你的意义: C-Eval / CMMLU 是中文知识与学科能力的评测集。当 JD 里写"教育大模型评估指标体系设计"时,面试官脑子里装的很可能就是这类榜单的构造逻辑——分学科、分学段、分难度,而不是一个笼统的准确率。这是第 7 章第 5 题的题眼。

2.2 五个核心场景

从 JD 与公开信息归纳,作业帮的 LLM 应用集中在:

场景技术形态隐含难点
搜索(题目/知识点搜索)Query 理解 + 检索 + 生成式摘要口语化 query、公式与图片检索
对话(解题陪伴、答疑)多轮对话 + 记忆 + 工具调用上下文膨胀、角色一致性
AI 老师 / 伴学Agent + 长期记忆 + 教学策略教学节奏、苏格拉底式提问而非直接给答案
智能学情诊断结构化抽取 + 画像 + 推荐从对话中抽取可计算的学生状态
批改评分多模态理解 + 打分 Rubric + 一致性评分稳定性、主观题 rubric 对齐

2.3 教育场景的四道"地狱级"约束

这是我认为最值得你花时间准备的部分,因为它是"通用 LLM 工程师"和"教育 LLM 工程师"的真正差别。面试时能主动说出这些,面试官会立刻把你和背八股的人区分开。

约束一:容错率极低。 电商客服答错一句,用户顶多再问一次;AI 老师讲错一个公式,是直接的教学事故。这决定了教育 RAG 不能只做"能召回",必须做引用校验 + 拒答机制——没有证据就宁可说"这题我建议你问老师"。

约束二:内容强多模态。 题目里有公式(LaTeX)、几何图形、手写体、表格、化学结构式。普通的 recursive character splitter 会把一道题切得七零八落。文档解析(尤其是公式和图表)是教育 RAG 的第一道坎,也是面经里反复出现的"落地难点"。

约束三:query 极度口语化、歧义大。 学生不会输入"求解一元二次方程的判别式",他们会输入"这个为啥算出来是负的啊"。这要求query 改写 / 意图识别必须做强,而不能直接拿原始 query 去向量召回。

约束四:答案不能直接给。 教学场景下,直接给答案=帮学生作弊。好的教育 Agent 应该分层提示、逐步引导(scaffolding)。这是一个纯产品判断力问题,也是"从能用 to 好用"的具体体现。

面试加分句:“教育场景里,模型的’有用’和’有害’往往只差一层引导策略。所以我在设计解题 Agent 时,把’是否直接给答案’做成了可配置的策略参数,按学段和题型分流。”


3. 能力模型:一个底座 + 五根支柱

我把目标能力画成下面这张图。请把它当成你的能力体检表,每一项给自己打 0-3 分。

                            ┌──────────────────┐
                            │   底座:LLM 原理   │
                            │ Transformer/分词  │
                            │ 采样/微调/量化/推理 │
                            └────────┬─────────┘
        ┌───────────────┬────────────┼────────────┬───────────────┐
        │               │            │            │               │
   ┌────▼────┐   ┌──────▼─────┐ ┌────▼────┐ ┌────▼─────┐  ┌──────▼─────┐
   │支柱1     │   │支柱2        │ │支柱3     │ │支柱4      │  │支柱5        │
   │上下文工程│   │RAG 全链路   │ │Agent编排 │ │全栈工程   │  │评测与闭环   │
   └─────────┘   └────────────┘ └─────────┘ └──────────┘  └────────────┘
        │               │            │            │               │
        └───────────────┴────────────┴────────────┴───────────────┘
                                    │
                        ┌───────────▼───────────┐
                        │  横切:成本 / 延迟 / 稳定性  │
                        │  贯穿所有支柱,面试必考     │
                        └───────────────────────┘

3.1 底座:LLM 原理(不需要很深,但不能有洞)

必须能口述清楚:

  • Transformer 的 Encoder / Decoder 结构差异,Decoder-only 为什么成为主流
  • Q/K/V 的维度与参数量计算(面经真题:给 hidden_size 和 head 数,算 QKV 参数量)
  • 分词器:BPE 的原理、为什么中文 token 效率问题影响成本
  • 采样参数:temperature / top_p / top_k 各自的机制,以及不同场景的推荐取值(创意写作高温度、解题低温度、结构化输出趋零)
  • KV Cache 是什么,它为什么决定了长上下文的成本曲线
  • 微调谱系:Full FT → LoRA → QLoRA → P-tuning,各自的显存/效果 trade-off
  • 量化:AWQ / GPTQ / GGUF 的基本思路与适用场景
  • 推理引擎:vLLM 的 PagedAttention(这是面试高频,值得一读原文)

深度建议:这一层不需要你会手推反向传播,但必须能解释"为什么"。面试官问 LoRA,他要听的是"低秩假设 + 冻结主干 + 只训 A/B 矩阵 + 推理时可合并",不是公式。

3.2 支柱一:上下文工程(Context Engineering)

2025-2026 年最重要的一次范式转移,是从 Prompt Engineering 转向 Context Engineering。Anthropic 官方对该概念的定义是:在 LLM 推理过程中,如何筛选和维护一组最优的 token(信息)——不只是 prompt 里的,还包括工具返回、历史消息、外部数据等一切会进入上下文的东西。

核心心智模型有三层:

层次内容关键技巧
静态配置system prompt、工具定义、few-shot 例子用 XML 标签或 Markdown 标题分块;指令写在"恰当的高度"(Goldilocks 区间);工具集裁到最小可用集
运行时检索按需取数(Agentic 检索)让 Agent 持有轻量引用(文件路径、查询语句),运行时再加载;渐进式披露
长任务腾挪compaction、结构化笔记、子 Agent上下文逼近上限时高保真压缩;关键状态外置到 NOTES.md;子 Agent 隔离污染

必须掌握的三个现象与对策:

  1. Context Rot(上下文腐烂):上下文 token 增加时,模型准确召回信息的能力平滑下降而非突然失效。机制是 n 个 token 对应 n² 量级的两两注意力关系,注意力预算被稀释。Chroma 在 18 个主流模型上的系统测试证实了该趋势的普适性。
  2. Context Anxiety(上下文焦虑):模型接近窗口极限时会草草收尾、跳步骤。对策是彻底清空窗口 + 结构化交接材料,而不是带着快撑满的上下文硬走。
  3. Lost in the Middle:长上下文中位于开头和结尾的信息召回率显著高于中间部分。这直接决定了 RAG 重排后该如何摆放文档——高相关 chunk 放首尾。

Anthropic 自家 Agent 实践里可直接搬进项目的做法:CLAUDE.md 式项目记忆文件;Skill 列表最多占上下文 1%、每条描述 ≤ 250 字符(够做关键词匹配即可);system prompt 切成可缓存的固定前半 + 动态后半;大工具结果写磁盘只给文件路径;三级压缩 + 熔断器(连续失败 3 次即停)。

3.3 支柱二:RAG 全链路

这是作业帮岗位的绝对核心。请按下面这条链路准备,并确保你能画出这张图:

离线链路                                    在线链路
─────────                                  ─────────
原始文档 ──► 抓取/上传                       用户 query
   │                                            │
   ├─► OCR / 版面解析                      ┌─────▼──────┐
   ├─► 正文抽取、表格/公式解析              │ query 清洗   │
   ├─► 标题树构建(层级结构)               │ query 改写   │
   ├─► 元数据抽取(学段/学科/难度/版本)    │ 意图识别     │
   ├─► chunk 切分                          └─────┬──────┘
   └─► embedding + 倒排索引 + 向量索引            │
                                          ┌─────▼──────────┐
                                          │ 混合召回         │
                                          │ BM25 ┆ 向量 ┆ 图谱│
                                          └─────┬──────────┘
                                                │
                                     ┌──────────▼──────────┐
                                     │ 权限过滤 / 去重 / 融合│
                                     │ (RRF 或加权)          │
                                     └──────────┬──────────┘
                                                │
                                          ┌─────▼─────┐
                                          │  Rerank    │
                                          └─────┬─────┘
                                                │
                                     ┌──────────▼──────────┐
                                     │ 上下文组装(首尾摆放)  │
                                     │ + 压缩                │
                                     └──────────┬──────────┘
                                                │
                                          ┌─────▼─────┐
                                          │  LLM 生成   │
                                          └─────┬─────┘
                                                │
                                     ┌──────────▼──────────┐
                                     │ 引用校验 / 敏感过滤   │
                                     │ 结构化字段抽取        │
                                     └──────────┬──────────┘
                                                │
                                     ┌──────────▼──────────┐
                                     │ 日志 → Badcase → 回流 │
                                     └──────────────────────┘

你必须能讲清楚的七个决策点:

决策点关键问题我的建议答法
切分固定长度 vs 语义 vs 结构切分?教育场景优先结构切分(按标题树/题目/知识点),因为公式和题干不能被切断。可叠加 small-to-big(用小 chunk 检索、回原文大 chunk 生成)
Embedding用什么模型?中文效果?中文场景务必用中文优化的 embedding(bge 系列等),并自己测一组 query-doc pair 看召回率,别信排行榜
混合召回为什么不能只用向量?专有名词、系统名、缩写、公式编号,向量召回容易漏;BM25 + 向量融合是工业界标配
融合策略两路结果怎么合并?RRF(Reciprocal Rank Fusion)最省心且鲁棒;有标注数据时可用加权或学习排序
Rerank用什么?值不值?Cross-encoder(bge-reranker 类)效果最好但有延迟成本;可用小模型 rerank + 大模型生成,这是经典的成本-效果分层
拒答检索不到怎么办?必须有相似度阈值 + 拒答话术。教育场景里"体面地说不知道"比"编一个"重要一万倍
引用怎么防幻觉?强制每条结论带 chunk 引用 ID,生成后做引用校验(判断该结论是否真的被引用 chunk 支持),无引用的结论直接标黄或剔除

前沿补充(说出来的加分项):

  • Self-RAG(Asai et al., ICLR 2024):训练模型自主判断"是否需要检索"并生成 critique token,用反思控制检索时机。
  • CRAG(Corrective RAG):引入轻量检索评估器,对检索结果做置信度判定,触发"正确 / 错误 / 模糊"三路不同处理(错误时转 web 检索或知识精炼)。
  • Agentic RAG:把检索做成循环而非一次性步骤。2026 年的行业共识是——必须先埋点再上技术。一项对万级 Agent 轨迹的研究发现,强制"未读取至少一个检索文档不许 finalize"的确定性规则,能在受影响的运行上挽回 14.9–19.9 个准确率点;而给模型更大的思考预算,反而会让它在多跳数据集上的"零读取直接作答"比例上升最多 42.6 个百分点,净准确率下降。
  • 成本常识:一次 3-4 步的 Agentic 循环,token 与延迟大约是单轮 RAG 的 3–5 倍。所以生产上主流是自适应路由:用分类器把大部分简单 query 走廉价快路径,只对少数复杂 query 启用 Agent 循环。

面试金句:“Agentic RAG 不是一个开关,是六种需要分别埋点验证的纪律。我会先测 skip-read 率,再决定要不要上循环。”

3.4 支柱三:Agent 与工作流

先背下来这句最小定义(Simon Willison 的收敛版本,已被广泛接受):

An LLM agent runs tools in a loop to achieve a goal.
(LLM Agent 在循环中调用工具以达成目标)

然后分清两类东西(Anthropic 的"Building Effective Agents"给出的核心区分):

Workflow(工作流)Agent(智能体)
控制流预定义的代码路径模型自主决定下一步
可预测性高低
适用场景任务明确、步骤可枚举开放问题、步骤不可预知
建议优先用 Workflow只在必要时升级为 Agent

这个区分极其重要,因为大部分候选人的项目其实根本不需要 Agent,硬上 Agent 反而暴露工程判断力不足。面试时说"我评估过后选择了工作流而不是 Agent,因为…"是加分的。

五种经典模式(必须能画能讲):

  1. Prompt Chaining:拆成串行子任务,每步之间可加程序化检查点(gate)
  2. Routing:分类器分流到不同专用路径(成本优化的第一杠杆)
  3. Parallelization:分段(独立子任务并行)或投票(同任务多次采样聚合)
  4. Orchestrator-Workers:中央 LLM 动态分解任务、派发给 worker、再综合
  5. Evaluator-Optimizer:一个生成、一个评估,形成迭代优化循环(写作/翻译/批改场景天然适配)

工具设计三原则(Anthropic 官方,建议原文照背):

  • 工具应像优秀代码库里的函数:独立可用、错误处理优雅、用途一目了然
  • 参数描述具体无歧义
  • 最常见的失败模式是工具集臃肿、边界重叠——如果一个人类工程师都说不清该用哪个工具,就别指望模型能选对

Tool Use 协议层:

  • Function Calling:模型原生能力,输出结构化的函数调用请求
  • MCP(Model Context Protocol):把外部数据源和工具以标准协议暴露给 Agent 的开放标准。面试常问"MCP 和 Function Call 有什么区别"——答案是层次不同:Function Call 是模型输出侧的能力,MCP 是工具/数据供给侧的协议标准,解决的是 M×N 集成问题
  • A2A(Agent-to-Agent):多 Agent 间的通信协议,了解即可

记忆管理(面经高频):

短期记忆:滑动窗口(保留最近 N 轮)
          └─► 压缩:摘要 / 抽取式压缩
                 └─► 风险:压缩会丢信息 ──► 对策?
中期记忆:结构化笔记(NOTES.md / todo list),上下文外持久化
长期记忆:向量库 / 图谱 / 用户画像表,按需检索注入

"压缩会不会丢记忆,怎么解决"的标准答法见第 7 章第 17 题。

3.5 支柱四:全栈工程

这是"LLM + 全栈"里被严重低估的一半。很多人栽在这里。

后端(Python 侧):

# 一个能拿得出手的流式接口长这样(FastAPI 骨架)
from fastapi import FastAPI
from fastapi.responses import StreamingResponse
import asyncio, json, uuid

app = FastAPI()

async def token_stream(q: str, trace_id: str):
    # 1) 意图识别(小模型,快)
    intent = await classify_intent(q)
    # 2) 混合召回
    docs = await hybrid_retrieve(q, intent)        # BM25 + 向量, 并发
    # 3) Rerank(小模型)
    top = await rerank(q, docs, k=5)
    # 4) 组装上下文(高相关放首尾)+ 大模型生成
    ctx = assemble(top)
    async for delta in llm_astream(build_messages(ctx, q)):
        yield f"data: {json.dumps({'delta': delta})}\n\n"
    # 5) 生成完成后:引用校验 + 落日志(含 trace_id,供评测回流)
    yield f"data: {json.dumps({'done': True, 'trace_id': trace_id})}\n\n"

@app.post("/chat")
async def chat(req: dict):
    trace_id = str(uuid.uuid4())
    return StreamingResponse(
        token_stream(req["query"], trace_id),
        media_type="text/event-stream",
        headers={"X-Trace-Id": trace_id},
    )

要点:async(LLM 应用是 I/O 密集)→ SSE 流式 → trace_id 贯穿全链路 → 结构化输出校验。

必须会的工程件:

组件典型选型你要能回答的问题
向量库pgvector(起步)/ Milvus(规模)/ FAISS(内嵌)为什么选它?量级多大?有没有瓶颈?
关键词检索Elasticsearch输入一个 query,从分词到返回结果的完整过程(面经真题)
缓存Redis语义缓存 vs 精确缓存;雪崩/击穿/穿透(面经真题)
关系存储PostgreSQL / MySQL元数据、权限、会话、评测集
前端Next.js / React + TS(产品级);Streamlit / Gradio(原型)流式渲染、SSE/WebSocket 选型、中断生成
部署Docker + Compose / K8s镜像体积、健康检查、优雅退出

前端必须知道的三件事(ToC 产品的硬要求):

  1. 流式渲染:SSE 一行行喂给 UI,首 token 延迟(TTFT)比总延迟更影响体验
  2. 中断与重试:用户点"停止"要能真的中断生成并释放后端资源
  3. 乐观 UI / 骨架屏 / 错误态:AI 产品出错率高,错误态设计是产品力的一部分

3.6 支柱五:评测与数据闭环

这是我认为最该投入的一根支柱,因为它是差异化最大的地方。

一句残酷的实话:大多数 RAG 项目的失败不是检索失败,而是根本没有评测。 团队做了一个 Demo,看着很惊艳,没有任何回归检测机制,直到用户投诉才发现检索在相当比例的情况下是错的。

2026 年业界成熟的六类评测方法:

方法用途落地建议
Golden Dataset(黄金集)人工/半人工标注的输入-期望输出对100–500 条起步;合成 + 人工混合;包含对抗样本
LLM-as-Judge用强模型按 rubric 给弱模型打分必须在留出集上校准 judge;用明确的 rubric 而非靠 CoT 技巧;多个 judge 集成
RAGAS 四元组RAG 专用无参考评测Faithfulness / Answer Relevancy / Context Precision / Context Recall
对抗测试越狱、提示注入、数据抽取Promptfoo red-team、Garak、DeepTeam
Prompt 回归测试每次改 prompt/模型都跑一遍全量100–500 条,CI 里设回归阈值卡 merge
Agent 轨迹评测不只评最终答案,评整条执行路径工具选择准确率、分解质量、循环终止率、P50/P90/P99 延迟

RAGAS 四个指标的确切含义(面试常考,务必背准):

  • Faithfulness(忠实度):回答中的每一个事实主张,是否都被检索到的上下文支持?→ 抓的是"幻觉"
  • Answer Relevancy(答案相关性):回答是否真正回应了提问?→ 忠实度高但相关性低 = 召回了准确但跑题的内容
  • Context Precision(上下文精确率):召回的 chunk 中有多少比例是真正相关的?→ 低了说明召回在灌噪声
  • Context Recall(上下文召回率):回答问题所需的信息是否都被召回了?→ 低了说明漏召

这四个指标的价值在于不需要人工标注参考答案,因此在日处理数万条 query 的生产系统里才跑得动。

评测者悖论(Evaluator Paradox):用 LLM 评 LLM。标准缓解手段是三条——冻结不动的黄金集、集成评分而非单一 judge、周期性人工抽检。

数据闭环(面试必讲):

线上日志 ──► 低分样本挖掘 ──► Badcase 人工归因 ──► 分类打标
    │                                                  │
    │                                    ┌─────────────▼─────────────┐
    │                                    │ 归因到具体环节:            │
    │                                    │ 解析错 / 切分错 / 召回错    │
    │                                    │ / 重排错 / 生成错 / 拒答过严│
    │                                    └─────────────┬─────────────┘
    │                                                  │
    └──► 回流:进评测集(防回归) ◄──────────────────────┘
         进训练集(SFT/DPO 数据)

“线上 badcase 会回流到评测集和训练集里,不会只改 prompt” —— 这句话是从公开的高分面经里摘出来的,它几乎就是面试官想听的标准答案。

3.7 横切:成本 / 延迟 / 稳定性

三个必背的数字与方法:

  • 成本分层:意图分类用小模型、rerank 用小模型、只有最终生成用大模型。这是最立竿见影的成本杠杆
  • Prompt Caching:把 system prompt / 长文档前缀固定住,命中缓存部分按折扣价计费(Anthropic 的做法是把 system prompt 切成"可缓存的固定前半 + 动态后半")
  • 延迟预算:教育对话类产品的常见目标是 TTFT < 1s、P90 < 3s。P99 常常是 P50 的 5–10 倍(Agent 系统重尾),所以要盯分位数而不是均值

4. 知识体系地图(P0 / P1 / P2 分级)

优先级定义:P0 = 不会就挂;P1 = 会了加分;P2 = 用来拉开差距。

4.1 底座层

知识点级别达标标准
Transformer 结构(Encoder/Decoder/Attention/FFN/LN)P0能画结构图,能算 QKV 参数量
分词(BPE)与 token 计费P0能解释中文 token 效率对成本的影响
采样参数 temperature / top_p / top_kP0能给不同场景推荐取值并说明理由
KV Cache 与上下文成本P0能解释为什么长上下文不是"越大越好"
LoRA / QLoRA / P-tuningP0能说清低秩假设与显存 trade-off
SFT 数据构造流程P0能讲数据清洗、去偏、模板统一、配比
DPO / RLHF 基本思路P1能说清偏好数据与 reward 的关系
量化 AWQ / GPTQ / GGUFP1能说清各自适用场景
vLLM / PagedAttentionP1能解释显存碎片问题的解法
多模态(VLM)原理P2教育场景必考,能讲视觉编码器 + 投影层

4.2 上下文工程

知识点级别达标标准
System prompt 分块与"恰当高度"P0能举例说明过严/过松两种失败
Few-shot 的"多样典型"选取原则P0能解释为什么不堆边界 case
Context Rot 与 Lost in the MiddleP0能说出对策(精简 + 首尾摆放)
Compaction(压缩)P0能讲清"先最大化召回、再提升精度"的迭代法
结构化笔记 / Agentic MemoryP1能举 NOTES.md 的例子
子 Agent 隔离上下文污染P1能讲清何时用子 Agent
渐进式披露(Progressive Disclosure)P2能讲 Skill 列表上限 1% 的设计逻辑

4.3 RAG 全链路

知识点级别达标标准
文档解析(OCR/版面/表格/公式)P0教育场景第一道坎,必须有方案
Chunk 策略(固定/语义/结构/small-to-big)P0能按场景选型
Embedding 模型选型与自测P0能说"我自己测过召回率"
混合检索 BM25 + 向量P0能解释为什么向量不够
结果融合 RRFP0能口述 RRF 公式思想
Rerank(Cross-encoder / LLM rerank)P0能讲成本-效果分层
上下文组装与摆放顺序P1结合 Lost in the Middle
拒答阈值与引用校验P0教育场景刚需
Hybrid(RAG + Long Context)路由P1能讲何时该用长上下文
Self-RAG / CRAG / Agentic RAGP2能说出适用边界与代价
GraphRAGP2了解优势与"静态图谬误"

4.4 Agent 与工作流

知识点级别达标标准
Workflow vs Agent 的区分P0能说明自己为何选 Workflow
五种编排模式P0能画图 + 各举一个业务例
Function Calling 机制P0能讲清结构化输出与执行循环
工具设计三原则P0能背 + 能举反例
MCP 与 Function Call 的区别P1层次不同,M×N 集成问题
状态机编排(LangGraph)P1能讲节点/边/条件边/checkpoint
记忆分层(短/中/长)P0见第 7 章第 17 题
Human-in-the-loop 审批门P1能说明哪些动作必须人工确认
循环预算与熔断P1能给出 step cap 的经验值(10 步)
Multi-Agent 与 A2AP2了解即可

4.5 全栈工程

知识点级别达标标准
Python async / typing / 测试P0LLM 应用 I/O 密集,async 是基本功
FastAPI + SSE 流式P0能写出上面的骨架
Next.js / React + TS(或等价前端)P0(全栈岗)/ P1(算法岗)能做流式渲染与中断
Redis 缓存三问题(雪崩/击穿/穿透)P0面经真题,见第 7 章
Elasticsearch 检索全流程P0面经真题,见第 7 章
布隆过滤器P0面经真题,见第 7 章
pgvector / Milvus / FAISSP1至少精通一个
Docker + 云部署P1能把项目真的部署上线
可观测性(Langfuse / LangSmith / 自建 trace)P1能画出 trace 树
网关与多模型路由P2了解 LiteLLM 一类方案

4.6 评测与闭环

知识点级别达标标准
黄金集构建(100–500 条)P0能说清覆盖分布与对抗样本
RAGAS 四指标P0能背定义 + 能定位问题环节
LLM-as-Judge 校准P0能说出三条缓解措施
Prompt 回归 + CI 阈值门P1能讲怎么卡 merge
Agent 轨迹评测P1能讲工具选择准确率
分位数延迟监控 P50/P90/P99P1能解释重尾
教育场景指标体系设计P0见第 7 章第 5 题
数据闭环与 Badcase 归因P0能画出闭环图

5. 90 天作战计划:用产出物换面试资格

原则:产出物 > 课程证书。招聘方读的是 GitHub 和可点开的链接,证书最多是同分时的 tie-breaker。

5.1 总表

阶段时间核心目标唯一交付物
Phase 1:打地基Day 1–20打通 LLM 原生 API,理解框架在封装什么一个不用任何框架的命令行 RAG(Python + pgvector)
Phase 2:做深Day 21–45建评测、做优化,让指标真的动起来+ 100 题评测集 + 优化前后对比报告
Phase 3:做全Day 46–70加 Agent、加前端、加流式、上线+ Web UI + 一个工具调用 Agent(带审批门)
Phase 4:做响Day 71–90把做过的事变成可被发现的证据README(当产品页写)+ 2–3 篇技术文章 + 演示视频

5.2 Phase 1(Day 1–20):原生 API 优先

为什么强调"不用框架":先用框架学 RAG,会造出"无法调试自己技术栈"的工程师。先裸写一遍,你才知道框架替你做了什么、什么时候该绕过它。

  • 通读一家厂商 API 文档(Anthropic 或 OpenAI),跑通 chat / streaming / tool use / structured output
  • 裸写一个 RAG:切分 → embedding → pgvector → 检索 → 合成
  • 语料选你真正熟悉的(教材 / 题库 / 课程笔记),因为你要能判断答案对错
  • 产出:可交互 CLI,回答带引用

5.3 Phase 2(Day 21–45):让指标动起来

这是决定面试分层的一步,而绝大多数人不会做。

  • 建 100 题评测集:答案人工确认,按难度/题型分层(单跳 / 多跳 / 拒答 / 对抗)
  • 跑基线,记录 Context Recall / Precision、Faithfulness、Answer Relevancy、TTFT、单次成本
  • 逐项改进,每次只改一个变量:切分策略 → BM25 混合 + RRF → Rerank → 摆放顺序 → 拒答阈值
  • 把失败也写下来——失败复盘是面试金矿

交付物就是一张表:

版本改动Recall@5Faithfulness拒答率P90单次成本
v0基线(固定 512 切分 + 纯向量)0.610.720%2.1s¥0.021
v1+ 结构切分0.680.740%2.0s¥0.020
v2+ BM25 混合 & RRF0.790.760%2.3s¥0.022
v3+ Rerank(小模型)0.850.830%2.6s¥0.025
v4+ 拒答阈值0.850.917%2.6s¥0.024

这张表就是你的 offer。

5.4 Phase 3(Day 46–70):做到能上线

  • FastAPI 化,SSE 流式,trace_id 贯穿
  • 前端:能打字、能流式出字、能中断、能点开引用看原文
  • 加一个工具调用 Agent(如"根据错题自动生成同类练习并写入题库"),带人工审批门
  • 加可观测:每次请求记录 token、耗时、召回 ID、评分,能画出 trace 树
  • 加缓存(精确 + 语义)与降级策略(大模型超时切小模型)
  • Docker 化,真的部署到公网(免费额度足够)

5.5 Phase 4(Day 71–90):让证据被看见

  • README 当产品页写:一句话定位 → 演示 GIF → 架构图 → 评测表 → 我学到的三件事
  • 写 2–3 篇技术文章,主题固定为"我测量到了什么、什么让我意外"
  • 录 3 分钟演示视频
  • 简历写法:RAG 系统(已上线)· 评测集 100 题 · Recall@5 0.61→0.85 · Faithfulness 0.72→0.91 · P90 2.6s

一句话原则:Shipped and slightly ugly beats local and perfect.(上线且略丑,胜过本地且完美)


6. 三个能打的项目:架构、指标与答辩脚本

设计原则:对齐教育场景(作业帮的业务)、能讲清取舍(面试官问的是 why 不是 what)、有数字(没数字就是没做)。

项目 A:K12 解题 RAG 系统(最推荐,命中率最高)

一句话定位:面向初中数学/物理题目的检索增强解题助手,支持公式与图形解析,拒绝无依据作答。

架构要点:

┌─────────────── 离线 ───────────────┐
 题目 PDF/图片
   │
   ├─ OCR + 公式识别(LaTeX)
   ├─ 结构化:题干 / 选项 / 解析 / 知识点标签 / 难度 / 学段
   ├─ 按"题"为最小单位切分(不可切断!)
   ├─ 双层索引:BM25(题干文本) + 向量(题干+知识点)
   └─ 元数据表:PostgreSQL
┌─────────────── 在线 ───────────────┐
 学生 query(口语化)
   │
   ├─ 意图识别:直接解题 / 追问 / 知识点讲解 / 同类题推荐
   ├─ Query 改写:口语 → 规范化学科表述(小模型)
   ├─ 混合召回 → RRF 融合 → Rerank(top5)
   ├─ 组装:最相关放首/尾 + 知识点约束
   ├─ 生成:**分层提示策略**(先提示 → 再给思路 → 最后给答案)
   └─ 校验:引用校验 + 数值一致性校验(答案回代验算)

三个让人眼前一亮的设计:

  1. 以"题"为原子切分单位。教育语料的语义完整性要求远高于普通文档,一道题被切开就是废数据。
  2. 数值一致性校验:生成答案后,用代码执行/符号计算回代验证(比如解方程结果代回原方程)。这是教育场景独有的、极高价值的后处理。
  3. 分层提示策略(scaffolding):把"是否直接给答案"做成按学段/题型可配的策略参数,并做了一个"追问次数"信号——追问 3 次以上才给完整解析。

量化指标:Recall@5、Faithfulness、答案正确率(人工抽 100 题)、拒答率、TTFT、单次成本、“引导后自行解出率”(教学有效性指标)。

答辩脚本(90 秒版本):

“我做的是一个初中数学解题 RAG。最初版本就是把题库切块向量化,Recall@5 只有 0.61,而且经常把一道题的题干和解析切到两个 chunk 里,导致答案张冠李戴。我做的第一个改动是把切分单位从固定 512 字符改成以题为单位的结构切分,Recall 涨到 0.68。第二个改动是加 BM25 混合召回——因为学生 query 里大量是口语,纯向量召回经常漏掉含专有名词的题目,加 RRF 融合后到 0.79。第三个是加小模型 rerank,到 0.85。但我发现 Faithfulness 还是只有 0.83,归因后发现是模型在检索不到时会编,于是加了相似度阈值 + 拒答,Faithfulness 提到 0.91,代价是 7% 的拒答率——这个 trade-off 在教育场景我是接受的,因为讲错一道题比说’这题我不确定’严重得多。最后我加了数值回代校验,把计算类错误的检出率做到 X%。整个过程的 badcase 我都回流进了评测集。”

项目 B:陪伴式辅导 Agent(体现 Agent 编排与记忆)

一句话定位:一个能记住学生薄弱知识点、按苏格拉底式提问引导解题的长期伴学 Agent。

架构要点:

                 ┌──────────────────────────┐
                 │      Router(小模型)      │
                 │  新题 / 追问 / 情绪 / 闲聊 │
                 └────────────┬─────────────┘
          ┌───────────────────┼───────────────────┐
          ▼                   ▼                   ▼
   ┌────────────┐     ┌──────────────┐    ┌────────────┐
   │ 解题 Workflow│     │ 学情更新(工具)│    │ 情绪安抚    │
   │ 检索→引导→验证│     │ 写画像表      │    │ 直接回复    │
   └─────┬──────┘     └──────┬───────┘    └────────────┘
         │                    │
         └────────► Evaluator-Optimizer 循环 ◄────┘
                    (生成 → 评估引导质量 → 迭代)
                              │
                    ┌─────────▼──────────┐
                    │ Human-in-the-loop   │
                    │ 写库/推送需审批      │
                    └────────────────────┘

记忆:
  短期 = 滑动窗口(最近 6 轮) + 压缩摘要
  中期 = session 级 NOTES.md(本轮已讲过什么、学生卡在哪)
  长期 = 知识点掌握度画像表(SQL)+ 错题本(向量库)

三个亮点:

  1. Router 前置:把大部分请求分流到廉价快路径,只有真正需要多步推理的才走 Agent 循环——这是成本控制的正确答案。
  2. 记忆三层 + 压缩丢信息的对策:压缩后保留"学生在哪个知识点卡住、已提示过几次、用过的引导策略"这三个结构化字段,而不是自由文本摘要。结构化字段不会被摘要丢失。
  3. Evaluator-Optimizer:生成一个引导回复后,用 eval 模型判断是否"直接泄露了答案 / 是否太难 / 是否重复",不合格就重写一次,最多 2 轮。

量化指标:工具选择准确率、循环终止率、多轮一致性(10 轮后是否还记得薄弱点)、P50/P90/P99 延迟、单次会话成本、教学有效性(人工评分)。

项目 C:LLM 评测平台(差异化最大的一个)

这个项目在候选人里非常罕见,但它的命中率极高——因为"量化评测体系"直接写在 JD 里。

一句话定位:一个面向 LLM 应用的自动化评测与回归平台。

功能清单:

  • 评测集管理(版本化、分层标签、对抗集)
  • 三类评测器:规则评测(正则/JSON Schema/数值校验)、RAGAS 类指标、LLM-as-Judge(多 judge 集成)
  • Judge 校准模块:在留出集上算 judge 与人工的一致性(Cohen’s kappa),不达标报警
  • CI 集成:每次改 prompt/模型自动跑全量,指标低于阈值则卡 merge
  • Badcase 看板:低分样本 + trace 回放 + 归因打标(解析/切分/召回/重排/生成/拒答)
  • 成本与延迟看板:P50/P90/P99 + 单次成本趋势

为什么这个项目值钱:它证明你不只是"会做 AI 应用",而是理解 AI 应用如何被持续运维。这是初级候选人里极稀缺的视角。


7. 面试真题拆解:30 题的高分答法骨架

以下题目全部来自公开的作业帮面经(大模型算法、大模型应用开发、NLP 算法、秋招通用面),我按模块归类,每题给出「出题人意图 + 答法骨架 + 加分点」。

7.1 项目深挖类(决定生死)

Q1:挑一个你做得最完整、个人成长最多的项目,讲讲背景、目标、方案和效果。

  • 意图:这是整场面试的锚点。后面 80% 的问题会从你的回答里长出来。你主动抛出的每个技术词,都是面试官的子弹——所以只抛你真懂的。
  • 骨架:背景(一句话说清业务痛点)→ 目标(可量化)→ 方案(画链路图)→ 你的具体贡献(“我负责 X,不是我们”)→ 效果(数字)→ 复盘(哪里做错了,下次怎么做)
  • 加分:主动说"这个项目提升最大的不是换模型,而是把检索、证据约束和数据闭环做扎实"。

Q2:做这个项目具体用了哪些方案或手段达成目标?

  • 骨架:分层回答——文档侧(结构化解析、保留标题层级/元数据/权限标签)→ 检索侧(BM25 + 向量融合,说明为什么)→ 生成侧(强制基于证据、不许编造)→ 训练侧(意图分类用弱标签 + 人工抽检;SFT 样本用高质量问答 + 证据片段构造)→ 闭环(badcase 回流到评测集和训练集)
  • 加分:“线上 badcase 会回流到评测集和训练集里,不会只改 prompt。”

Q3:整个系统的技术链路是怎样的?

  • 骨架:分离线链路和在线链路两条讲。离线 = 抓取 → OCR → 正文抽取 → 表格解析 → 标题树 → chunk → embedding → 倒排 + 向量索引。在线 = query 清洗 → 意图识别 → 按意图分流检索策略 → 权限过滤 → 去重 → rerank → 上下文压缩 → 生成 → 引用校验/字段抽取 → 日志回流。
  • 加分:说出具体存储分工(原始文档 → 对象存储;结构化文本与元数据 → PostgreSQL;向量 → Milvus;缓存 → Redis;全文 → ES),并说明为什么不用一个库。

Q4:系统的数据都存在哪些地方?

  • 骨架:按"数据形态"分而不是按"数据库"分:原始文件(对象存储,保留版本可回溯)、解析后结构化文本与元数据(关系库)、向量(向量库)、倒排(ES)、会话状态(Redis)、日志与评测集(关系库 + 数仓)。
  • 加分:提到权限标签必须跟着 chunk 走,否则检索会跨权限泄漏——这是 ToB/教育场景的真实风险。

7.2 RAG 专项

Q5:RAG 的准确率、召回率有没有做过评测?

  • 意图:这一题是分水岭。答"没有"基本宣告出局。
  • 骨架:直接报四个指标的定义与你的数值——Context Precision(召回的相关比例)、Context Recall(该召回的是否召回)、Faithfulness(答案是否被上下文支持)、Answer Relevancy(是否回应提问)。然后说**无参考(reference-free)**是关键,因为生产上不可能人工标注每条答案。
  • 加分:补一句"我还用 Cohen’s kappa 在留出集上校准过 LLM judge 与人工的一致性"。

Q6:RAG 是多路检索吗?单路能不能做?

  • 骨架:单路能做,且在单文档查找、小语料、延迟敏感场景是更优解(成本差 3–5 倍)。但多路在三类情况必需:①专有名词/缩写/编号密集(向量易漏);②同义表述差异大(BM25 易漏);③跨库(结构化 + 非结构化)。我的做法是先单路跑基线,看 badcase 归因,再决定要不要加路。
  • 加分:不要上来就说"多路更好"。先测量再上技术是 2026 年的正确叙事。

Q7:两路检索的召回结果怎么融合?

  • 骨架:首选 RRF(Reciprocal Rank Fusion)——按排名倒数加权求和,不需要归一化分数,对两路量纲不敏感,鲁棒性最好。公式:score(d) = Σ 1/(k + rank_i(d)),k 常取 60。有标注数据时可升级为加权融合或学习排序(LTR)。
  • 加分:提到"融合后要做去重和多样性控制,否则 top-k 全是同一文档的相邻 chunk"。

Q8:Rerank 用什么模型?模型选型一般有哪些考量?

  • 骨架:选型考量四要素——效果(在你的评测集上的分数)、延迟(rerank 在关键路径上)、成本(单次调用 × QPS)、可控性(能否私有化/微调)。实践上常用小 cross-encoder(bge-reranker 类)做 rerank,大模型只做最终生成。
  • 加分:“我会先测:把 rerank 换成更大模型,Faithfulness 涨多少、P90 涨多少,算单位收益。”,另外提到数据合规(教育数据能否出网)。

Q9:RAG 在教育场景的落地难点是什么?

  • 骨架:四条——①知识专业性强、知识点关联复杂,检索易不准;②题目/公式/图表等多模态结构化提取难;③学生提问口语化、歧义多;④准确性要求极高,不能容忍幻觉。
  • 加分:补"答案不能直接给"的教学约束,这是教育场景独有的。

Q10:怎么规避大模型的幻觉?

  • 骨架:分层防御——输入层(检索质量、拒答阈值)、提示层(强制基于证据、无证据必须声明)、结构层(要求带 chunk 引用 ID)、校验层(生成后做引用校验/NLI 判断/数值回代)、闭环层(badcase 回流)。
  • 加分:提到 Agentic RAG 带来的新型失败——合成幻觉(把两条不相关的召回拼出一个两条都不支持的论断),对策是逐条主张强制归因到具体 chunk。

Q11:微调和 RAG 的优劣势怎么选?

  • 骨架:RAG 解决知识(时效、私有、可溯源、可热更新);微调解决行为(格式、风格、任务范式、领域术语)。RAG 成本低、可解释、易回滚;微调成本高、不透明、知识更新要重训。
  • 加分:给出决策规则——先穷尽 RAG 和 prompting,再考虑微调;微调的真实动机通常是降本(把大模型的行为蒸馏到小模型)或极致的格式稳定性。

7.3 Agent 与记忆

Q12:介绍一下你的 Agent 项目,长短期记忆怎么做的?

  • 骨架:三层——短期(滑动窗口 + 压缩)、中期(结构化笔记,上下文外持久化)、长期(向量库/画像表,按需注入)。
  • 加分:讲清"什么时候写、什么时候读、由谁决定"。

Q13:会话记忆用了滑动窗口 + 压缩,压缩会不会丢记忆?怎么解决?

  • 意图:这是真实面经题,非常高频。答不出"会丢"或者答不出对策,都不及格。
  • 骨架:会丢。三条对策——①结构化字段优先:压缩时不是生成自由文本摘要,而是抽取固定 schema 的字段(学生薄弱知识点、已提示次数、用过的策略、未解决问题),结构化字段不会被摘要抹掉;②分层压缩:最近 N 轮保留原文,更早的只保留结构化摘要;③可回查:原始对话落库,摘要里保留指针(session_id + 轮次区间),需要时能按指针捞回原文;④关键决策双写:重要结论同时写入长期记忆表,不依赖压缩链路。
  • 加分:提到 Anthropic 的 compaction 实践——先在复杂 trace 上以最大化召回为目标调 prompt,再迭代提升 precision;以及"上下文焦虑"(模型接近窗口上限会跳步骤),对策是彻底清空窗口 + 交接材料而非硬撑。

Q14:Agent 的主要模块有哪些?

  • 骨架:感知(输入解析/意图路由)→ 规划(任务分解)→ 记忆(短/中/长)→ 工具(调用执行)→ 反思(评估与自我修正)→ 终止(停止条件与预算)。
  • 加分:补"可观测"——每个模块都要打点,否则线上出了问题无法归因。

Q15:怎么提高 Agent 的效果?最大的难题是什么?

  • 骨架:先归因再优化——把失败拆成"工具选错 / 参数传错 / 检索不到 / 推理错误 / 循环不收敛"五类,统计各自占比,再对症下药。常见有效手段:工具集裁剪(去重、消歧义)、给工具加更具体的参数描述、加确定性闸门(如"未读取不得 finalize")、设 step cap(经验值 10 步)、把簿记工作交给小模型。
  • 加分:引用那条万级轨迹研究的发现——更大的思考预算反而让模型更自信地跳过证据,导致"零读取直接作答"比例上升。所以"多想"不等于"更好"。

Q16:有没有做过 Agent 评测?

  • 骨架:轨迹评测而非只评最终答案。指标包括——工具选择准确率(对/错工具 + 参数正确率)、分解质量(子问题是否覆盖全部答案范围)、循环终止率(到 MAX_ITER 未收敛的比例)、端到端延迟分位数、每步成本。
  • 加分:“评考试不能只看总分,要看每一行的解题过程。”

Q17:Function Call 是怎么训练的?MCP 和 Function Call 有什么区别?

  • 骨架:Function Call 训练 = 构造"对话 + 可用工具 schema + 正确的函数调用 JSON"的监督数据,让模型学会在何时、以何种参数发起调用,并把调用结果接回上下文继续推理。MCP 是协议层:把工具与数据源以统一标准暴露给 Agent,解决 M 个 Agent × N 个工具 的集成爆炸。一个是模型能力,一个是供给标准,层次不同、互补。
  • 加分:引用 Toolformer 的思路——模型可以自学"什么时候该调用什么 API"。

7.4 模型与训练

Q18:SFT 的核心流程、数据构造要点?

  • 骨架:流程 = 数据准备 → 基座选择 → 微调策略(LoRA / 全参)→ 训练配置 → 评估 → 部署。数据要点 = 质量 > 数量、去偏(去除长度/格式/来源偏差)、模板统一、多样性、配比(通用能力防遗忘)、要有验证集且验证集与训练集的难度分布一致。
  • 加分:“我做过数据配比的消融——纯领域数据会让通用能力掉 X 个点,掺入 20% 通用数据后恢复到 Y。”

Q19:LoRA / P-tuning 了解吗?

  • 骨架:LoRA = 低秩假设,冻结主干,只在注意力层旁挂 A(r×d)、B(d×r) 两个低秩矩阵,只训这两个,显存大幅下降,推理时可合并回原权重、零额外延迟。P-tuning v2 是加可学习的连续 prompt 向量。QLoRA = LoRA + 4bit 量化基座。
  • 加分:说清 rank 的选择经验(8/16/32 怎么选)与 target modules 的选择。

Q20:CoT(思维链)的原理、价值与优化方法?

  • 骨架:原理 = 让模型输出中间推理步骤而非直接给结果,把一次困难的多步推理拆成多次简单的单步推理。教育场景价值 = 可解释性本身就是产品价值(学生要看的是思路不是答案)。优化方法 = 自洽性(self-consistency,多次采样投票)、思维链蒸馏、结合工具调用(把计算外包给代码)、更长的推理预算。
  • 加分:提到"更长的推理预算在 Agentic RAG 里可能有反效果",显示你知道边界。

Q21:Prompt ReAct 是什么?怎么实现的?

  • 骨架:ReAct = Reasoning + Acting 交错。让模型循环输出 Thought → Action → Observation,把推理轨迹和外部工具返回交替写入上下文,直到给出答案。实现上就是:一个循环 + 解析模型输出中的 action + 执行工具 + 把 observation 追加回消息列表 + 达到终止条件退出。
  • 加分:知道 ReAct 的原始论文(Yao et al., ICLR 2023)与它相比纯 CoT 的收益来源(可纠正的事实性)。

Q22:BERT 的预训练任务与设计思路?

  • 骨架:MLM(掩码语言模型)+ NSP(下一句预测)。设计思路 = 用双向 Transformer Encoder 同时利用左右上下文,解决 GPT 类单向建模的问题。Q/K/V 参数量:W_Q, W_K, W_V ∈ R^{d×d},各 d²(含偏置则 d²+d),加上输出投影 d²,每层注意力共 4d²;FFN 是 2 × d × 4d = 8d²。
  • 加分:能现场算数,并说明 multi-head 只是把 d 切成 h 份,总参数量不变。

Q23:从大模型切到小模型主要是为了响应时长吗?实际效果对比怎么样?

  • 意图:真实面经题。考的是你有没有真的做过权衡,而不是跟风。
  • 骨架:动机通常有三个——延迟、成本、可控性(私有化/合规)。效果对比必须分任务报:在意图分类、query 改写、rerank 这类窄任务上,微调后的小模型往往能追平甚至超过通用大模型;但在开放式讲解、多步推理上差距明显。所以正确做法是任务级路由:窄任务用小的,难任务用大的。
  • 加分:给出对比数字(“意图分类准确率大模型 0.93 vs 蒸馏小模型 0.91,但延迟从 800ms 降到 90ms,成本降 90%,我选了小模型”)。

7.5 工程八股(全栈岗必考,算法岗也常考)

Q24:缓存雪崩、缓存击穿、缓存穿透的区别与应对?

问题现象对策
雪崩大批 key 同时过期,请求全打到 DB过期时间加随机抖动;多级缓存;预热;熔断降级
击穿单个热点 key 过期,瞬间高并发打穿互斥锁重建;逻辑过期(永不过期 + 异步刷新)
穿透查询根本不存在的数据,缓存永不命中布隆过滤器;缓存空值(短 TTL);参数校验

Q25:布隆过滤器判断存在和不存在分别是什么业务逻辑?底层数据结构?

  • 骨架:底层 = 一个很长的 bit 数组 + k 个独立哈希函数。写入时把 k 个位置置 1;查询时 k 个位置全为 1 则"可能存在",任一为 0 则"一定不存在"。所以业务上:判定"不存在" → 直接返回,绝对可信;判定"存在" → 还要再查一次真实存储(有假阳性)。不支持删除(除非用 Counting Bloom Filter)。
  • 加分:在 LLM 应用里的用法——语义缓存前置的精确去重、以及防止恶意构造不存在的 query 打穿检索层。

Q26:短链接生成时哈希冲突怎么处理?

  • 骨架:①在原始长链后拼随机盐/自增 ID 再哈希,降低碰撞概率;②哈希后查库,冲突则追加 salt 重算(开放寻址思路);③完全绕开哈希:用发号器(Snowflake / DB 自增)生成全局唯一 ID,再 base62 编码成短码——这是工业界主流,天然无冲突。
  • 加分:base62 编码 + 分库分表下的发号器设计。

Q27:输入 ES 一个 query,从输入到返回中间发生了什么?

  • 骨架:客户端 → 协调节点 → 根据 routing 定位分片 → 各分片本地执行:先查 index/倒排表(term → posting list)→ 用 skip list / FST 加速 → 取交集/并集 → 算 BM25 打分 → 取 top-N → 各分片结果回协调节点 → 全局排序、聚合、fetch 原文 → 返回。
  • 加分:说清 query phase 与 fetch phase 两阶段、分词器与分析链(character filter → tokenizer → token filter)对召回的直接影响(这直接关联你 RAG 里的 BM25 调优)。

Q28:三数之和 / 字符串转 IP / 最大的 K 个数(手撕)

  • 这三类是作业帮面经里出现过的原题。必须能白板写出无 bug 版本,重点是边界处理(去重、前导零、快排分区的边界)。建议用目标语言刷 3 遍以上,做到肌肉记忆。

7.6 开放题

Q29:为什么推荐使用 RAG?

  • 骨架:四条——①知识时效(训练数据的截止日问题);②私有知识(企业/题库数据不在模型里);③可溯源(每条结论有出处,教育/医疗/法务刚需);④成本(更新知识只需重建索引,不需重训)。
  • 加分:补边界——长上下文模型没有消灭 RAG,2026 年的生产主流是混合式:检索负责缩小语料,长窗口负责在缩小后的集合上推理。

Q30:你怎么看待当下 LLM 应用的趋势?你的职业规划?

  • 骨架:三个观察——①重心从"训练模型"转向"把模型接进系统"(Context Engineering 取代 Prompt Engineering);②竞争壁垒从"用了什么模型"转向"有没有评测闭环和数据飞轮";③Agent 从"能跑 demo"转向"能可靠地长时间运行"(记忆、压缩、熔断、可观测)。规划上,把自己定位成"能把 AI 能力工程化落地的人",而不是"追新模型的人"。
  • 加分:结合教育——“我认为教育 AI 的下半场不在模型能力,而在教学策略的工程化:怎么把’好的老师怎么教’变成可配置、可评测、可迭代的系统。”

8. 十大致命坑:我见过太多人栽在这里

坑 1:只做 Demo,不上线。
"我在本地跑通了"在 2026 年不是成果。找一个免费额度,把它部署到公网,让别人能点开。上线会逼你处理超时、并发、异常、成本,这些恰恰是面试官要听的东西。

坑 2:项目没有数字。
“效果还不错”“提升明显”= 没做。哪怕评测集只有 50 题,也要有前后对比表。数字是候选人与候选人的分界线。

坑 3:先学框架,再学 API。
用 LangChain 学 RAG,会造出无法调试自己技术栈的工程师。正确顺序:裸 API → 理解封装 → 用框架 → 必要时绕过框架。

坑 4:把所有技术都堆上。
向量库 + 图谱 + Agent + 多 Agent + 微调全堆上去,看起来很炫,但说不清哪个改动带来了多少收益。面试官宁可听"我加了 BM25,Recall 从 0.68 到 0.79",也不听"我用了 12 个组件"。

坑 5:把八股丢了。
LLM 应用岗确实八股少了,但绝不是没有。缓存三问题、ES 检索流程、布隆过滤器、手撕算法,都在真实面经里出现过。挂在八股上的候选人,每年都有。

坑 6:硬上 Agent。
大部分业务问题用 Workflow 就能解决,而且更可控、更便宜。能说出"我评估过,这里不该用 Agent"的人,比上来就上 Agent 的人值钱。

坑 7:不说失败。
只讲成功经验的候选人可疑。讲一个你踩过的坑、以及你怎么定位它的,可信度立刻翻倍。把失败复盘写进 README。

坑 8:简历吹过头。
简历可以让 AI 润色,但必须自己逐条核对——"熟悉"和"了解"的差别,三分钟内就会被问穿。被戳穿一次的代价远大于少写一个技能。

坑 9:只准备"AI 的部分"。
"LLM + 全栈"里,全栈是很多人放弃的一半,也恰恰是差异化的一半。面试里问 ES、问缓存、问流式、问前端,答不上来会非常伤。

坑 10:不研究公司的业务。
面试官问"你怎么看教育场景的难点",你答的是通用 LLM 的通用难点,那就说明你海投了。花两小时研究银河大模型、作业帮的产品线、教育场景的四道约束,回报率极高。


9. 简历与自我介绍:把同样的经历讲出 2 倍价值

9.1 项目描述的写法

❌ 常见写法(无效):

负责 RAG 系统的设计与开发,使用 LangChain、Milvus、FastAPI 等技术,实现了智能问答功能,效果良好。

✅ 高转化写法:

K12 解题 RAG 系统(独立完成,已部署上线)

  • 面向初中数学题库构建检索增强解题助手,支持公式解析与分层提示引导
  • 以"题"为原子切分单位 + BM25/向量混合召回 + RRF 融合 + 小模型 Rerank
  • 自建 100 题分层评测集(含拒答集与对抗集),Recall@5 0.61 → 0.85,Faithfulness 0.72 → 0.91
  • 引入引用校验与数值回代校验,计算类错误检出率 X%;拒答率 7%(主动 trade-off)
  • 技术栈:Python / FastAPI(SSE 流式) / pgvector / Elasticsearch / Next.js / Docker
  • 线上 badcase 全量回流评测集,形成"归因 → 修复 → 回归"闭环

差别在哪? 数字、取舍、边界、闭环。四样齐了,这段经历就是可追问的、可信的、可量化的。

9.2 自我介绍(60 秒版本)

"面试官好,我是 XX,XX 大学 XX 专业 27 届。我的方向是大模型应用工程,简单说就是三件事:把检索做准、把 Agent 做稳、把效果量化。

过去 X 个月我独立做过一个 K12 解题 RAG 系统,已经部署上线。最有价值的部分不是搭起链路,而是建了评测集之后做的那轮优化——我发现原始方案 Recall@5 只有 0.61,通过结构切分、混合召回、Rerank 和拒答机制,一步步做到 0.85,每一步都有数字记录。

工程上我前后端都能写,Python/FastAPI 做流式后端,TypeScript/Next.js 做前端,Docker 部署。我比较在意的一点是成本和延迟——我会把意图识别和 Rerank 用小模型,只有最终生成用大模型。

我对作业帮这个岗位特别感兴趣的原因是:教育场景是我认为对准确性要求最高、也最有社会价值的 LLM 落地场景之一,讲错一道题的代价远大于答错一个闲聊。我很想参与把大模型真正变成’好老师’这件事。"

这段自我介绍藏了五个钩子,每一个都是面试官大概率会追问的点:评测集、拒答机制、流式、小模型分层、教育场景的准确性。你主动选择战场,而不是被动挨打。

9.3 反问环节(别浪费)

问这几个,都能体现你的段位:

  • “团队现在 RAG 链路里,badcase 归因主要卡在哪个环节?”
  • “教育场景的效果评测,是人工为主还是有自动化的 pipeline?”
  • “从模型能力到产品体验之间,团队目前最大的瓶颈是延迟、成本,还是效果稳定性?”

10. 资源索引:论文 / 官方文档 / 开源项目

10.1 必读论文(按优先级)

基础(P0)

  1. Vaswani et al., Attention Is All You Need, NeurIPS 2017 — Transformer 的起点
  2. Wei et al., Chain-of-Thought Prompting Elicits Reasoning in Large Language Models, NeurIPS 2022 — CoT
  3. Lewis et al., Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks, NeurIPS 2020 — RAG 的开山之作
  4. Hu et al., LoRA: Low-Rank Adaptation of Large Language Models, ICLR 2022 — 参数高效微调
  5. Liu et al., Lost in the Middle: How Language Models Use Long Contexts, TACL 2024 — 长上下文的位置偏差,直接影响你怎么摆放 chunk

进阶(P1)
6. Yao et al., ReAct: Synergizing Reasoning and Acting in Language Models, ICLR 2023 — Agent 的奠基范式
7. Schick et al., Toolformer: Language Models Can Teach Themselves to Use Tools, NeurIPS 2023 — 工具调用的自主学习
8. Rafailov et al., Direct Preference Optimization, NeurIPS 2023 — DPO
9. Es et al., RAGAS: Automated Evaluation of Retrieval Augmented Generation, 2023 — RAG 评测四指标
10. Zheng et al., Judging LLM-as-a-Judge with MT-Bench and Chatbot Arena, NeurIPS 2023 — LLM 评测的偏见与缓解
11. Kwon et al., Efficient Memory Management for LLM Serving with PagedAttention, SOSP 2023 — vLLM 的核心

前沿(P2)
12. Asai et al., Self-RAG: Learning to Retrieve, Generate, and Critique, ICLR 2024 — 自适应检索与自我批判
13. Yan et al., Corrective Retrieval Augmented Generation (CRAG), 2024 — 检索质量评估与纠正
14. Khattab et al., DSPy: Compiling Declarative Language Model Calls into Self-Improving Pipelines, 2023 — 把 prompt 变成可编译、可优化的程序,这是评测自动化的下一站
15. 2026 年 arXiv 上关于 Agentic RAG 的一系列工作(如把检索-生成循环建模为 POMDP 的 SoK、层次化检索接口的 A-RAG、失败感知修复的 Doctor-RAG 等)——了解趋势即可,面试时提一句"我关注到今年学界开始用控制论框架形式化 agentic RAG"就足够

10.2 官方文档与实践(比论文更实用)

  • Anthropic:Building Effective Agents — Workflow 与 Agent 的区分、五种编排模式,本文第 3.4 节的主要来源
  • Anthropic:Effective Context Engineering for AI Agents — 上下文工程的三层心智模型、Context Rot、Compaction
  • Anthropic:Writing Effective Tools for Agents — 工具设计三原则
  • Anthropic Cookbook / OpenAI Cookbook — 可直接抄的实战代码
  • Model Context Protocol (MCP) 规范 — 协议层必读
  • LangGraph 文档 — 状态机编排、checkpoint、human-in-the-loop
  • pgvector 文档 — 最便宜的向量库入门(你本来就会 SQL)
  • Ragas / DeepEval / Promptfoo 文档 — 评测三件套

10.3 开源项目(读了能立刻提段位)

项目学什么
vLLM推理引擎的显存管理与批处理
LangGraph有状态 Agent 的状态机抽象
Ragas / DeepEval评测指标的实现细节
Langfuse / HeliconeAI 应用的可观测性设计
Claude Code 的设计思想(公开分享)上下文分层记忆、三级压缩、熔断器、Skill 渐进披露
LlamaIndex各类检索与索引抽象,适合对照理解

10.4 书籍与课程

  • 《动手学深度学习》(D2L)—— Transformer 部分足够
  • Chip Huyen, AI Engineering(中文版《AI 工程》)—— 目前最系统的 LLM 应用层工程教材
  • 各厂商官方 Prompt Engineering 指南(免费,且比绝大多数付费课好)

11. 结语与自查清单

回到开头那三个问题。如果你读到这里,请合上文档,试着口头回答一遍:

  1. 一个 10 万条题库的 RAG 系统,怎么切分、怎么召回、怎么保证讲错不会误导学生?
  2. 一个陪伴式辅导 Agent,怎么在 3 秒内出第一个 token,同时把成本压到每次对话几厘钱?
  3. 上线之后效果掉了 3 个点,你怎么知道是哪一步掉的?

能答上来,说明你已经不是"学过 LLM"的人,而是"做过 LLM 系统"的人。这个身份的转变,才是 27 届秋招里最稀缺的东西。

最后,一句可能有点反直觉的忠告:不要追求"学完再投"。 这个领域三个月一变,你永远学不完。正确的节奏是——做完一个能讲清楚取舍的项目,就立刻投。面试本身是最好的学习,你会从每一次追问里精确地知道自己缺什么,然后带着问题回来补,效率是闭门造车的数倍。

出发前自查清单(打印出来,逐项打勾)

知识与原理

  • 能口述 Transformer 结构并算出 QKV 参数量
  • 能解释 temperature / top_p / top_k 的机制与场景取值
  • 能讲清 LoRA 的低秩假设与推理时可合并
  • 能说出 KV Cache 与上下文成本的关系
  • 能解释 Context Rot 与 Lost in the Middle 及对策
  • 能背出 RAGAS 四个指标的定义

工程能力

  • 能裸写一个不用框架的 RAG(切分→嵌入→检索→合成)
  • 能用 FastAPI 写出 SSE 流式接口,trace_id 贯穿
  • 能讲清缓存三问题与各自对策
  • 能讲清 ES 从 query 到结果的完整过程
  • 能做前端流式渲染与中断
  • 能用 Docker 部署并对外开放访问

项目证据

  • 有一个已上线的可点开链接
  • 有 100 题以上评测集,且分布分层
  • 有优化前后的对比数据表
  • 有至少一次失败复盘
  • 有成本与延迟的分位数数据
  • 有 badcase 回流闭环

面试准备

  • 90 秒项目答辩脚本能脱稿讲
  • 30 道真题的骨架答法过了一遍
  • 手撕题(三数之和 / 字符串转 IP / Top-K)能白板写对
  • 反问环节准备了 3 个问题
  • 研究过作业帮的产品线与银河大模型
  • 能说出教育场景的四道约束

心态

  • 没把握的问题敢于说"不会",并说明你会怎么去查
  • 简历上每一条都能扛住三轮追问

最后一件事:如果你觉得这份手册有用,请把它转给同样在准备 27 届秋招的同学。一个人闷头准备的效率和一群人对着打,差得不是一点半点。

祝拿到心仪的 offer。


本文基于 2026 年 10 月公开可查的招聘信息、面试经验分享与业界技术资料整理撰写。文中引用的岗位描述来自公开渠道的作业帮 27 届招聘公告,面试题目来自公开的候选人面经分享。技术观点部分参考了 Anthropic 官方工程博客、主流 LLM 评测框架文档及相关学术论文。所有数据均以上述公开来源为准,请以官方最新信息为准。

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐