小红书 多模态算法实习 一面二面面经
- 轮次
- 多轮面试合集
- 时间
- 2026-09
- 来源
- 牛客网
《面试题目》
一面
- 自我介绍。
- 深挖自动驾驶相关项目:阐述本人负责模块的整体技术思路(面试官会针对方案持续提出质疑,核心看能否把项目逻辑讲清楚)。
- 讲解多模态对齐相关论文:不需要完整复述全文,简要介绍之后面试官会直接切入细节,考察算法设计的底层数学原理与损失函数设计思路。
- BERT 的核心设计思想是什么?
- ViT 与文本 Transformer 模型结构差异是什么?分别说明基于两个模型做分类任务的实现方式,也就是图像分类、文本分类的落地思路。(回答不够完善时会继续追问 ViT 完整结构细节)
- 手写代码:LeetCode 整数的平方根。
二面
- 自我介绍。
- 介绍个人线上落地项目,并针对项目细节答疑。
- 讲解自己参与的论文工作。
- 继续深挖自动驾驶项目,重点介绍项目中最核心的优化点;同时提问未来是否会继续深耕自动驾驶方向。
- Transformer 核心原理是什么?
- 残差连接的原理与作用?
- 手撕代码:最长回文字符串,采用区间 DP 实现。
- 岗位业务介绍。
《参考解析》
- BERT 的核心设计思想:用 Transformer 的编码器堆叠,靠双向自注意力让每个 token 同时看到左右上下文,训练目标是掩码语言模型(随机遮 15% 的 token 去预测)加下一句预测。相比单向语言模型,双向上下文让它在理解类任务上更强;掩码带来的预训练与微调不一致是它的固有缺点,后续的 RoBERTa 等就是在这一点上改的。
- ViT 与文本 Transformer 的差异:结构上 ViT 只有编码器,输入是把图片切成固定大小的 patch、拉平后过线性层当 token,再叠加位置编码和一个用于分类的 cls token;文本 Transformer 的输入是词表 embedding,还要处理变长与 padding。做分类时 ViT 取 cls token 的输出接一个 MLP 头,文本侧通常取 cls 或对所有 token 做池化再接分类头。ViT 的短板是缺少卷积的局部归纳偏置,小数据上不如 CNN,要靠大规模预训练或蒸馏补回来。
- Transformer 的核心原理:自注意力用 Q 与 K 的点积算相关性、softmax 归一化后加权聚合 V,多头让模型在不同子空间里关注不同关系;因为注意力本身没有顺序概念,要额外加位置编码;每层配残差连接和 LayerNorm 保证梯度能顺畅回传,前馈网络做逐位置的非线性变换。
- 残差连接的原理与作用:把子层的输入直接加到输出上,形成一条恒等映射的捷径,让梯度在反向传播时有一条不衰减的通路,从而支撑几十层甚至上百层的网络;同时它把每层要学的东西从「完整映射」变成「残差」,优化难度明显下降。堆深了仍然退化的话,通常是归一化位置或初始化的问题。
- 最长回文字符串的区间 DP:定义 dp[i][j] 表示 s[i..j] 是否回文,转移是 s[i]==s[j] 且(j-i<2 或 dp[i+1][j+1]),按区间长度从小到大推,记录最长的合法区间;时间复杂度 O(n^2)、空间 O(n^2)。如果只要长度可以用中心扩展,空间降到 O(1);被追问时说明 Manacher 能做到线性,但现场写容易出错。
- 多模态对齐论文怎么讲、项目怎么扛质疑:讲论文按「要解决什么问题 → 现有方法的缺陷 → 关键设计 → 损失函数怎么构造 → 实验怎么证明」的顺序,主动停在损失函数上展开,因为面试官基本都会从这里切进去问数学细节。项目被持续质疑时别急着辩解,先复述对方的质疑点,再给出当时的约束、对比过的替代方案和量化结果,讲不清的数据就说没测过,比硬编一个数字安全得多。