NiceOffer

面试面经 · 小马智行

【小马智行】【大模型开发】【暑期实习一面】面经(八股+大模型项目+手撕)

小马智行面经大模型开发实习

海外一年制硕士,投递小马智行大模型开发暑期实习,一面约 60 分钟,两位面试官,一位偏工程、一位偏算法,全程线上视频,共享文档手撕代码。

题目摘要

  1. Go 语言基础:slice 的底层结构、扩容规则,以及 slice 作为函数参数时修改元素为什么能影响原切片、而 append 之后却可能失效;追问 map 是否并发安全、sync.Map 的适用场景。
  2. MySQL / Redis 八股:MySQL 聚簇索引与二级索引的区别、回表过程、为什么建议用自增主键;Redis 的持久化 RDB/AOF 差异,缓存穿透、击穿、雪崩的区分与各自解法,重点追问了布隆过滤器误判的处理。
  3. RAG 项目深挖:文档切分策略怎么定的、embedding 模型选型依据、召回 top-k 怎么调、有没有做 rerank、如何评估检索质量。面试官对"切分粒度与召回率的权衡"追问了两轮。
  4. Agent / Function Calling:工具调用的 schema 怎么设计、多轮工具调用时上下文如何管理、工具返回超长结果怎么截断或摘要、失败重试与幂等怎么保证。
  5. 推理成本优化:从 prompt 压缩、KV Cache 复用、批处理、模型分级路由几个角度展开,问有没有实际量化过 token 成本。
  6. 手撕算法:LRU 缓存(LeetCode 146)。题意是设计一个容量为 capacity 的缓存,支持 get 和 put,两者都要求 O(1) 时间复杂度,超出容量时淘汰最久未使用的 key。关键思路是哈希表 + 双向链表:哈希表存 key 到链表节点的映射,双向链表维护访问顺序,头部为最近使用、尾部为最久未使用;get 命中后把节点移到头部,put 时若 key 存在则更新并移到头部,不存在则新建插入头部,超容则删尾节点并同步删哈希表。面试官要求用 Go 写,并追问"如果并发访问怎么办",答加读写锁或分段锁,进一步问锁粒度。

项目深挖

追问一:你的 RAG 系统里,文档切分是按固定长度还是按语义?怎么验证切分策略是合理的?

参考回答方向:先说明实际用的是"固定长度 + 重叠窗口"打底,再对结构化文档(标题、表格)做语义边界切分,避免把一段完整逻辑切断。验证上不能只凭感觉,要构造一批带标注的问答对,看召回文档是否覆盖答案所在片段,用 recall@k 和 MRR 衡量;同时对比不同 chunk size(比如 256/512/1024)下的召回率和最终回答准确率,选拐点而不是选最大值,因为 chunk 越大噪声越多、token 成本越高。面试官想听的是"你有没有用数据驱动决策,而不是拍脑袋定参数"。

追问二:Agent 多轮调用工具时,上下文越来越长,你怎么控制?

参考回答方向:分三层讲。第一层是裁剪,只保留最近 N 轮完整对话,更早的做摘要压缩,摘要里保留实体、约束和已确认结论;第二层是结构化,把工具调用结果不原样塞回上下文,而是抽取关键字段(比如只保留订单号、状态、金额),长文本走摘要;第三层是外部记忆,把历史写入向量库或 KV,需要时按 query 检索回来,而不是常驻上下文。可以补一句:要监控每轮的 token 增长曲线,设置阈值触发压缩,避免某次工具返回异常长把窗口打爆。

追问三:Function Calling 里工具执行失败或超时,你怎么处理?

参考回答方向:先说区分错误类型——参数错误(模型生成 schema 不合法)应当把校验错误信息回传给模型让它重试;网络超时或下游 5xx 应当有限次退避重试,重试仍失败则降级返回兜底话术。强调幂等:写操作类工具要带请求 ID,服务端去重,避免模型重试导致重复下单。再补一句可观测性:每次工具调用记录入参、耗时、结果状态,方便定位是模型选错工具还是工具本身不稳。

准备建议

  1. 八股要能落到项目上。MySQL 索引、Redis 缓存三兄弟这类题,别只背结论,准备一个自己项目里的真实场景去对应,比如"我们热点数据用 Redis 缓存,key 过期时间加了随机抖动防雪崩",面试官更认可有上下文的回答。
  2. 把 RAG / Agent 项目拆成可量化的指标。提前想清楚 chunk size、top-k、rerank 模型、评估集规模、准确率提升幅度这些数字,被追问时能直接报出来,比"效果还不错"强十倍。
  3. 手撕题按高频清单刷。LRU、LFU、Top-K、合并区间、二叉树层序这类在大模型岗一面出现频率很高,用目标语言(Go 或 Java)手写一遍,注意边界和并发追问,写完主动说时间空间复杂度。

一面通过,三天后约了二面。

想系统备战大厂大模型/Agent 开发?NiceOffer 提供 SDE+LLM 双轨 1v1 陪跑,合同保底 40w 年薪,文末扫码咨询。