NiceOffer

面试面经 · 理想汽车

【理想汽车】【Agent 开发】【暑期实习一面】面经(八股+大模型项目+手撕)

理想汽车面经Agent 开发实习

理想汽车 Agent 开发 暑期实习一面面经

背景

海外一年制硕士,计算机相关专业,主攻 LLM 应用与后端工程,无实习经历,简历上有一个 RAG 问答系统和一个小型 Function Calling 项目。

题目摘要

  1. Go 基础:goroutine 与 channel 的使用场景,GMP 模型简述,内存逃逸分析。
  2. MySQL/Redis 八股:事务隔离级别与 MVCC 原理,Redis 持久化机制(RDB/AOF)对比,缓存穿透/击穿/雪崩的解决方案。
  3. RAG 项目深挖:如何评估检索质量?chunk 大小如何确定?多轮对话下的上下文管理策略?
  4. Function Calling 设计:如何让模型稳定地选择正确的 function?参数校验与错误恢复机制?
  5. 推理成本优化:Prompt 压缩、缓存策略、模型选型方面的实际经验。
  6. 手撕算法设计一个支持 insertdeletegetRandom 且时间复杂度 O(1) 的数据结构(LeetCode 380 变体,要求处理重复元素)。关键思路:HashMap 存值到索引集合的映射,数组存实际元素,删除时与末尾元素交换后 pop。

项目深挖

面试官对简历上的 RAG 项目追问非常细,全程约 25 分钟,是整场面试的核心环节。

追问 1:你的 RAG 系统在检索质量上做了哪些优化?如何量化评估?

参考回答方向:先明确 baseline 是纯向量检索(embedding 模型用 bge-large-zh),发现 top-5 召回准确率仅 62%。随后做了三项优化:① 混合检索(BM25 + 向量检索,RRF 融合),召回准确率提升至 78%;② 查询改写(对多轮对话中的指代消解,如"它的原理是什么"改写为完整问题),提升至 83%;③ 重排序模型(bge-reranker-base),top-5 准确率最终到 89%。评估方式上,构建了 200 条人工标注的 QA 测试集,指标用 Recall@K 和 MRR。面试官追问了 RRF 的公式和为什么有效,需要能现场推导。

追问 2:chunk 大小怎么定的?切分策略有哪些坑?

参考回答方向:对比了 128/256/512/1024 四档 chunk size,用召回率和生成质量两个维度评估,最终选了 256(约 200-300 中文字符)。切分策略上,按 Markdown 标题和段落结构做语义切分,避免硬切导致上下文断裂。坑点:① 表格和代码块容易被切断,需要特殊处理(检测到代码块或表格时整体作为一个 chunk);② 固定 size 的 chunk 在长文档中会丢失章节层级信息,所以额外加了 metadata(章节路径、页码)辅助检索。面试官追问了"chunk 重叠"的问题,回答是加了 10% 的重叠率,缓解边界信息丢失。

追问 3:Function Calling 场景下,如何保证模型不"幻觉"调用?

参考回答方向:三层防护:① Prompt 层——在 system prompt 中明确"仅当用户意图明确匹配某个 function 时才调用,否则返回普通回答",并给出正反例 few-shot;② 逻辑层——对模型返回的 function 名和参数做 JSON Schema 校验,不合法则丢弃该次调用并降级为普通对话;③ 兜底层——对关键 function(如数据库写入)加人工确认机制。另外,对 function 描述做了 A/B 测试,发现描述里加"何时使用/何时不使用"的说明能显著降低误调用率(从 18% 降至 6%)。面试官追问了"多个 function 参数相似时模型怎么选",回答是会在描述中强调区分点,并在返回结果中附带置信度供上层决策。

准备建议

  1. 项目深挖要准备"数据" 。面试官对"效果提升 X%"这类量化表述非常敏感,会追问评估集怎么建的、指标怎么算的。建议把项目中的每个优化点都配上实验对比数据(baseline vs 优化后),并准备好能现场推导的公式(如 RRF、MRR)。
  1. 手撕算法不要只刷高频题。这次考的 O(1) 数据结构是 LeetCode 380/381 的原题变体,属于"看似简单但边界条件多"的类型。建议把高频题的变体都刷一遍,特别是涉及"删除时交换末尾元素""HashMap 存索引集合"这类需要处理重复元素的题目。现场要边写边讲思路,面试官会盯着你的代码抠边界。
  1. Go 语言基础要系统过一遍。面试官不会只问语法,会直接问 GMP 模型、内存逃逸分析这类偏底层的问题。建议把《Go 语言设计与实现》中 goroutine、channel、内存管理三章过一遍,能画出 GMP 调度流程图,能解释逃逸分析的触发条件。另外,MySQL 和 Redis 的八股要准备到"能讲出原理推导过程"的深度,比如 MVCC 要能画出 undo log 版本链。

结果反馈

一面通过,3 天后约了二面(技术面 + 交叉面连着面)。整体感受是理想汽车的面试风格偏务实,不考偏题怪题,但会把你简历上写的东西一层层剥开问到底,建议在项目细节上多花时间准备。

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