NiceOffer

面试面经 · 地平线

【地平线】【大模型开发】【暑期实习HR面】面经(八股+大模型项目+手撕)

地平线面经大模型开发实习

地平线 大模型开发 暑期实习 HR面 面经

背景:海外一年制硕士,计算机相关专业,此前有一段中小厂 NLP 算法实习,主攻 LLM 应用层开发。

题目摘要

面试整体节奏偏快,技术问题密度高,但深度适中,更看重“是否真的动手做过”而非“背过多少”。核心考点如下:

  1. 编程语言基础(Go):goroutine 与 channel 的使用场景、GMP 模型简述、内存逃逸分析是什么、如何避免。没有问 Java,可能因为简历里写了 Go 项目。
  2. MySQL/Redis 八股:MySQL 索引失效的典型场景(最左前缀、隐式类型转换、LIKE '%xx');Redis 缓存穿透/击穿/雪崩的区别与解决方案;Redis 持久化 RDB/AOF 的优缺点及适用场景。
  3. 大模型项目深挖(RAG + Agent):基于简历中的“法律咨询 Agent”项目,追问了 RAG 检索质量评估方法、Function Calling 的触发机制与容错处理、上下文窗口溢出时的截断策略、以及推理成本(Token 消耗)如何优化。
  4. 手撕算法题题目:给定一个无序整数数组,找到最长连续序列的长度(LeetCode 128 原题)。要求时间 O(n)。关键思路:用 HashSet 存储所有元素,遍历每个数 x,仅当 x-1 不在集合中时,才以 x 为起点向后递增查找连续长度。这样每个数最多被访问两次,整体 O(n)。注意边界:空数组返回 0,负数也要处理。
  5. 场景设计题:如果让你设计一个“基于 LLM 的代码评审助手”,如何控制单次请求的 Token 消耗?提示从输入裁剪、缓存、模型选择三个角度回答。
  6. HR 行为面:为什么选择地平线而非互联网大厂?对“车规级 AI”有什么理解?能接受实习转正考核的周期吗?

项目深挖

面试官对简历中的“法律咨询 Agent”项目追问最多,以下是几个典型追问及参考回答方向:

追问 1:RAG 检索质量你怎么评估的?只用肉眼看过几个例子吗?

参考方向:不能只说“效果不错”。要给出量化指标,比如用 hit rate(检索命中率)和 MRR(平均倒数排名)评估召回结果;对生成答案用 BLEU/ROUGE 或 LLM-as-Judge 打分。更重要的是说明你如何构建“测试集”——从真实用户日志中采样 query,人工标注正确答案对应的文档片段。如果没时间做完整评测,至少要说明你发现了哪些典型失败模式(如专业术语分词错误导致检索不到),以及如何针对性优化(自定义词典、混合检索 BM25 + 向量)。

追问 2:Function Calling 偶尔不触发或参数传错,你怎么处理?

参考方向:不要只说“调 prompt”。实际工程中要加三层兜底:第一层,解析模型返回的 JSON,若格式非法则重试一次并附上错误信息;第二层,定义“参数校验器”,比如日期格式、枚举值校验,不合法就返回给模型一个结构化错误提示让其重新生成;第三层,若连续两次失败,降级为纯文本回复或转人工。另外,可以在 prompt 中给 2-3 个 few-shot 示例,特别是“拒绝调用”的示例,让模型学会在信息不足时反问而不是乱调。

追问 3:上下文窗口只有 8K,但用户历史消息可能超过 20K,你怎么做?

参考方向:核心是“分层摘要 + 滑动窗口”。短期记忆保留最近 2-3 轮完整消息;中期记忆用 LLM 对每 5 轮对话做一次增量摘要,存入向量库;长期记忆只存用户画像和关键偏好。当上下文超限时,先丢弃最旧的完整消息,保留摘要。注意:摘要本身也会占 Token,所以要对摘要长度设硬上限,比如 500 Token,超了就再压缩。另一个技巧是“关键信息抽取”——用正则或小模型从用户消息中抽取出结构化字段(时间、地点、金额),拼接到 system prompt 里,而不是把原文全部塞进去。

准备建议

  1. 把简历里每个项目都准备一个“数字故事”:用“背景 - 动作 - 量化结果”结构写下来。比如“RAG 检索命中率从 62% 提升到 81%”,面试官一定会追问“怎么测的”“基线是什么”“用了什么 trick”。提前把评测集构造方法、失败案例分析写成一页纸,面试前反复过。不要只准备“我做了什么”,要准备“我踩了什么坑、怎么爬出来的”。
  1. 算法题别只刷热门题,重点练“边界条件敏感型”的题:地平线手撕题难度不大,但要求一次写对。LeetCode 128 这类题,很多人知道用 HashSet 但写出来 bug 多(比如忘记处理空数组、重复元素)。建议每天手写 2-3 道中等难度题,重点检查空输入、单元素、全相同元素等边界。另外,面试时先和面试官确认输入范围和时间复杂度要求,再动笔,不要闷头写。
  1. 针对“大模型应用开发”岗位,准备一张“成本优化清单”:面试官非常关注工程落地能力,不是只会调 API。提前整理:①输入裁剪(只传相关历史、用摘要替代原文);②缓存策略(相同 query 的 embedding 和 LLM 结果都缓存到 Redis);③模型分级(简单意图分类用小模型,复杂推理用大模型);④批量推理(合并相似请求)。把这张清单背熟,遇到场景题直接分点输出,会显得很有工程感。

结果反馈

一面通过,约 5 天后收到二面通知,方向为系统设计 + 深度项目复盘。

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