面试面经 · 微众银行
【微众银行】【大模型开发】【暑期实习二面】面经(八股+大模型项目+手撕)
海外一年制硕士,投递微众银行大模型开发暑期实习,二面约 50 分钟,面试官是团队里做 Agent 平台方向的工程师,全程围绕项目细节和工程基础追问,八股问得不算多但很挑。
题目摘要
- Go 语言基础:slice 的底层结构、扩容规则,以及
append在函数传参场景下的坑(值传递 + 底层数组共享导致的数据覆盖问题)。 - MySQL 索引与事务:联合索引最左前缀原则的实际命中判断,
EXPLAIN里type字段各级别的含义;RR 隔离级别下间隙锁解决什么幻读场景。 - Redis 缓存一致性:缓存穿透/击穿/雪崩的区分与应对,重点追问「先删缓存再更新 DB」和「先更新 DB 再删缓存」哪个更稳、延迟双删的必要性。
- RAG 项目深挖:chunk 切分策略怎么定的、召回率怎么评估、rerank 模型选型与延迟代价的权衡。
- Function Calling / Agent 上下文管理:多轮工具调用时上下文膨胀怎么处理,工具调用失败如何让模型自愈重试。
- 手撕算法:实现 LRU 缓存,要求
get和put均 O(1),并说明为什么用哈希表 + 双向链表而不是单链表或数组。
项目深挖
追问一:你的 RAG 系统召回率是怎么量化的?
很多人会答「人工看了下效果还行」,这轮面试官明确要数字。参考回答方向:先构造 50~100 条带标准答案的评测集,覆盖事实型、多跳、否定型三类问题;用命中率(正确 chunk 是否出现在 top-k)和 MRR 两个指标分开看召回和排序质量。如果答不上来,可以退一步说「目前是人工抽检,正在补自动化评测集」,但一定要给出你打算怎么建这个集子——比如从线上日志里捞真实 query 做标注,比凭空造题靠谱。
追问二:chunk 切分为什么选这个 size?换大会怎样?
考的是你有没有真正调过参数。参考方向:chunk 太小语义不完整,召回片段缺少上下文,模型容易答偏;太大则噪声多、挤占上下文窗口、embedding 语义被稀释。常见做法是按语义边界(段落、标题)切,再设 300~500 token 上限并加 10%~20% overlap 防止句子被切断。可以补一句:不同文档类型策略不同,FAQ 类可以整条切,长技术文档必须带层级标题做 metadata。
追问三:Function Calling 多轮调用后上下文爆炸,你怎么控?
这是 Agent 方向的高频题。参考方向分三层:一是工具返回结果做截断/摘要,长 JSON 只保留模型决策需要的字段;二是历史轮次做滑窗或摘要压缩,把早期工具调用折叠成一句结论;三是区分「必须保留」和「可丢弃」——系统 prompt、当前任务目标、最近一次工具结果必须留,中间的探索过程可以压。能提到 token 计数 + 动态裁剪策略会加分。
追问四(延伸):推理成本怎么降?
可答的点:小模型做意图识别和路由,只把复杂 query 交给大模型;prompt 里去掉冗余 few-shot;对高频 query 做语义缓存(embedding 相似度命中直接返回);流式输出降低首 token 等待的体感成本。面试官在意的是你有没有成本意识,而不是背了多少优化名词。
手撕算法:LRU 缓存
题意:设计一个 LRU(最近最少使用)缓存,容量固定为 capacity,实现 get(key) 和 put(key, value),两者都要求 O(1) 时间复杂度,容量满时淘汰最久未使用的键。
关键思路:哈希表负责 O(1) 定位节点,双向链表负责 O(1) 调整访问顺序。约定链表头部是最近使用、尾部是最久未使用。get 命中后把节点移到头部;put 若 key 存在则更新值并移到头部,若不存在则新建节点插入头部,超容量时删掉尾部节点并同步从哈希表移除。用双向链表是因为删除节点需要拿到前驱,单链表做不到 O(1)。
写的时候注意两个易错点:一是虚拟头尾哨兵节点能省掉大量边界判断,强烈建议加;二是删尾部节点时别只删链表忘了删 map,会内存泄漏。面试官大概率会让你口述复杂度并手写,Go 和 Java 都行,写之前先说清思路再动手。
准备建议
- 把项目里的每个数字都变成能解释的决策。chunk size、top-k、rerank 阈值、QPS、延迟,面试官问「为什么是这个值」时,要能说出你试过别的值、效果差在哪。答不出数字的项目经历在二面会被直接判定为「没真做过」。
- 八股按「场景题」准备,别背定义。微众这类偏工程的团队很少问「什么是幻读」,更常问「你这个业务场景会不会有幻读、怎么防」。把 MySQL 索引、事务隔离、Redis 缓存一致性各准备 2 个真实场景,比背八股文有用。
- 手撕题按题型刷,不按题号刷。LRU、LFU、限流器、Top-K、合并区间这几类在银行/金融科技实习里出现频率极高,每类手写 2 遍到不看题解能一次过,注意边界(空输入、容量为 0、重复 key)。
整体感受:二面比一面更看重「你是不是真的动手做过」,八股是筛子,项目深挖才是主战场。一面通过后约 5 天收到二面通知,二面结束当天 HR 反馈进入下一轮。
想系统备战大厂大模型/Agent 开发?NiceOffer 提供 SDE+LLM 双轨 1v1 陪跑,合同保底 40w 年薪,文末扫码咨询。