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,材料署名均为「尚硅谷研究院」。部分问题经过归纳改写、术语澄清或延伸,不是逐字转录。

材料中的企业名称、面试轮次和发生时间未独立核实,因此不统一标为「企业真题」,也不将这些问题计入个人亲历。本文只摘选补充追问,不转载完整题集;题目中的指标和技术前提仍需辨析,不能把题目本身当作标准答案。