面试面经 · 旷视
【旷视】【大模型开发】【暑期实习HR面】面经(八股+大模型项目+手撕)
海外一年制硕士,投递旷视大模型开发暑期实习,HR 面约 40 分钟,全程围绕简历与岗位匹配度展开,技术问题偏基础但追问密度高。
题目摘要
- Go 语言基础:
slice与array的区别,slice扩容机制,map是否并发安全,如何实现一个并发安全的map。 - MySQL / Redis 八股:MySQL 索引为什么用 B+ 树而不是 B 树;Redis 持久化 RDB 与 AOF 的区别与选型;缓存穿透、击穿、雪崩的区分与应对。
- RAG 项目深挖:文档切分策略怎么定的,召回阶段用的是什么检索方式,有没有做 rerank,如何评估检索质量。
- Function Calling 与上下文管理:Agent 调用工具时如何设计 schema,多轮对话上下文超长怎么处理,有没有做上下文压缩或摘要。
- 推理成本优化:线上推理成本主要花在哪,有没有做过量化、蒸馏、KV Cache 复用或请求批处理。
- 手撕算法题:给定一个整数数组和一个目标值,找出数组中所有和为目标值的两个数的下标组合(每个数只能用一次),要求时间复杂度 O(n)。关键思路:用哈希表记录已遍历元素的值与下标,遍历时查
target - nums[i]是否在表中,命中则输出下标对;注意去重和边界处理。
项目深挖
追问一:RAG 的召回质量怎么保证?
面试官不会只问“你用了什么向量库”,而是会追“你怎么知道召回是对的”。参考回答方向:先说明评估集怎么构造,比如从业务日志里抽 200 条真实 query,人工标注相关文档;然后对比不同切分粒度(256 / 512 / 1024 token)和不同 embedding 模型下的 Recall@5、MRR;如果做了 hybrid search(BM25 + 向量),要能说清楚两路分数怎么融合,是加权求和还是 RRF。最后补一句线上监控,比如用 LLM 对召回结果做相关性打分,低于阈值触发告警。
追问二:Function Calling 的 schema 设计踩过什么坑?
面试官想听的是工程细节,不是概念复述。参考回答方向:工具描述要写清楚“什么时候用”而不是只写“这个工具能做什么”,否则模型容易乱调;参数类型尽量用 enum 而不是自由文本,减少解析失败;多工具场景下要控制工具数量,超过 10 个后模型选择准确率明显下降,可以考虑分组或两级路由。如果被问到“模型返回了非法 JSON 怎么办”,要能说出兜底策略:正则提取、重试、降级到规则匹配。
追问三:上下文超长怎么处理?
参考回答方向:先分层,系统 prompt 固定不动,历史对话按轮次做滑动窗口,早期对话用摘要替代;摘要不是简单截断,而是用一个小模型把前 N 轮压缩成结构化要点(用户意图、已确认事实、待办事项)。如果项目里做过 KV Cache 复用或 prefix caching,一定要主动提,这是加分项。最后补一句成本对比:压缩后 token 数下降多少,推理延迟和费用变化多少。
准备建议
- 八股不要只背结论,要能画图。MySQL B+ 树、Redis 持久化、缓存三兄弟,面试官随时会让你“画一下”或“举个例子”。准备时拿一张白纸,把 B+ 树叶子节点链表、RDB 触发时机、缓存穿透的布隆过滤器流程手画一遍,比背文字有效得多。
- 项目复盘用 STAR 但重点放在“坑”上。面试官对“我用了 LangChain 做了 RAG”没兴趣,对“我一开始切分 512 token 召回很差,后来改成按标题层级切分 + overlap 128,Recall@5 从 0.62 提到 0.81”才有兴趣。每个项目准备 2 个具体数字和 1 个失败教训。
- 手撕算法保持手感,重点练哈希和双指针。大模型岗的手撕不会太难,但要求一次写对、边界清晰。每天 1 道 LeetCode 中等题,限时 15 分钟,写完自己造 3 组测试用例(空数组、重复元素、无解)跑一遍。Go 或 Java 选一个自己顺手的,别临时换语言。
HR 面结束后约 3 个工作日收到反馈,一面通过,一周后约二面(技术面)。
想系统备战大厂大模型/Agent 开发?NiceOffer 提供 SDE+LLM 双轨 1v1 陪跑,合同保底 40w 年薪,文末扫码咨询。