NiceOffer

面试面经 · 华为

【华为】【大模型开发】【暑期实习二面】面经(八股+大模型项目+手撕)

华为面经大模型开发实习

华为 大模型开发 暑期实习二面 面经

背景:海外一年制硕士,主攻 NLP 与 LLM 应用,有一段中小厂大模型平台实习。

题目摘要

  1. Java 基础:ConcurrentHashMap 在 JDK 7/8 中的结构差异,put 流程中锁的粒度变化,以及 size() 方法在并发下的实现逻辑。
  2. MySQL 与 Redis 八股:MVCC 下 RR 隔离级别如何解决幻读;Redis 持久化 RDB 与 AOF 的取舍,以及混合持久化在重启时的恢复顺序。
  3. RAG 项目深挖:针对我简历中的企业知识库问答项目,追问 chunk 切分策略、召回融合、以及 rerank 的必要性。
  4. Agent 项目深挖:关于 Function Calling 的 prompt 构造、多轮工具调用的上下文管理、以及推理成本优化手段。
  5. 手撕算法合并 K 个升序链表(力扣 23)。要求先讲思路(优先队列/分治),再写代码,最后分析时间与空间复杂度。
  6. 开放题:如果让一个 7B 模型在端侧跑 RAG,你会怎么设计整体架构?

项目深挖

面试官全程围绕我简历上的「RAG 知识库问答」与「多工具 Agent」两个项目,问题密度高且层层递进,没有一句废话。

追问 1:你的 chunk 切分策略是什么?为什么不用固定长度?

追问 2:你的 Agent 在多次 Function Calling 中,如何管理历史工具调用记录?

追问 3:推理成本优化你具体做了什么?

手撕算法

题目是合并 K 个升序链表。我先说思路:维护一个大小为 K 的最小堆,每次弹出堆顶节点(当前 K 个头节点中最小的),将其 next 入堆,直到堆空。时间复杂度 O(N log K),N 为总节点数,空间复杂度 O(K)。面试官让我写完后,追问了“如果 K 很大但每个链表很短,堆法和分治哪个更好”,我答堆法在 K 大时堆操作开销可控,分治需要多轮合并,但两者复杂度同阶,实际看链表长度分布。面试官点头后没再刁难。

准备建议

  1. 把 RAG 的每个环节都准备到“能讲出为什么”:chunk 切分、embedding 模型选型、召回数量、rerank 阈值、以及检索失败时的兜底策略。面试官一定会沿着你的方案往下追,不要只会说“我用了 LangChain”,要能讲出每个默认配置背后的 trade-off。
  2. Agent 项目重点准备“多轮与多工具”场景:工具调用的 prompt 怎么写、结果怎么回填、上下文怎么裁剪、怎么防幻觉调用。建议自己画一张流程图,把一次完整的多工具调用链路画清楚,面试时直接对着讲。
  3. 算法题刷透“堆 + 链表”组合:合并 K 个有序链表、K 个有序数组合并、Top K 高频元素这类题都是大模型岗位的高频题,因为和 RAG/搜索召回的场景有天然关联。刷题时一定要求自己先讲思路再写代码,模拟面试节奏。

结果反馈

一面通过后约了二面,整体节奏紧凑,面试官对工程细节的追问比一面深一个量级,但所有问题都贴着简历走,没有故意刁难。目前等 HR 通知三面时间。

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