面试面经 · 懂车帝
【懂车帝】【大模型开发】【暑期实习HR面】面经(八股+大模型项目+手撕)
懂车帝 大模型开发 暑期实习 HR面 面经
背景:海外一年制硕士,计算机相关专业,主攻 NLP 与大模型应用,有一段校内 RAG 项目经历,无大厂实习。面试为 HR 技术面(非纯 HR 聊天),全程约 50 分钟,手撕代码 15 分钟。
题目摘要
- Go 语言基础:goroutine 与 channel 的底层原理,如何避免 goroutine 泄漏,GMP 调度模型简述。
- MySQL 与 Redis 八股:MySQL 索引失效场景、事务隔离级别(RR 下的间隙锁);Redis 缓存穿透/击穿/雪崩区别及解决方案,ZSET 底层跳表结构。
- 大模型项目深挖:围绕 RAG 项目的检索召回优化、上下文窗口管理、Function Calling 的容错设计、推理成本(Token 消耗)如何量化与优化。
- 手撕算法题:给定一个字符串数组,找出所有「字母异位词」分组(LeetCode 49 变体,要求输出每组内按字典序排序)。
- 开放题:如果让你给懂车帝的「AI 选车助手」设计一个多轮对话的上下文管理策略,你会怎么做?
项目深挖
追问 1:你的 RAG 项目检索召回率不高,具体怎么定位和优化的?
参考回答方向:先拆解瓶颈——是 embedding 模型区分度不够,还是 chunk 切分不合理,还是重排序缺失。我当时的做法是:① 对 chunk 做重叠切分(overlap 50 tokens),避免语义断裂;② 引入 hybrid search(BM25 + dense vector),用 RRF 融合分数;③ 加了一个轻量 rerank 模型(bge-reranker-base),只对 top 20 结果重排。最终 Recall@5 从 62% 提到 81%。面试官会追问「为什么不用更大模型做 rerank」,答:推理成本高,延迟敏感场景下 base 模型足够,且效果提升边际递减。
追问 2:Function Calling 在项目里怎么用的?如果模型调用了不存在的函数或参数格式错误怎么办?
参考回答方向:我用了 OpenAI 的 function calling 接口,定义 JSON Schema 约束参数。容错分三层:① 模型返回的 function_call 先做 JSON 解析,失败则进入兜底对话;② 参数校验不通过时,不直接报错,而是把错误信息拼回 prompt 让模型重新生成;③ 设置最大重试次数(2 次),超限则降级为普通文本回复。面试官可能追问「如何防止模型恶意或重复调用工具」,答:加调用频次限制 + 上下文里记录已调用过的工具列表,避免死循环。
追问 3:推理成本怎么算的?有没有做过 token 压缩?
参考回答方向:我按「单次请求平均 token 数 × 月请求量 × 单价」估算。压缩手段:① 对话历史做滑动窗口,只保留最近 N 轮 + 系统摘要(用一个小模型把早期对话压缩成摘要);② 检索到的文档先做 extractive summarization 再拼进 prompt,避免长文档直接塞入;③ 对 system prompt 做精简,删掉冗余指令。面试官会关注「摘要会不会丢关键信息」,答:摘要只针对早期对话,近期原始消息保留,且摘要生成时会保留用户明确提到的实体和约束条件。
手撕算法题
题目:给定一个字符串数组 strs,将所有由相同字符(字母异位词)组成的字符串分到同一组。输出每组内部按字典序排序后的结果。要求时间复杂度 O(n·k log k) 内完成(k 为字符串最大长度)。
关键思路:核心是「分组键」的设计。两种主流做法——① 对每个字符串排序后作为 key(如 "eat" -> "aet");② 用长度为 26 的数组统计字符频率,转成元组作为 key。我选了方法①,代码更简洁。注意点:分组后每组内部要排序,用 sort.Strings;输出结果顺序无所谓,但每组内必须有序。边界情况:空字符串单独成组;单个字符的字符串各自成组。面试官要求先讲思路再写,写完跑了一个测试用例。
准备建议
- 八股不要背,要能画出图:MySQL 间隙锁、Redis 跳表、GMP 调度,这三块是高频考点。建议用 Excalidraw 把「索引失效的 B+ 树示意图」「跳表插入过程」「GMP 的 M 与 P 绑定关系」画一遍,能对着图讲清楚原理,比背十遍文字有用。
- 项目数据要量化,且准备好「失败经历」:只讲「我用了 RAG」没用,要说「召回率从多少提到多少」「延迟从多少降到多少」。同时准备一个「优化方案被推翻」的故事,比如我最初用固定 chunk size 256,后来发现长文档效果差,改成动态切分。面试官很吃这一套。
- 手撕题练熟「分组类」题目:字母异位词分组、按奇偶排序、区间合并,这类题核心是「设计 key」。建议把 LeetCode 49、56、75 刷熟,同时练习「先讲思路再写码」的节奏,控制在 10 分钟内完成。
一面通过,HR 说两天内约技术二面(业务团队)。整体感受:懂车帝的面试风格偏务实,不太问「大模型原理推导」这类虚的,更关注你能否在真实业务场景里落地技术方案。
想系统备战大厂大模型/Agent 开发?NiceOffer 提供 SDE+LLM 双轨 1v1 陪跑,合同保底 40w 年薪,文末扫码咨询。