面灵AI→

小红书 大模型算法岗面经合集:隐式 CoT、RAG 上下文管理与 LoRA 微调

轮次
多轮面试合集
时间
2026-09
来源
牛客网

《面试题目》

面经 01(2026 年 9 月 10 日)

  1. 能不能做到训练时让模型输出 CoT、推理阶段不输出 CoT,同时保证答案准确率不下降?

面经 02(2026 年 9 月 3 日)

  1. RAG 知识库项目背景及整体流程
  2. 文档分块怎么做的?
  3. 项目中进行了什么优化?(向量前置化、摘要优化)
  4. 多轮对话为什么需要指代消解?指代消解是什么问题,能够具体讲一下吗?
  5. 简历里面的最近 N 轮 + Summary 的上下文管理机制是怎么做的?上下文膨胀问题你是怎么解决的?
  6. 业界的上下文管理机制你有了解吗?
  7. 自己有没有使用 AI Coding、Agent 做实际产品?
  8. 模型如何判断调用哪个 Skill?
  9. 除了用户显式指定 skill,模型还有什么调用 skill 的方式?

算法题:链表删除倒数第 N 个结点(写完说明复杂度 O(n))

面经 03(2026 年 8 月 5 日)

  1. 初召候选数和最终展示数
  2. 说明测试集搭建方案、AUC 评估逻辑、模型效果提升判定标准
  3. 阐述 MSE 收敛但排序效果下滑问题的发现、定位全过程
  4. 改用 BCE+InfoNCE 联合损失的原因,两项损失各自带来的效果增益
  5. 基于原生 NTP 任务 Qwen 模型,如何适配下游检索监督训练
  6. 检索打分选用余弦相似度、不直接使用模型 logits 的理由
  7. vLLM FP16 均值池化出现溢出、NaN 问题的排查与修复方案
  8. 搜索、推荐任务在建模逻辑、标签设计上的核心差异
  9. 搜索场景 Query 独有特性,User-Query-Item 三者建模方案
  10. 选择 LoRA 微调而非全量微调的原因
  11. LoRA 底层原理、Rank 选取依据、A/B 矩阵初始化细节
  12. InfoNCE 假负样本带来的负面影响,对应的缓解手段
  13. 写出 BCE 损失公式,分析软标签能否直接参与训练
  14. 手写 InfoNCE 矩阵表达式,讲解代码实现思路

算法题:现场编写快速排序算法,讲解实现思路

面经 04(2026 年 8 月 5 日)

  1. React、Vue 中使用 context 避免多层 props 传递该如何理解,有什么注意点?
  2. 你项目里的一键接入模块是什么,属于工具还是业务组件?
  3. 详细介绍视频剪辑智能体整体架构设计
  4. 该视频智能体配套前端如何实现,用户和智能体交互方式是什么?
  5. 用户提交视频编辑任务的完整执行流程,大模型、LangChain 在 MQ 前还是后介入?
  6. 智能体任务数据包包含哪些上下文信息?
  7. 多工具编排与异步调度如何实现?
  8. 说说你对工作流和大模型两者关系的理解
  9. 什么场景适合用大模型,什么场景适合工作流,如何权衡二者?
  10. 平时使用过哪些 Agent、AI 编排框架?是否用过 Claude Code、Codex?
  11. Claude Code 类代码 Agent 的内部实现原理、整体设计思路,为何能自主完成多步任务而非单次输出?
  12. 代码 Agent 处理一次编码任务大概会调用多少次大模型?
  13. 长轮次对话上下文超限有哪些压缩、节省 token 的方案?项目上下文如何筛选有效片段?
  14. 让你设计线上异常排查智能体,整体架构如何设计、如何发起各类调用?
  15. 线上告警发生时,排查 Agent 的完整执行步骤,如何约束流程流转?
  16. LangGraph 有向无环图如何定义给 Agent?
  17. 既然流程可固定,为何不使用传统工作流?
  18. 平时是否刷算法题?刷题平台、刷题方向是什么?
  19. 日常开发常用编程语言
  20. 团队当前核心落地的 Agent 业务场景是什么?目前是 POC 验证阶段,还是大规模线上跑业务拿收益的阶段?核心业务指标怎么衡量 Agent 效果?
  21. 生产环境 Agent 面对大模型幻觉、工具调用错误,团队是偏向提示词优化、规则约束,还是靠图状态做校验拦截?

