AI 工程面试问题记录
本文最后更新于 2026-11-06
这篇文章按主题整理 AI 工程方向的面试问题,覆盖项目复盘、Agent、RAG、NL2SQL、模型训练与工程实践。它不是一篇从头读到尾的知识教程,更像一份便于快速定位和口述练习的问题清单。
来源标记: 未标记的问题保留自个人面试整理;[题集补充] 表示 2026-11-04 基于公开题集归纳改写或延伸的追问,不代表我亲历的面试。统一来源见文末「题集来源」。
高频必答
| 主题 | 面试问题 |
|---|---|
| 项目复盘 | 项目解决了什么问题? |
| 项目复盘 | 你负责什么? |
| 项目复盘 | 最严重的 Bad Case 是什么? |
| Agent 架构 | Agent 和 LLM 有什么区别? |
| Agent 架构 | 为什么使用多 Agent? |
| Agent 架构 | Agent 完整执行链路是什么? |
| Agent 架构 | 如何共享状态又避免互相污染? |
| Agent 可靠性 | 如何避免死循环和重复调用? |
| 记忆与上下文 | 长短期记忆如何分层? |
| 工具与协议 | Tool Calling 的完整闭环是什么? |
| RAG 文档 | 一份 PDF 如何变成可检索内容? |
| RAG 检索 | 混合检索如何设计? |
| 评测 | RAG 如何评测? |
| NL2SQL | 自然语言如何转换成 SQL? |
| NL2SQL | 如何控制 SQL 安全与成本? |
| Transformer | Transformer 的网络架构是什么? |
| LoRA / QLoRA | LoRA 微调的核心原理是什么? |
| 推理部署 | 大模型推理速度优化,你用过什么方法? |
| 推理部署 | 模型部署在哪?什么机器配置?怎么评估能跑得动? |
| Python 并发 | 进程、线程、协程有什么区别?GIL 是什么? |
项目与应用
项目复盘
项目与团队
- 这个项目的背景是什么?解决了什么痛点?
- 项目解决什么任务?架构是怎么样的?
- 项目背景是怎样的?立项时考虑过 ROI 吗?价值怎么体现?
- 你承担什么角色?团队规模?
- 是你自己做的吗?你们多少个人做这个?怎么分工的?
- RAG 项目多少个人做?你负责哪部分?召回你会做吗?
- 微调是你做的还是参与?
- 项目是你自己部署的吗?
- 前端写过吗?
- 会涉及前端工作吗?
- 项目从头到尾多久?
- 具体是哪些角色在用?运营里哪些组?供应链里哪些角色?研发用不用?
- 总共有多少人使用?每天都用吗?使用频次多少?有数据吗?
- DataAgent 是 demo 级、内部试用、还是正式生产?用户数量、请求量多少?
- 最严重的一次 Bad Case 是什么情况?
开发流程
- 开发流程是怎样的?符合软件工程要求吗?举一个项目例子
- SDD 和 TDD 了解吗?你们需求怎么来的?
- 业务流程是你去梳理的还是产品经理梳理的?
- 项目中的 LangGraph 执行图是你们自己设计的?链路是固定的还是自由发挥?
AI 编码
- 平时用什么 AI 编码工具?有什么心得?
- 用不用 AI 辅助编程?
- 平时写代码是通过 AI 编码工具还是手写?
- 本地写代码用不用 AI 工具?会隔离隐私文件吗?
- 会不会用 AI(Codex/Claude)访问服务器?
- AI 编程,这个占比大概能占多少?
- AI 编程质量的影响因素有哪些?
- 在 AI 辅助编码的工作流程中,你如何划分人工和 AI 的职责边界?
- [题集补充] AI 没有复用已有公共方法,而是重复实现一套逻辑,怎样通过上下文、检查和测试发现并纠正?
- [题集补充] 需求还不明确时,怎样先形成可验证的验收条件,再让 AI 写代码?哪些决定必须由人作出?
AI 提效
- AI 提效——你们怎么在公司推广 AI 的?
- OpenClaw 怎么管理多用户的?每个人怎么隔离?
项目迭代
- RAG:系统在不断升级迭代的一个过程中,有什么地方是你自己感觉还挺有成就感的升级迭代或者优化
- 项目做了 7-8 个月,技术层面还有哪些提升空间?
用户反馈
- 用户反馈怎么收集的?除了群聊还有什么方式?
系统设计
智能体设计
- 如果要开发一个能学习《西游记》的智能体(基座模型未预训练过),从技术选型角度考虑哪些问题?
- 有没有落地过类似知识图谱的项目?
- 自动筛选简历 Agent——把收到的简历匹配到各项目的人力画像,做相似度排序,怎么设计?
- 如果由你独立负责情感陪伴 Agent 的开发,包括记忆系统等模块,你认为会遇到哪些挑战?
- [题集补充] 审批助手只能生成审查意见、不能实际通过审批时,怎样从工具权限和执行层保证这个边界?
数字人与实时交互
- 数字人电商直播弹幕回复场景,能想到什么问题?怎么实施?
- 在数字人电商直播场景中,作为商家,直播前需要提前准备什么?
- 数字人:实时交互性很强,用户说话说了一半,思考了一会才说完后半句。怎么设计?
- 了解过数字人相关的东西吗?
数据分析
- 用户提出模糊分析需求——“最近广告效果不太好,帮我看看”——系统怎么处理?
- 多轮追问——先问指标,再问为什么上升/下降,怎么设计?
- 数据分析用小模型还是大模型?定业务规则?
- 有没有涉及数据挖掘相关需求?
图片与多模态
- 淘宝详情页都是图片——怎么提取商品信息?
- 以图搜图的技术实现,给出思路
- 图搜图的检索的相似性技术如何实现的?
- CLIP 技术的核心原理
- 设计类岗位的简历是作品集(图片/视频),怎么处理?
- 传统 CV 落地非常”重”,如果换成多模态去实现,怎么设计架构?
低代码
- 低代码平台 AI 化——用户通过自然语言创建页面、放置组件、调整配置项,分几步?技术难点?
浏览器自动化
- Agent 代替人工操作——填表单、系统点击、浏览器自动化——在哪个项目哪个场景用到了?
酒店对账 Agent 设计
- 酒店有三套账(PMS/OTA/银行),字段不同、规则不同、存在取消退款和平台佣金——设计一个 Agent 自动找出差异并解释原因,未来自动申诉
- 只有你和一名全栈工程师两个人,第一版做什么、不做什么?
- AI、规则逻辑、人工这三块分别负责什么?
- 产品功能最后怎么验收?
- 没有 API 接口,只能人工导出 CSV 文件——怎么解决数据获取问题?
- 第一家酒店试点成功后,第二家酒店字段和佣金规则完全不同——怎么判断系统是否可复用?
问答系统
- 如果现在想做好一个问答相关的项目,都需要有哪些点需要注意?
- 问答助手的回答形式——图片+文字还是纯文字?
- 业务智能客服——文档素材有哪些形式?怎么 Embedding?怎么保证召回率?
- [题集补充] 生成长报告时,如何避免章节重复、前后结论冲突和引用丢失?怎样验收报告质量?
- [题集补充] 用户修改已经确认的大纲后,哪些中间结果可以复用,哪些需要重新生成?多轮修改记录怎样保存?
- [题集补充] 每天处理一千份长文档、本地显存约 96 GB、允许一天离线处理,怎样设计分阶段筛选与检索?如何区分有限测试集的满分和线上效果保证?
行业与技术趋势
- Manus/OpenClaw 在 2026 年 2~3 月受到关注,主要原因是什么?
- 大模型未来会向哪个方向发展?
- 从业者的角度来看,2026 年的技术发展趋势是什么?
Agent 系统
Agent 架构
基础概念
- AI Agent 和 LLM 的本质区别是什么?
- 什么是智能体?在 RAG 中如何应用?
- 多 agent 系统与函数调用的区别是什么?
- Agent 当中的 BDI 模型是什么?
架构选型与框架对比
- LangChain 和 LangGraph 有什么区别?各自优缺点?
- LangChain、LangGraph 使用的版本?版本演进带来了什么变化?
- LangChain 和 LangGraph 的缺点分别是什么?
- 为什么要用多智能体而不是单智能体?单个不行吗?
- 多智能体架构都有哪些?有什么区别?有几类?
- 在项目中如何选择和落地多 Agent 架构?
- 多智能体的自主规划任务怎么做的?
- Deep Agents 跟 LangGraph 有什么区别?底层是用什么做的?
- OpenClaw 跟 LangGraph 有什么区别?架构上有什么区别?
- 规划器、记忆系统、工具层,哪个是你独立开发的?哪个是用成品?
- Agent 架构中哪些自研、哪些用开源成品?
- 为什么没有采用 Agent Team 而是 Multi-Agent?这里的 Agent Team 采用哪个框架或项目的定义?
- NL2SQL 为什么选择 supervisor 设计模型?
- [题集补充] 配置化工作流与代码编排图怎样取舍?哪些流程允许模型动态决定,哪些必须固定?
State 设计与通信
- LangGraph 的 State 是怎么设计的?每个 Agent 的 State 包含哪些内容?
- 子 Agent 希望状态共享,但是又不希望互相影响其他 Agent 的状态——怎么实现?
- State 共享但互不影响的方案有哪些?
- LangGraph 的状态转移怎么做的?
- LangGraph 的智能体用代码是如何创建的?
- “设计的分区状态和节点读写边界”是什么意思?
- 多 Agent 之间如何协同?状态隔离具体怎么做?
- 多智能体之间如何传递信息?
- [题集补充] LangGraph 的 State 与 Checkpoint 有什么区别?Checkpoint 保存在哪里,节点失败或进程重启后怎样恢复?
- [题集补充] LangGraph 的 reducer 在状态更新中起什么作用?多个并行节点写入同一个字段时,怎样避免覆盖、重复或合并冲突?
Agent 模式
- Agent Loop 是什么?
- Agent 执行机制的完整链路——从用户请求到最终结果?
- ReAct / Workflow / Plan-and-Execute 三种模式的区别和选型场景?
- Workflow 和 Agent 各自适合什么场景?简单流程为什么仍可能优先选择 Workflow?
- Workflow vs ReAct 的场景区别?
- CoT / ToT / ReAct 你哪个更熟悉?三种推理范式有什么区别?
- Function Calling 和 ReAct 框架有什么区别?
- 哪些步骤交给大模型判断?哪些由确定代码控制?
- [题集补充] 如果几个工具必须按顺序执行,怎样用代码强制约束,而不是只在提示词里强调?
- Plan-and-Execute 模式下多轮回顾时任务状态丢失怎么解决?
Supervisor 与子 Agent
- 主 Agent 在框架里的定义是什么?做什么、不做什么?
- Supervisor Agent 起什么作用?是分配任务给下面吗?
- 主 Agent 的图结构?子 Agent 的图结构?节点和流转关系?
- LangGraph 完整链路是什么?Supervisor 怎么调用各个 Agent?
- 子 Agent 处理失败怎么办?完整异常处理流程?
- [题集补充] 多个子 Agent 并行给出不同结论时,主 Agent 如何检查证据、处理冲突并决定最终结果,而不是只把回答拼接起来?
Agent 可靠性
长链漂移
- ReAct 中的长链漂移过往怎么解决?
噪音与上下文污染
- 多个 Agent 如何解决”噪音问题”(谁在说话/责任人识别)?
- 上下文污染怎么解决?
- 上下文注入与隔离策略怎么做的?
循环与死循环
- 多智能体 Planning 中的死循环与重复调用如何解决?
- ReAct 模式下循环调用/死循环的解决策略?
- [题集补充] Agent 应根据什么判断信息已经足够?为什么补充检索不应永远固定为三轮?
工具调用异常
- 工具返回结果不规范(字段缺失、格式不对),如何让 Agent 不崩?
- 模型工具调用生成错误参数,一般怎么处理?
- 工具挂了,是重试还是换工具?什么策略?
- 校验之后的决策由谁来做?
- [题集补充] 模型输出符合 JSON Schema,是否意味着工具调用就是正确的?还要校验哪些业务条件?
- [题集补充] 如何为工具失败设置重试次数、超时和终止条件?若工具有实际副作用,重试与恢复执行时怎样避免重复操作?
Human-in-Loop
- LangGraph 的 Human-in-Loop(中断恢复)机制原理?
- 有没有 Human-in-Loop 的实际应用?
数据库负载
- SQL 生成可能导致数据库负载突然变高——有没有应急方案?
- 监控发现数据库负载异常后具体怎么处理?
日志
- Agent 项目哪些日志必须要记录?
- [题集补充] 用户反馈一次错误回答后,如何沿同一次请求追溯到文档、召回、模型、工具与 SQL 执行?链路记录怎样关联,又怎样避免日志泄露敏感数据?
记忆与上下文
概念与架构
- 怎么来区分长短期记忆?
- 在实现短期、中期、长期记忆的方式有哪些?
- 记忆系统怎么分层设计?长期记忆、短期记忆怎么设计?
- 上下文是怎么管理的?和记忆有什么区别?
- 偏好注入怎么管理的?
- 岗位画像是什么意思?跟记忆有关系吗?属于提示词的一部分?
- 语义相似度会话关联算法怎么做的?
技术方案
- 关于长短期记忆,开源的方案你都了解哪些?
- 短期记忆和长期记忆的实现,具体采用了什么技术方案?
- 短期记忆是怎么做的?上下文超长呢?摘要以后放哪里?
- 长期记忆怎么设计的?短期转长期的策略是什么?
- 长短期记忆用什么存?Redis/Mem0 分别起什么作用?
- 在记忆存储性能优化方面,你们做了哪些具体工作?
- [题集补充] 完整历史、滑动窗口、摘要和向量召回分别会丢失什么信息?怎样选择组合方式?
- [题集补充] 用户修改了长期偏好,怎样避免旧记忆仍被召回并影响回答?
- [题集补充] LLM 调用失败时,这轮用户输入、执行状态和记忆会不会丢失?哪些应先持久化,哪些应在成功后提交?
上下文管理
- 上下文爆炸怎么解决?
- 长上下文怎么处理?
- 上下文控制有没有采用 Harness 里的策略?
- 多轮对话怎么处理?Redis 和 Mem0 怎么配合?记忆怎么设计的?
- [题集补充] 长上下文的中间信息没有被正确使用时,如何判断问题来自检索、上下文组织还是模型?不能只靠扩大窗口时,还能怎样验证改进?
- [题集补充] 如何验证对话摘要没有遗漏数字、否定条件、时间范围或未完成任务?
验证与问题定位
- 记忆机制优化时碰到最大的问题?印象最深的幻觉?
- 怎么判断问题是记忆导致的?怎么验证记忆优化上线后有效果?
- OpenClaw 群聊和单聊的差异经验能移植到 DataAgent 吗?
- 选型时怎么做对比测试?测试用例怎么来的?
技能记忆
- 有没有考虑过 Skill Memory(技能记忆)?
工具与协议
Function Calling
- Function Calling / Tool Calling 的完整流程是什么?至少几次模型调用?分别做什么?
- Function Call / MCP 概念理解
- Function Calling API 的消息结构中,System/User/Assistant/Tool 四种 role 分别是什么?
- 天气 API 调用场景中至少有几次模型调用,分别做什么?
参数处理
- 参数抽取错误如何处理?
- 用户自然语言描述与数据库字段名不一致(语义鸿沟),精确查询查不出来,怎么解决?
- 同义词表/向量匹配的思路讨论
- 意图识别的具体实现中,你们如何处理槽位填充和用户口语化表达?
MCP 协议
- Agent MCP 是什么?有什么用?
- MCP 服务/后端接口处理时间很长,如何让智能体更健壮?
- MCP 是本地的还是远程的?怎么封装的?
- 解释一下 Agent 协议 A2A 的概念。
工具工程
- 平时写 MCP 和 Skill 吗?
- Tool Calling 具体工程实现?工具在哪注册?怎么定义?
- 有没有做成平台化的工具管理?
- 工具调用失败怎么处理?
- [题集补充] 单个 Agent 挂载几百个工具时,如何减少上下文占用和工具误选?一定要拆成多 Agent 吗?
Prompt 与 Harness
Prompt 设计
- 提示词工程中,提示词的维度有哪些?
- 如何写稳定的 Prompt,保证业务回复稳定?
- 如何编写稳定的 Prompt?
- 固定化场景是否考虑过固化为脚本(Python/Shell)而非每次动态生成?
Skill 系统
- Skill 的设计思想?渐进式披露什么意思?
- OpenClaw 如何感知并选择 Skill?
- 如何生成、测试和维护一个业务 Skill?
- [题集补充] Skill 数量不断增加时,怎样组织目录、描述与加载范围,让 Agent 找到合适的 Skill,而不把所有说明一次性塞进上下文?
- [题集补充] Tool、MCP、Skill、子 Agent 分别解决什么问题?如何避免把同一能力重复封装?
版本管理与缓存
- 提示词需不需要做版本管理?为什么?
- 如何做提示词缓存和结果缓存
- [题集补充] Prompt 热更新后,正在进行的会话使用哪个版本?出错时如何复现当时的上下文?
Harness
- Harness Engineering 和 Loop Engineering 之间的区别是什么?这里采用的是哪套定义?
- Harness 工程在你们项目里做了哪些?
- Prompt 注入怎么防御?
Claude Code / Codex
CLAUDE.md与AGENTS.md分别应该写什么?- Claude Code 和 Codex 是否使用原版模型?如何理解模型、系统提示、工具与 Harness 之间的关系?
RAG 与数据智能
RAG 文档
解析全链路
- 以 PDF 为例,一步一步讲解析流程
- PDF 用什么工具解析?输出是什么?
- RAG 主要处理哪些文档格式?
- 文档里包含哪些元素类型(文本/表格/图片)?
- 文档是扫描件还是非扫描件?
- 解析成 Markdown 之后,表格、图片是怎么处理的?
- 图片是怎么从 PDF 中取出来传给 VLM 的?
- 从 PDF 提取图片时,图片的坐标范围是怎么得到的?
- 是否对 MinerU 做过二次开发?在哪一步做的?
- 是在 MinerU 基础上做了优化还是直接用?
- 文档处理的时候都有遇到什么样的问题?
- 针对每份文件都做定制化处理?
- 复杂结构文档——有外链/图片/视频怎么处理?
- 人工校验比例大不大?
- [题集补充] 文档任务显示“成功”,是否代表知识已经可用?如何检查空内容、零切片和关键内容遗漏?
- [题集补充] 工业文档只有大片图片和简短编号时,如何建立图片、说明和技术参数之间的对应关系?
文本处理
- 中文分词是怎么做的?
切块策略
- 分块方式?(父子块)
- 文档切块,父子块的区别如何定义的?
- 父块/子块的长度怎么定?为什么不是固定值?
- PDF 切片怎么做?父子块策略?
- 文档类型怎么区分处理?法律条款和普通文本策略一样吗?
- [题集补充] 给知识块注入标题和章节路径有什么作用?怎样避免重复标题成为检索噪声?
- [题集补充] 一个答案依赖多个相邻知识块,但只召回其中一块时,怎样补齐证据?如何验证邻接扩展或父子块策略没有引入过多噪声?
表格专项
- 跨页表格如何处理
- 怎么处理跨页表格
- 跨页表格超过 1500 字符怎么办?
- 表格怎么处理?嵌套表格?跨页表格?
- 有没有碰到嵌套式表格?
- 表格数据解析之后是放到向量里面吗?流程是怎样的?
文档格式转换
- 如何将包含图片和文字的 HTML 报告,转换为内容保持不变的 Word 或 PDF 文档?
增量更新与版本控制
- 同一文档增量更新怎么识别?(MD5/哈希/向量相似度)
- 政策类文档版本控制怎么做?
- 版本控制是第一优先级吗?旧文档权重会不会比新文档高?怎么防止旧文档因为相似度高被优先召回?
- [题集补充] 文档更新后,全文索引与向量索引怎样保持一致?如何避免新旧版本混用并支持回滚?
- 文档处理时间?更新频率?增量更新怎么触发?
RAG 检索
向量库与索引
- 向量数据库的特点是什么?
- HNSW 了解吗?分层索引设计的本质目的是什么?
- Flat 与 HNSW 索引各有什么优缺点?项目里为什么选择其中一种?
- 向量库选型?用 Milvus 的什么能力?
- HNSW 中
M和efConstruction分别控制什么?项目里如何设置? - Milvus 的索引核心机制是什么?
- 稀疏向量的索引类型?
- [题集补充] 检索接口返回的是距离还是相似度?不同度量下,分数大小和阈值应该怎样解释?
- Milvus 怎么部署的
检索策略
- 向量检索和关键词检索分别适合什么内容?
- BM25 跟向量检索,他们各自的优劣势
- 混合检索怎么做?流程是怎么样的?
- 多层索引召回是什么意思?为什么分层?
- [题集补充] 加权分数融合与 RRF 有什么区别?不同检索器的原始分数能直接相加吗?
- [题集补充] RRF 的参数控制什么?为什么不能因为示例使用某个固定值,就直接用于所有项目?
- [题集补充] TopK 结果都很相关但内容高度重复,怎样提高信息多样性和证据覆盖?
- [题集补充] 动态 TopK、分数断崖截断和固定阈值分别有什么风险?阈值怎样用数据确定?
- 多路召回中如何在准确性和速度两者中平衡
- 混合检索——稠密+稀疏向量?召回率从 35% 提升到 80% 怎么做到的?
Query 改写
- 意图识别、多轮对话补全、Query 改写的编排顺序?
- 多轮对话补全用槽位还是上下文?
- Query 改写有哪些策略?什么时候用 HyDE?
- HyDE 请解释
- 有没有出现过使用 HyDE 后效果反而变差了?
- 改写是靠模型本身的能力还是需要专业知识?
- 问题改写有哪些维度?metadata 过滤有哪些维度?
Rerank
- rerank 模型的选择基于什么考量的?
- rerank 模型是放在 RRF 之前还是之后
- [题集补充] Embedding 与 Reranker 的模型结构、输入形式和训练目标有什么区别?为什么不能只凭模型名称选型?
- [题集补充] 召回的知识块超过 Reranker 输入窗口时,怎样处理截断、拆分和结果聚合?如何检查关键证据是否丢失?
- [题集补充] 为什么通常先召回再精排,而不是把全部文档直接送入重排模型?正确证据没有进入候选集时,精排能解决什么、不能解决什么?
图数据库
- 图数据库什么场景用?为什么选图库?存的什么?
- 图数据库 + 向量库联合检索的完整流程——举一个具体的例子,从用户问题到最终结果
- 为什么用 Hybrid Search(图+向量)而不是只用向量?
幻觉防控
- 如果 RAG 系统检索出来的答案有幻觉或者不符合预期,你会怎么处理?
- RAG 如果检索不到相关的信息怎么办?
- [题集补充] 如何区分“资料里根本没有答案”和“答案存在但没召回来”?两种情况的处理为什么不同?
多租户与性能
- RAG:每个用户都可以上传文件构建自己的小知识库,用户量非常高,文档有简单的也有复杂的,解析速度不同。设计方案或优化思路?
- 检索的时间,时间上你们怎么去做优化的?
- 并发有试过吗?QPS 多少?
NL2SQL
全链路设计
- 请详细说明 NL2SQL 系统如何结合大模型,将用户的自然语言查询转换为 SQL 语句
- DataAgent 项目完整架构
- 自然语言转 SQL 的完整链路——详细说明
- SQL Agent 做了些什么?详细介绍
- [题集补充] 为什么有些问数系统需要业务语义层,而不是直接让模型生成 SQL?语义层应该保存什么?
- [题集补充] 为什么不把多表关联全部改成一张大宽表?宽表与多表查询怎样取舍?
- 底层怎么建设的?(Schema 描述 / MCP 两种方案)
- 全场景覆盖怎么做?覆盖不到的怎么办?
意图识别与字段映射
- SQL Agent 里的 Schema 是怎么设计的?
- 字段映射具体怎么做的?用户问题千奇百怪,怎么映射到合适的字段?
- 业务指标和字段索引不匹配怎么处理的
- 表那么多字段(100+),信息怎么给大模型?渐进式披露具体怎么做?
- 意图识别是直接写提示词吗?
- 意图识别——正则和向量怎么配合?优先级?
- [题集补充] 用户说“苹果笔记本”时,怎样区分实体、字段名和字段取值?存在歧义时什么时候应该追问?
SQL 安全
- NL2SQL:如何做到 SQL 的灵活和防止越权和安全性的问题?
- 如何确保只能查询不能修改
- SQL Agent 中权限校验和查询成本控制——防 DELETE、防大表 JOIN、防扫描亿级数据——防护机制在哪一层做?具体怎么操作?
- SQL 安全和性能怎么限制?
- 有没有做语法树相关的校验?
- SQL 生成系统是自动执行校验还是人工复核?
- SQL 执行是在沙箱中进行的吗?
查询语义校验
- 取数准不准的关键点?
- [题集补充] JOIN 语法正确,但关联关系导致统计结果翻倍,怎样发现和校验?
- [题集补充]
EXPLAIN能发现哪些问题,不能证明哪些事情?如何验证 SQL 符合业务含义?
SQL 性能优化
- 遇到 SQL 计算效率问题怎么优化?
- 是否遇到过 SQL 短但效率低(多表笛卡尔积)的情况?
- 效率问题一般怎么发现?(定时跑批 / 报警)
权限控制
- 权限控制——表级+行级怎么实现?
- 权限怎么做?表级+行级?
- 系统识别到用户没有权限访问数据——只是告知还是做跳转和工具调用?
模型与微调
- Text-to-SQL 是纯提示词吗?
- SQL 生成用的什么模型?评测用什么模型?
- 推理延迟降低、内存占用减少——是你测的还是谁测的?有具体数据吗?
- DPO 怎么做?偏好数据怎么构造?
模型、算法与评测
评测
RAG 评测
- 如何评估 RAG 系统的性能?
- 在开发过程中,如何评估 RAG 系统的性能
- RAG 怎么评估?RAGAS 四大指标?
- 如何评估 RAG 系统的召回率?
- 召回率和准确率这块怎样做评估?
- 端到端回答准确率怎么理解?
- [题集补充] 「Top5 至少一条正确」与 Recall@5 是同一个指标吗?应怎样分别定义 Hit@5、Recall@5 和完整证据覆盖,并说明各自的分母?
- [题集补充] 答案忠实于上下文,但事实仍然错误,可能是什么原因?忠实度与正确性怎样分别评估?
- [题集补充] 没有标准答案时,哪些评测仍然可以做?哪些指标不能直接计算或解释?
Agent 评测
- 智能体开发完后评测需要评估哪些指标?
- Agent 评测怎么做?评测哪些指标?
- 评测与反馈闭环是你做的吗?Evaluation Harness 的执行流程是什么?
- 评测机制怎么做?离线评测和在线评测怎么区分的?
- 离线评测和在线评测怎么区分?
- 评测与反馈是靠人工筛查吗?
- 模型会不会自行整理这些问题?
- 发现问题后一般怎么优化流程?
- 输出评估(图表、报告)是人工还是模型层?
- [题集补充] 多个 Agent 可能互相引用错误结论时,如何检查证据真实性与任务完成情况,避免用回答流畅或彼此一致代替正确性?
数据集构建
- 评测数据集怎么构建?怎么保证覆盖度?
- 测试集有多少条?怎么分布的?怎么判断覆盖度?
- 给你一个新场景,从零构建测试集的完整方案是什么?
- SOP 对 Agent 的测试集构建有帮助吗?
- 评测问题收集是谁收集的?怎么保证全面?
- 数据集怎么收集的?有哪些途径?
- 你们如何对数据集进行清理?有什么标准?
- 评测模块是你写的吗?你在这里面做什么?
- [题集补充] 测试集怎样覆盖应回答、应拒答、应澄清、权限限制和多证据问题?为什么不能只看总体分数?
- [题集补充] 持续用同一批测试题调 Prompt,会不会使评测虚高?开发集、验证集和冻结测试集怎样分开?
NL2SQL 评测
- SQL 准确率怎么统计?语法正确但跑不动算不算正确?
- 85% 准确率——分子分母分别是什么?怎么算出来的?是拍脑袋的还是实测的?
- SQL 生成准确率多少?离线评测多少?在线评测多少?
- 准确率从最初到 90%+ 做了哪些优化?哪个最重要?为什么?
- 客户有没有要求过达到什么样的准确率?政策类敏感问题如何保证不出错?
- 有没有一个方法论或操作步骤?报告怎么输出?每个节点怎么关注?
- [题集补充] SQL 的结构或 Schema 检查、可执行性、结果一致性与业务正确性应怎样分层验收?各层分别设置什么上线门禁?
- [题集补充] 每月增加资料、调整模型或修改 Prompt 后,怎样运行回归测试?如果总体分数提高,但权限或关键场景退化,应怎样决定是否上线?
LLM-as-Judge
- LLM-as-Judge 怎么用?使用同一模型进行生成与评测会有哪些偏差,什么情况下仍然可以使用?
- [题集补充] LLM-as-Judge 是否受到答案长度、候选顺序或模型偏好的影响?怎样发现这些偏差?
模型训练
Transformer 架构
- 讲一下 Transformer 的网络架构
- 绝对位置编码有什么缺点?
- [题集补充] Encoder 自注意力、Decoder 因果注意力和交叉注意力有什么区别?Mask 分别限制什么?
- [题集补充] Attention 中 Q、K、V 的维度怎样变化?为什么点积要除以根号下的维度?
- [题集补充] Pre-LayerNorm 和 Post-LayerNorm 有什么区别?对训练稳定性有什么影响?
- [题集补充] MHA、MQA、GQA 怎样组织查询头与键值头?它们如何影响 KV Cache 和计算开销?
- [题集补充] RoPE 如何表达位置信息?扩大上下文窗口为什么不等于模型自然具备长文本理解能力?
- [题集补充] 稠密模型与 MoE 有什么区别?总参数量、激活参数量和实际部署成本怎样区分?
优化算法
- 什么是梯度下降?
- 梯度下降的优化算法有哪些?
- Adam 了解有多少
微调基础
- 什么是上下文,它与模型微调有什么区别?
- 模型微调的核心目的是什么?
- 微调的完整流程是什么?
- 在什么场景下会做这个微调的
- 微调的数据结构是什么样的?结构化还是非结构化?
- 如果数据量有几百万,对微调效果会有什么影响?
- 在项目当中用的这个微调方式都有哪几种
- 为什么不全量微调
- 微调参数,根据什么去调这个参数呢?
- 模型后训练这块你接触过吗?
- 微调中显存不足的常见原因和解决方案?
- [题集补充] 多轮对话 SFT 中,哪些 Token 应参与损失计算?System、User、Assistant 和结束标记怎样处理?
LoRA / QLoRA
- LoRA 微调的核心原理
- 微调的理解——PEFT、QLoRA?
- LoRA/QLoRA 了解吗?具体使用场景?
- [题集补充] LoRA 两个矩阵怎样初始化?初始化方式与训练起点、梯度有什么关系?
- [题集补充] Rank、Alpha、Dropout 分别影响什么?为什么不能把某组参数当成通用最佳配置?
- [题集补充] LoRA 作用于 Attention 与 FFN 时有什么差异?怎样计算新增的可训练参数量?
- [题集补充] LoRA 权重合并与不合并分别有什么优势和限制?多任务适配时怎样管理不同 Adapter?
- [题集补充] QLoRA 量化了哪些部分,训练哪些参数?NF4 与普通整数低比特量化有什么不同?
分布式与混合精度
- [题集补充] 数据并行、张量并行和流水线并行分别拆分什么?各自解决什么资源问题?
- [题集补充] ZeRO 的不同阶段分别切分哪些状态?节省显存需要付出什么通信代价?
- [题集补充] 把参数或优化器状态 Offload 到 CPU/磁盘,什么时候有价值?什么时候会被传输拖慢?
- [题集补充] FP16、BF16 和混合精度训练有什么区别?什么时候需要关注溢出、下溢与损失缩放?
强化学习与对齐
- 在强化学习中如何设计奖励函数
- 在强化学习中,奖励值怎么定?
- SFT、离线偏好优化(如 DPO)与在线策略优化(如 PPO/GRPO)有什么区别?
- SFT 与偏好优化都可能造成能力退化或策略漂移,原因和应对方式分别是什么?
- 请详细介绍 DPO
- PPO 和 DPO 各自的优势、限制与适用场景是什么?
- DPO 的损失函数请写出来
- RL 和 Agent ReAct 模式像不像?为什么?
- [题集补充] DPO 训练时,chosen 和 rejected 的隐式奖励同时下降,是否一定说明训练失败?应该检查什么?
- [题集补充] DPO 中参考模型和 Beta 参数分别起什么作用?怎样判断模型偏离参考策略是否过大?
- [题集补充] 奖励分数提高但真实回答质量下降,可能出现了什么问题?怎样识别奖励投机?
- [题集补充] GRPO 怎样利用同组回答计算优势?如果同组奖励全部相同,会出现什么情况?
- [题集补充] 什么条件下可以尝试直接做强化学习,什么条件下应先做 SFT?需要哪些实验,而不是只比较训练方法名称?
过拟合
- 微调中是怎么避免过拟合的?
- 微调过程当中,你怎么去避免它过拟合呢?
模型选择
- 模型大小的选择如何考量的?
- 为什么要选择 Qwen 系列的模型?
- 用了什么模型?不同任务用不同模型吗?
- SQL 生成为什么没用国外模型而用千问?模型评测怎么做的?具体怎么选型?
- 云端模型和本地模型怎么选?
- Kimi 2.5 在智能体集群方面有哪些设计?
- 当前主流代码模型应该从哪些维度比较,而不是只判断哪一款“最好”?
- 模型微调和知识库的应用场景最大区别在哪?
时序预测
- 时序预测用什么模型?
- 特征怎么定的?特征之间的相关性/独立性分析?
- 时序预测项目的数据量级、特征集数量级分别是多少?
实体匹配
- BERT 实体匹配为什么用双塔而不是单塔?
- 早期项目有没有涉及知识图谱?
- 传统机器学习和深度学习的基础?
Embedding
- Embedding 向量化在什么场景使用?用什么模型?
工程与部署
推理部署
推理框架
- vLLM 有什么特点?
- 有没有用过 vLLM 部署大模型?
- 大模型推理速度优化,你用过什么方法?
- [题集补充] KV Cache 保存什么、为什么有助于推理?怎样估算长上下文和不同并发下的 KV Cache 开销?
- [题集补充] 推理中的 Prefill 与 Decode 有什么区别?PagedAttention 主要解决什么问题,为什么不能把它简单理解为模型计算本身变少?
- [题集补充] 多个请求的 Prompt 前半部分不同、后半部分相同时,能否共享前缀缓存?应怎样区分前缀缓存与结果缓存的命中条件?
- [题集补充] 一个 14B 模型在训练和推理时分别需要考虑哪些显存项?精度、LoRA 配置、序列长度和批量变化时,怎样估算而不是只报一个固定数值?
- [题集补充] 模型服务的首 Token 延迟、后续 Token 延迟和整体吞吐量怎样分别测量?为什么提高吞吐可能增加等待?
部署
- 模型怎么部署的?
- 模型部署在哪?什么机器配置?怎么评估能跑得动?
- 项目是自己部署的吗?
- 部署后如何进行监控?都会监控哪些指标?
- [题集补充] 单张 GPU 需要运行多个模型或服务时,怎样限制显存占用、设置并发与队列,并处理资源不足时的降级?
- [题集补充] Agent 服务怎样在尽量不影响已有会话的情况下更新?蓝绿发布、会话状态兼容和回滚分别需要检查什么?
微调部署
- 微调用的是什么模型?千问哪个版本?多少参数?
- 现在有 20 个行业的风险领域 PDF 数据,需要你对千问 32B 模型进行微调。请描述整体思路和方案
工程基础
Python
- [题集补充]
list和tuple有什么区别?浅拷贝、深拷贝分别适用于什么情况? - [题集补充] 闭包为什么能保留外部变量?循环中创建闭包可能出现什么问题?
- [题集补充] 迭代器与生成器有什么区别?为什么生成器适合大文件处理和流式输出?
- [题集补充] 装饰器如何实现?如何用它封装日志、计时或权限检查?
- [题集补充] 可变对象作为默认参数,会不会导致不同请求之间的数据污染?
并发与资源管理
- 进程、线程、协程有什么区别?GIL 是什么?
- Python 协程了解吗?
- [题集补充] 多个异步任务逐个
await与使用asyncio.gather有什么区别?其中一个失败怎么办? - [题集补充] 在异步接口里调用同步数据库驱动或阻塞函数,会发生什么?怎样定位和处理?
- Java 和 Python 在处理多线程场景下有什么不同?
- Java 构建线程池时如何避免 OOM?
- [题集补充] 数据库连接池怎样工作?连接数、请求并发、等待超时和多进程 Worker 数量怎样配合?
服务端与流式输出
- FastAPI 为什么选择它?它的优点?
- [题集补充] SSE、WebSocket 和普通 HTTP 请求分别适合什么场景?流式问答为什么常使用 SSE?
- [题集补充] 流式输出过程中浏览器断线,服务端任务是否继续?怎样处理取消、恢复和重复消息?
- [题集补充] 文件上传、解析和向量化属于长任务时,接口怎样返回任务状态?轮询或事件流怎样避免无限重试?
算法
- 写代码打印文本文件的最后 K 行——能不能一遍读完?有没有更高效的方法?
- [题集补充] 给出三路检索排名,手写 RRF 融合;同一文档出现在多路、某一路缺失或排名相同时,怎样处理并测试?
- [题集补充] 一个 8 GB 的英文文档需要先分句,再按字典序排序;内存不足以一次读入时,怎样流式处理、分批排序并合并结果?
Linux
- 常用的 Linux 指令有哪些?
大数据
- 大数据技术栈(Hive/Spark/Flink)?
- 大数据有什么经验?Spark/Flink/Hive 是了解还是使用?
- 之前语言栈?(Java/Spark/Python 演进)
- 数仓用的什么数据库?用什么层?
题集来源
标为 [题集补充] 的问题参考《尚硅谷大模型技术之企业面试真题》V2.0 与《尚硅谷大模型技术之高频面试题》V2.3.1,材料署名均为「尚硅谷研究院」。部分问题经过归纳改写、术语澄清或延伸,不是逐字转录。
材料中的企业名称、面试轮次和发生时间未独立核实,因此不统一标为「企业真题」,也不将这些问题计入个人亲历。本文只摘选补充追问,不转载完整题集;题目中的指标和技术前提仍需辨析,不能把题目本身当作标准答案。