NiceOffer

面试面经 · B站

【B站】【Agent 开发】【暑期实习HR面】面经(八股+大模型项目+手撕)

B站面经Agent 开发实习

背景

海外一年制硕士,计算机相关,暑期实习投递 B 站 Agent 开发岗,base 上海。整体面试节奏快,技术面 + 手撕一气呵成,HR 面偏软性但夹杂硬核追问,以下为复盘。

题目摘要

  • 编程语言基础(Java):JVM 内存区域划分、G1 垃圾收集器 vs CMS 区别、synchronized 与 ReentrantLock 底层实现对比
  • MySQL/Redis 八股:联合索引最左前缀原理、MVCC 实现机制、Redis 持久化 RDB/AOF 取舍、缓存穿透/击穿/雪崩场景与解决
  • Agent 项目深挖:RAG 检索优化、Function Calling 容错设计、多轮对话上下文裁剪策略、推理成本估算
  • 手撕算法LintCode 586 · Sqrt(x) 变体——求浮点数平方根,要求二分法实现并分析精度收敛条件

项目深挖

面试官对 Agent 项目明显做过功课,追问集中在工程落地而非炫技。

追问一:RAG 检索结果质量差,你怎么定位和优化?

参考回答方向:先分模块定位,用检索命中率(Recall@K)和生成准确率两个指标拆解。若 Recall 低,检查 chunk 切分粒度(固定长度 vs 语义切分)和 embedding 模型选择(通用 bge 是否适配领域术语);若 Recall 正常但生成差,大概率是 prompt 中上下文排序问题,需按相关度重排并截断。我当时实际用 bge-large-zh 替换默认 embedding 后 Recall 提升约 8%,同时把 top-k 从 3 调到 5 但加上了重排序(用 cross-encoder),最终生成准确率提升明显。面试官追问了重排序的开销,我答用 batch 推理 + 限制候选集在 20 以内,单次延迟增加约 30ms,可接受。

追问二:Function Calling 如果模型返回了不存在的函数名,你怎么处理?

参考方向:分两层兜底。第一层在 schema 定义时严格限定函数名枚举,并在 system prompt 中强调"只能调用给定函数";第二层在运行时做校验,若返回的函数名不在白名单内,则丢弃该次调用并让模型重新生成,最多重试 2 次。更稳妥的做法是加一层规则过滤——对参数做类型校验,比如日期格式、数字范围,避免模型幻觉导致非法入参。面试官追问"重试 2 次后仍失败怎么办",我答降级为纯文本回复,并记录日志用于后续 fine-tune 数据收集。

追问三:多轮对话上下文爆炸,你怎么控制成本?

参考方向:采用分层策略。短期记忆用滑动窗口(最近 N 轮完整保留),中期记忆做摘要(每 5 轮压缩一次),长期记忆走向量库检索。具体实现上,我用了一个简单的 token 预算器,当累计 token 超过阈值时触发摘要,摘要由模型生成并替换旧消息。成本方面,按每千 token 单价估算,单次长对话成本从原始方案的约 ¥0.15 降到 ¥0.06。面试官追问摘要丢失信息怎么办,我答允许用户手动 pin 关键消息,pin 过的消息不参与摘要替换。

手撕算法

题意:实现 double sqrt(double x),要求精度 1e-9,不允许用库函数。

关键思路:经典二分法,但注意浮点数边界。若 x < 1,则平方根大于 x,所以搜索区间应为 [0, max(1, x)]。每次取 mid = (l + r) / 2,比较 mid * mid 与 x 的差值绝对值是否小于 1e-9。复杂度 O(log(1/eps)),约 30 次迭代即可收敛。面试官额外要求处理 x = 0 和负数,答 0 返回 0,负数返回 NaN 或抛异常。

我写完后面试官问了"为什么不用牛顿迭代",我答二分更稳、无初值敏感问题,且本题精度要求下两者性能差距可忽略。他点头没追问。

准备建议

  1. 八股别背结论,要能画出过程。比如 MVCC 必须能画出 undo log 版本链 + ReadView 生成时机,G1 要能说出 Region 划分和 Mixed GC 触发条件。B 站面试官喜欢打断追问细节,答不上来比答错更减分。
  1. Agent 项目准备 3 个量化指标。检索命中率、函数调用成功率、单次对话平均成本,每个指标都要能说出"优化前多少、优化后多少、怎么测的"。没有真实数据就补跑实验,别虚报,HR 面会追问具体数字来源。
  1. 手撕题刷浮点数二分 + 字符串处理两类。Agent 岗面试官偏好考边界条件多的题目,浮点数二分、大数加法、正则匹配变体都是高频。刷题时每题至少写一遍完整可运行的代码,别只写伪代码。

结果反馈

一面通过,约 3 天后收到二面通知。整体感受是 B 站技术面务实、不装逼,但 HR 面会抠项目细节,建议把简历上每个数字都准备好解释口径。

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