面试面经 · 理想汽车
【理想汽车】【大模型开发】【暑期实习三面】面经(八股+大模型项目+手撕)
海外一年制硕士,投递理想汽车大模型开发暑期实习,三轮技术面中的第三面,面试官是团队里做 Agent 方向的资深工程师,全程约 70 分钟,节奏偏快,项目和八股穿插问。
题目摘要
- Go 语言基础:
slice的扩容机制、底层数组共享导致的"幽灵修改"问题;map并发读写为什么会 panic,sync.Map的适用场景 - MySQL / Redis 八股:聚簇索引与回表的代价、
explain里type各级别的含义;Redis 的过期删除策略 + 内存淘汰策略组合,以及缓存穿透/击穿/雪崩三件套的落地解法 - RAG 深挖:文档切分粒度怎么定、召回率上不去时排查路径、rerank 模型引入后的延迟代价如何权衡
- Function Calling / Agent:多工具场景下如何做工具选择、模型选错工具或参数幻觉怎么兜底、多轮对话里工具调用结果的上下文如何管理
- 推理成本优化:首 token 延迟和吞吐的取舍、prefix caching 的命中条件、量化对效果的影响评估
- 手撕算法:LRU 缓存。题意是设计一个容量为
capacity的缓存结构,支持get(key)和put(key, value),两者都要求 O(1)。关键思路是哈希表 + 双向链表:哈希表存 key 到链表节点的映射,链表头部放最近使用、尾部放最久未使用;get命中后把节点移到头部,put时若 key 存在则更新并移到头部,不存在则插入头部,超容量时删尾节点。面试官额外追问了"如果要在多线程环境下用,怎么改"。
项目深挖
简历上写的是一个基于 RAG 的垂类问答系统和一个多工具 Agent demo,面试官几乎没让我复述背景,直接切追问。
追问一:你的 RAG 召回率具体是多少,怎么测的?如果线上发现某类问题答不好,你怎么定位是检索的锅还是生成的锅?
参考回答方向:先说清楚评测集怎么构造的——从真实 query 里采样、人工标注 ground truth chunk,算 recall@k 和 MRR,而不是拍脑袋说"效果不错"。定位环节要分层:先固定生成模型,只换检索结果,看把正确 chunk 强行塞进 context 后模型能不能答对。如果能答对,说明是检索没召回;如果还答错,是生成或 prompt 的问题。再往下拆检索,是 embedding 模型语义匹配不行,还是切分把答案切碎了,还是 query 本身有指代需要改写。要能说出你实际做过的那个 case,比如"用户问'它的续航',指代上一轮的车名,我们加了 query rewriting 之后 recall 从 X 提到 Y"。
追问二:Agent 里模型选错工具、或者调用参数格式不对,你怎么处理?
参考回答方向:分两层。第一层是 schema 约束,工具定义用严格的 JSON Schema,required 字段、枚举值都写死,让模型没有发挥空间;调用前做参数校验,不合法直接返回结构化错误信息给模型,让它重试,而不是抛异常中断。第二层是兜底策略,设最大重试次数,超过就降级到规则匹配或者直接回复"没理解"。还要提到工具描述本身的质量——描述写得含糊,模型必然选错,这是个 prompt engineering 问题不是模型问题。可以补一句你观察到的现象:工具数量超过一定量之后选择准确率明显下降,所以做了工具分组或两阶段路由。
追问三:多轮对话里工具返回的结果很长,上下文很快就爆了,你怎么管?
参考回答方向:不能无脑全塞。短期做法是对工具返回做摘要或截断,只保留和当前子任务相关的字段;长期做法是把历史对话做滚动摘要,保留最近 N 轮原文 + 更早轮次的压缩摘要。还要区分哪些信息必须精确保留(比如订单号、金额),哪些可以模糊。可以提到用 token 计数做预算管理,给 system prompt、历史、工具结果、当前 query 各分配配额。如果面试官继续问"摘要会不会丢信息",就承认会,所以关键实体用结构化字段单独存,不依赖摘要。
准备建议
- 八股不要背结论,要能讲代价。面试官问 Redis 淘汰策略,不是让你背八种,而是问"你们线上配的哪种,为什么,换一种会怎样"。准备时每个知识点都逼自己想一句"这个方案的代价是什么",比如聚簇索引查询快但插入可能页分裂、prefix caching 省算力但要求前缀完全一致。
- 项目准备一份"被追问清单"。把简历上每个项目里出现的数字、技术选型、效果指标都列出来,自己先问自己三遍"为什么是这个数""换个方案会怎样""失败过吗"。RAG 和 Agent 方向尤其容易被追到评测方法、badcase 归因、延迟和成本的量化上,答不出具体数字比答错还致命。
- 手撕题按"能跑 + 能改"准备。LRU 这种题要练到 15 分钟内无 bug 写完,并且提前想好追问:并发怎么加锁、锁粒度多大、能不能用现成库。大模型岗的手撕通常不难,但会追问工程化改造,光写对模板不够。
三面结束当天下午收到 HR 通知,三面通过,一周后进入 offer 沟通环节。
想系统备战大厂大模型/Agent 开发?NiceOffer 提供 SDE+LLM 双轨 1v1 陪跑,合同保底 40w 年薪,文末扫码咨询。