NiceOffer

面试面经 · 虾皮

【虾皮】【大模型开发】【暑期实习三面】面经(八股+大模型项目+手撕)

虾皮面经大模型开发实习

虾皮 大模型开发 暑期实习三面面经

背景:海外一年制硕士,投递方向为 LLM 应用与 Agent 开发。

题目摘要

三面整体风格偏工程落地与系统设计,没有纯八股背诵环节,但基础知识会以“你项目里为什么这么选”的方式被追问。核心考点如下:

  1. Go 语言基础:goroutine 泄漏的检测与避免、channel 与 mutex 的适用场景、sync.Pool 的作用。
  2. MySQL 与 Redis 综合:InnoDB 隔离级别与 MVCC 实现、索引失效场景、Redis 持久化机制(RDB/AOF)在大模型缓存场景下的选择。
  3. RAG 项目深挖:向量检索召回质量评估、chunk 切分策略、混合检索实现。
  4. Agent Function Calling 设计:工具调用的参数校验、错误恢复、多轮对话中的上下文管理。
  5. 推理成本优化:Prompt 压缩、缓存策略、模型蒸馏在项目中的实际落地。
  6. 手撕算法:实现一个带过期时间的 LRU 缓存(要求支持 getputput 时若 key 已存在则更新值和过期时间,过期后 get 返回 -1)。

项目深挖

追问 1:你的 RAG 系统里,向量检索和关键词检索的结果是怎么融合的?

参考回答方向:先说明两种检索各自的优劣(向量召回语义相关但可能忽略精确术语,BM25 精确匹配强但无法处理同义改写),再讲融合策略——我采用的是 RRF(Reciprocal Rank Fusion),即对两个检索结果分别赋予排名倒数权重,再合并排序。重点要提到你如何确定两个检索结果的权重比,比如通过线下评估集(如 100 条人工标注 query)调参,观察 Recall@K 和 MRR 指标。如果面试官追问“为什么不用学习式排序”,可以答“当时数据量不足以训练一个稳定的 reranker,且 RRF 实现成本低、效果可接受”。

追问 2:Agent 调用工具时,如果模型返回了不存在的函数名或参数格式错误,你怎么处理?

参考回答方向:三层兜底方案。第一层是 schema 校验,在调用工具前用 JSON Schema 对模型输出做校验,不合法直接拒绝并返回错误信息给模型,让模型重新生成;第二层是 重试机制,设置最大重试次数(比如 2 次),每次重试时把错误信息附加到对话历史里,引导模型修正输出;第三层是 人工兜底,如果重试仍失败,则返回预设的 fallback 回答。面试官可能会追问“为什么不用 function calling 的强制参数”,可以答“强制参数只能保证格式,不能保证语义正确,比如参数值枚举越界,仍需校验层拦截”。

追问 3:你提到做了 Prompt 压缩来降成本,具体怎么做的?

参考回答方向:分两个维度。一是 历史对话压缩,对超过 N 轮的对话,用一个小模型(如 7B 模型)将早期对话摘要成 2-3 句话,替换原始内容,只保留最近几轮完整对话;二是 工具结果截断,对工具返回的长文本(比如数据库查询结果),只保留与当前 query 最相关的前 K 行,或者用关键词抽取替代全文。要主动提到成本收益数据——比如压缩后 token 数降低 40%,但任务完成率只下降 2%,这个数据是你在实验里实测的。

准备建议

  1. Go 语言重点复习并发与内存管理。不要只背 goroutine 和 channel 的语法,要能画出 goroutine 泄漏的典型场景(比如 for 循环里启动 goroutine 但 channel 没有接收方),并说出排查工具(go vetpprofgoleak 测试库)。手写一个带超时控制的 worker pool,这是高频考题。
  1. RAG 项目要准备量化指标。面试官一定会问“你怎么知道你的 RAG 效果好”,不要只说“感觉回答更准了”。提前准备 3 个指标:召回率(Recall@K)、答案准确率(人工标注 50 条评测集)、端到端延迟(P95)。每个指标要有优化前后的对比数据,哪怕数据是模拟的也要逻辑自洽。
  1. 手撕算法题按 LeetCode 146 变体练习。带过期时间的 LRU 比原题多一个维度,建议用 map[key]*entry + 双向链表实现,entry 里存储 expireAt 时间戳。get 时先检查是否过期,过期则删除并返回 -1;put 时同理,如果 key 存在但已过期,视为新插入。注意并发安全,面试时可以用 sync.Mutex 包裹,并主动说明“如果要求更高性能,可以用分片锁或 sync.RWMutex 区分读写”。

结果反馈

三面通过,约一周后收到 HR 通知进入最终流程。

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