面经 05(2026 年 7 月 9 日)

  1. 如今大家都在用 AI 进行提效,如果该系统让你来维护的话,结合 AI 你能进行哪些优化呢?
  2. 你认为这个系统哪一点设计得不合理?或者说浪费时间最多的一个步骤是什么?
  3. 缓存你了解吗?

手撕:数组中原地移除所有数值等于 val 的元素,剩下的元素从头开始排

面经 06(2026 年 7 月 8 日)

  1. 项目里为什么用 SSE?如果不用 SSE,还有哪些替代方案?
  2. SSE 在生产环境里容易踩哪些坑?怎么解决?
  3. DDD 是什么?微服务一定要按 DDD 来拆吗?
  4. MySQL 慢查询怎么排查和优化?
  5. 分布式 ID 怎么设计?不同业务允许重复吗?
  6. 号段模式为什么适合高并发?它有什么问题?
  7. 做 Agent 时用 ReAct 还是 Plan-and-Execute?怎么选?

面经 07(2026 年 7 月 1 日)

  1. 你现在还在实习吗?
  2. 实习是到期离职还是其他原因?
  3. 在做视频剪辑 Agent 项目遇到的最大挑战是什么?
  4. 项目里 LangChain 做了哪些工具调用,有没有实现 memory 相关功能,还是只做 prompt 编排?
  5. 你如何保证每次调用大模型的稳定性?
  6. 从文案到剪辑脚本再到成片完整流程是什么样的?
  7. 视频成片质量好坏你们有对应的评测体系吗?
  8. 单个视频耗时从三十分钟缩短到五分钟,你做了哪些优化?
  9. 在项目里怎么保证音画同步、画面分辨率一致、字幕完整?
  10. 有没有尝试其他大模型,选择它的考量是什么?
  11. 模型输出效果评测是固定自动化 benchmark 还是依靠人工主观判断?
  12. 简单介绍下视频生成 Agent 完整项目?
  13. 两段实习感受有什么不同?
  14. 两段实习你更喜欢哪一种工作模式?
  15. 你最近有没有关注 AI 行业相关动态,印象最深的内容是什么?
  16. LangGraph 的核心关键点是什么?
  17. 你做的知识库体系和 Vicky 这类工具本质区别是什么?
  18. 你的知识库内容是不是基于 spec 文档做归纳总结生成的?
  19. 你设计的可验证知识库,打算通过什么方案完成验证?
  20. 多模态业务和纯文本大模型业务有什么区别?
  21. 选择 LangGraph 框架是否完全取决于业务场景?
  22. 团队落地 AI 产品时,怎么平衡大模型推理延迟与成本?
  23. 复杂任务链的超时熔断,团队偏向规则硬控制还是动态模型智能降级?
  24. 做多模态实时交互,架构会选 LangGraph 还是轻量流式编排?

