小红书 大模型算法岗面经合集:隐式 CoT、RAG 上下文管理与 LoRA 微调
- 轮次
- 多轮面试合集
- 时间
- 2026-09
- 来源
- 牛客网
《面试题目》
面经 01(2026 年 9 月 10 日)
- 能不能做到训练时让模型输出 CoT、推理阶段不输出 CoT,同时保证答案准确率不下降?
面经 02(2026 年 9 月 3 日)
- RAG 知识库项目背景及整体流程
- 文档分块怎么做的?
- 项目中进行了什么优化?(向量前置化、摘要优化)
- 多轮对话为什么需要指代消解?指代消解是什么问题,能够具体讲一下吗?
- 简历里面的最近 N 轮 + Summary 的上下文管理机制是怎么做的?上下文膨胀问题你是怎么解决的?
- 业界的上下文管理机制你有了解吗?
- 自己有没有使用 AI Coding、Agent 做实际产品?
- 模型如何判断调用哪个 Skill?
- 除了用户显式指定 skill,模型还有什么调用 skill 的方式?
算法题:链表删除倒数第 N 个结点(写完说明复杂度 O(n))
面经 03(2026 年 8 月 5 日)
- 初召候选数和最终展示数
- 说明测试集搭建方案、AUC 评估逻辑、模型效果提升判定标准
- 阐述 MSE 收敛但排序效果下滑问题的发现、定位全过程
- 改用 BCE+InfoNCE 联合损失的原因,两项损失各自带来的效果增益
- 基于原生 NTP 任务 Qwen 模型,如何适配下游检索监督训练
- 检索打分选用余弦相似度、不直接使用模型 logits 的理由
- vLLM FP16 均值池化出现溢出、NaN 问题的排查与修复方案
- 搜索、推荐任务在建模逻辑、标签设计上的核心差异
- 搜索场景 Query 独有特性,User-Query-Item 三者建模方案
- 选择 LoRA 微调而非全量微调的原因
- LoRA 底层原理、Rank 选取依据、A/B 矩阵初始化细节
- InfoNCE 假负样本带来的负面影响,对应的缓解手段
- 写出 BCE 损失公式,分析软标签能否直接参与训练
- 手写 InfoNCE 矩阵表达式,讲解代码实现思路
算法题:现场编写快速排序算法,讲解实现思路
面经 04(2026 年 8 月 5 日)
- React、Vue 中使用 context 避免多层 props 传递该如何理解,有什么注意点?
- 你项目里的一键接入模块是什么,属于工具还是业务组件?
- 详细介绍视频剪辑智能体整体架构设计
- 该视频智能体配套前端如何实现,用户和智能体交互方式是什么?
- 用户提交视频编辑任务的完整执行流程,大模型、LangChain 在 MQ 前还是后介入?
- 智能体任务数据包包含哪些上下文信息?
- 多工具编排与异步调度如何实现?
- 说说你对工作流和大模型两者关系的理解
- 什么场景适合用大模型,什么场景适合工作流,如何权衡二者?
- 平时使用过哪些 Agent、AI 编排框架?是否用过 Claude Code、Codex?
- Claude Code 类代码 Agent 的内部实现原理、整体设计思路,为何能自主完成多步任务而非单次输出?
- 代码 Agent 处理一次编码任务大概会调用多少次大模型?
- 长轮次对话上下文超限有哪些压缩、节省 token 的方案?项目上下文如何筛选有效片段?
- 让你设计线上异常排查智能体,整体架构如何设计、如何发起各类调用?
- 线上告警发生时,排查 Agent 的完整执行步骤,如何约束流程流转?
- LangGraph 有向无环图如何定义给 Agent?
- 既然流程可固定,为何不使用传统工作流?
- 平时是否刷算法题?刷题平台、刷题方向是什么?
- 日常开发常用编程语言
- 团队当前核心落地的 Agent 业务场景是什么?目前是 POC 验证阶段,还是大规模线上跑业务拿收益的阶段?核心业务指标怎么衡量 Agent 效果?
- 生产环境 Agent 面对大模型幻觉、工具调用错误,团队是偏向提示词优化、规则约束,还是靠图状态做校验拦截?
面经 05(2026 年 7 月 9 日)
- 如今大家都在用 AI 进行提效,如果该系统让你来维护的话,结合 AI 你能进行哪些优化呢?
- 你认为这个系统哪一点设计得不合理?或者说浪费时间最多的一个步骤是什么?
- 缓存你了解吗?
手撕:数组中原地移除所有数值等于 val 的元素,剩下的元素从头开始排
面经 06(2026 年 7 月 8 日)
- 项目里为什么用 SSE?如果不用 SSE,还有哪些替代方案?
- SSE 在生产环境里容易踩哪些坑?怎么解决?
- DDD 是什么?微服务一定要按 DDD 来拆吗?
- MySQL 慢查询怎么排查和优化?
- 分布式 ID 怎么设计?不同业务允许重复吗?
- 号段模式为什么适合高并发?它有什么问题?
- 做 Agent 时用 ReAct 还是 Plan-and-Execute?怎么选?
面经 07(2026 年 7 月 1 日)
- 你现在还在实习吗?
- 实习是到期离职还是其他原因?
- 在做视频剪辑 Agent 项目遇到的最大挑战是什么?
- 项目里 LangChain 做了哪些工具调用,有没有实现 memory 相关功能,还是只做 prompt 编排?
- 你如何保证每次调用大模型的稳定性?
- 从文案到剪辑脚本再到成片完整流程是什么样的?
- 视频成片质量好坏你们有对应的评测体系吗?
- 单个视频耗时从三十分钟缩短到五分钟,你做了哪些优化?
- 在项目里怎么保证音画同步、画面分辨率一致、字幕完整?
- 有没有尝试其他大模型,选择它的考量是什么?
- 模型输出效果评测是固定自动化 benchmark 还是依靠人工主观判断?
- 简单介绍下视频生成 Agent 完整项目?
- 两段实习感受有什么不同?
- 两段实习你更喜欢哪一种工作模式?
- 你最近有没有关注 AI 行业相关动态,印象最深的内容是什么?
- LangGraph 的核心关键点是什么?
- 你做的知识库体系和 Vicky 这类工具本质区别是什么?
- 你的知识库内容是不是基于 spec 文档做归纳总结生成的?
- 你设计的可验证知识库,打算通过什么方案完成验证?
- 多模态业务和纯文本大模型业务有什么区别?
- 选择 LangGraph 框架是否完全取决于业务场景?
- 团队落地 AI 产品时,怎么平衡大模型推理延迟与成本?
- 复杂任务链的超时熔断,团队偏向规则硬控制还是动态模型智能降级?
- 做多模态实时交互,架构会选 LangGraph 还是轻量流式编排?
《参考解析》
-
「训练输出 CoT、推理不输出」考的是隐式推理路线:主流答法是双任务蒸馏——用强 Teacher 对同一批问题生成推理过程(rationale)和答案(label),学生模型同时学两个任务,一个输入问题输出完整 CoT、另一个直接输出答案,推理时只走后者;进一步可以用互信息对齐让两个任务的隐表示保持一致。再往深一层是逐步内化:训练前期让学生输出完整 CoT 加答案,中期只输出部分推理步骤,后期完全去掉推理文本只留答案,把推理能力压进参数里。要主动说清代价——隐式路线的可解释性下降、复杂多跳题上的准确率通常仍有损失,所以工程上常按题目难度分流。
-
上下文膨胀与「最近 N 轮 + Summary」:常见机制是保留最近 N 轮原始对话、更早的内容压缩成滚动摘要,同时把长期事实(用户偏好、任务状态)写进结构化的记忆而不是自由文本。回答时要能说清失效场景:摘要会丢细节、多轮里出现过又被压缩掉的约束会丢,所以需要关键信息单独存槽位;再补上业界做法(分层摘要、按相关性检索历史片段、工具结果截断与引用式存储),并指出压缩本身要花额外 token 和延迟,压缩策略应该按任务类型定而不是全局一刀切。
-
指代消解是 RAG 多轮对话的必修课:用户第二轮的「它」「这个」往往指代上一轮的实体,如果直接拿原始 query 去检索,向量会落在错误的语义区域。工程做法是先做 query 改写——把历史对话和当前问题一起喂给小模型,产出独立的、自包含的检索 query,再走检索;也可能顺手做 query 扩展和同义改写。要能讲清评估方式:构造带指代的多轮测试集,对比改写前后的召回率与最终回答正确率,而不是凭感觉说「效果好了」。
-
BCE 与 InfoNCE 联合损失、以及假负样本:BCE 是逐条的二分类交叉熵,输出概率有绝对含义,适合精排打分;InfoNCE 是带温度系数的 softmax 对比损失,把同批次内其他样本当负样本,塑造「相似靠近、难负样本分离」的几何结构,适合召回与表征学习。两者一起用,前者管校准、后者管排序结构。假负样本指 batch 内恰好语义相同的样本被当成负样本,会把正样本推开,缓解手段包括去重、用双塔相似度或规则过滤高相似候选、改用 supervised contrastive 或带软标签的损失。软标签能不能直接进 BCE,要看标签语义——当软标签是另一模型的概率输出时,直接回归会学到教师偏差,通常做蒸馏或标签平滑而不是当独立真值。
-
vLLM FP16 均值池化溢出、NaN 的排查路径:先缩到最小复现——短序列加 eager 路径跑一遍,确认是不是特定 kernel 的问题,再和 vLLM 的 fused kernel、量化与非量化路径分别对比,同时检查导出模型的权重 dtype、KV Cache 与 pooling 接口是否对得上。如果中间 hidden 已经异常,就往上游查 attention logits、mask 里的 -inf、位置编码、权重加载、输入是否做了归一化,以及模型本身的数值范围。修复思路是把 L2 norm、normalize 这类容易放大的运算放到 FP32 里算再按向量库要求转回 FP16,同时给全 padding 输入定义明确语义——报错、跳过或返回带状态的零向量,绝不能默默当成正常 embedding 入库。
-
LoRA 为什么能替代全量微调:核心理由是显存与成本——只训练低秩增量矩阵,优化器只需维护 adapter 的参数和状态,不用为全部参数保存梯度与优化器状态,多任务还能挂不同 adapter、便于回滚与热插拔。回答时给点量级感更好:全参微调 7B 的优化器状态动辄几十上百 GB,LoRA 只占其中极小一块。代价也要说清——低秩假设在领域分布差异极大的任务上可能欠拟合,这时候要么提高 rank,要么回到全参;至于效果差距有多大,取决于底座与目标域的接近程度。
-
Rank 选取与 A、B 矩阵初始化:rank 决定增量矩阵的秩,取值看任务复杂度与数据量,常见起点是 8 到 32,配合 alpha 控制缩放比例(alpha 相对 rank 越大,更新幅度越强)。初始化的关键是让训练起点等价于原模型——一侧随机高斯、另一侧置零,这样乘积为零、增量为零,不会一上来就破坏底座输出。被追问时再补上 LoRA 与 QLoRA(量化底座)、DoRA(分解幅度与方向)这些变体的差别,以及「合并权重推理」和「保留 adapter 热插拔」两种上线方式的取舍。