《参考解析》

  1. 「训练输出 CoT、推理不输出」考的是隐式推理路线:主流答法是双任务蒸馏——用强 Teacher 对同一批问题生成推理过程(rationale)和答案(label),学生模型同时学两个任务,一个输入问题输出完整 CoT、另一个直接输出答案,推理时只走后者;进一步可以用互信息对齐让两个任务的隐表示保持一致。再往深一层是逐步内化:训练前期让学生输出完整 CoT 加答案,中期只输出部分推理步骤,后期完全去掉推理文本只留答案,把推理能力压进参数里。要主动说清代价——隐式路线的可解释性下降、复杂多跳题上的准确率通常仍有损失,所以工程上常按题目难度分流。

  2. 上下文膨胀与「最近 N 轮 + Summary」:常见机制是保留最近 N 轮原始对话、更早的内容压缩成滚动摘要,同时把长期事实(用户偏好、任务状态)写进结构化的记忆而不是自由文本。回答时要能说清失效场景:摘要会丢细节、多轮里出现过又被压缩掉的约束会丢,所以需要关键信息单独存槽位;再补上业界做法(分层摘要、按相关性检索历史片段、工具结果截断与引用式存储),并指出压缩本身要花额外 token 和延迟,压缩策略应该按任务类型定而不是全局一刀切。

  3. 指代消解是 RAG 多轮对话的必修课:用户第二轮的「它」「这个」往往指代上一轮的实体,如果直接拿原始 query 去检索,向量会落在错误的语义区域。工程做法是先做 query 改写——把历史对话和当前问题一起喂给小模型,产出独立的、自包含的检索 query,再走检索;也可能顺手做 query 扩展和同义改写。要能讲清评估方式:构造带指代的多轮测试集,对比改写前后的召回率与最终回答正确率,而不是凭感觉说「效果好了」。

  4. BCE 与 InfoNCE 联合损失、以及假负样本:BCE 是逐条的二分类交叉熵,输出概率有绝对含义,适合精排打分;InfoNCE 是带温度系数的 softmax 对比损失,把同批次内其他样本当负样本,塑造「相似靠近、难负样本分离」的几何结构,适合召回与表征学习。两者一起用,前者管校准、后者管排序结构。假负样本指 batch 内恰好语义相同的样本被当成负样本,会把正样本推开,缓解手段包括去重、用双塔相似度或规则过滤高相似候选、改用 supervised contrastive 或带软标签的损失。软标签能不能直接进 BCE,要看标签语义——当软标签是另一模型的概率输出时,直接回归会学到教师偏差,通常做蒸馏或标签平滑而不是当独立真值。

  5. vLLM FP16 均值池化溢出、NaN 的排查路径:先缩到最小复现——短序列加 eager 路径跑一遍,确认是不是特定 kernel 的问题,再和 vLLM 的 fused kernel、量化与非量化路径分别对比,同时检查导出模型的权重 dtype、KV Cache 与 pooling 接口是否对得上。如果中间 hidden 已经异常,就往上游查 attention logits、mask 里的 -inf、位置编码、权重加载、输入是否做了归一化,以及模型本身的数值范围。修复思路是把 L2 norm、normalize 这类容易放大的运算放到 FP32 里算再按向量库要求转回 FP16,同时给全 padding 输入定义明确语义——报错、跳过或返回带状态的零向量,绝不能默默当成正常 embedding 入库。

  6. LoRA 为什么能替代全量微调:核心理由是显存与成本——只训练低秩增量矩阵,优化器只需维护 adapter 的参数和状态,不用为全部参数保存梯度与优化器状态,多任务还能挂不同 adapter、便于回滚与热插拔。回答时给点量级感更好:全参微调 7B 的优化器状态动辄几十上百 GB,LoRA 只占其中极小一块。代价也要说清——低秩假设在领域分布差异极大的任务上可能欠拟合,这时候要么提高 rank,要么回到全参;至于效果差距有多大,取决于底座与目标域的接近程度。

  7. Rank 选取与 A、B 矩阵初始化:rank 决定增量矩阵的秩,取值看任务复杂度与数据量,常见起点是 8 到 32,配合 alpha 控制缩放比例(alpha 相对 rank 越大,更新幅度越强)。初始化的关键是让训练起点等价于原模型——一侧随机高斯、另一侧置零,这样乘积为零、增量为零,不会一上来就破坏底座输出。被追问时再补上 LoRA 与 QLoRA(量化底座)、DoRA(分解幅度与方向)这些变体的差别,以及「合并权重推理」和「保留 adapter 热插拔」两种上线方式的取舍。