27届秋招大模型岗面经
27届秋招大模型岗面经
碎碎念
慌死了
面试记录
| 面试 | 时间 | 回忆 | 结果 |
|---|---|---|---|
| 字节-抖音AI搜-一面 | 2026-08-07_11:00 | 有同事对这个团队比较熟悉,做的是 VLM RL 跟我实习工作比较 match | - |
| 拼多多-弧云计划算法工程师-一面 | 2026-08-07_15:00 | 上来一个 leetcode hard,业务不问全是八股,都不会,四十分钟结束,感觉寄了 | - |
| 百度-Comate团队-一面 | 2026-08-10_11:00 | 一个做 Code Agent 的团队,问了 GRPO 相关的八股,说我是偏基模的,他们团队主要是做框架的,应该好好准备一下 Code Agent 相关的知识和 Lost in the Middle 相关的工作。面完下午很快就约二面了,冲! | - |
| 百度-Comate团队-二面 | 2026-08-11_14:00 | 期待捏 |
八股积累
机器学习基础
常用的激活函数有哪些?(拼多多弧云计划一面)
- Sigmiod
\[ \sigma(x) = \frac{1}{1 + e^{-x}} \]
输出范围是 \((0, 1)\),浅层神经网络常用。缺点是绝对值较大的时候导数很小,会出现梯度消失,同时输出不是零中心的。现在的深层神经网络已经很少用。
- tanh
\[ \tanh (x) = \frac{e^{x} - e^{-x}}{e^{x} + e^{-x}} \]
输出范围是 \((-1, 1)\),和 Sigmiod 差不多,但是是零中心的,同样存在梯度消失。早期 RNN 用得多。
- ReLU
\[ \text{ReLU}(x) = \max(0, x) \]
深度学习很经典的激活函数。优点是计算简单,不会出现梯度消失。缺点是 \(x<0\) 时恒为 0,神经元可能永远无法恢复,也就是所谓的 Dead ReLU。
- GELU
\[ \text{GELU}(x) = x \Phi(x) \]
其中 \(\Phi(x)\) 是标准正态分布的累积分布函数。可以把它理解成一种平滑版的 ReLU:ReLU 是直接决定“保留还是丢弃”,而 GELU 会根据输入大小进行一种平滑的概率加权。BERT、GPT 等 Transformer 模型中大量使用 GELU。
- SiLU
\[ \text{SiLU}(x)=x\sigma(x) \]
它也是一个平滑的非线性函数,相比 ReLU,负数部分不会直接被截断。近年来很多大模型会使用 SiLU,例如一些 LLaMA 系列模型的 FFN 中就会结合 SiLU 使用。
- SwiGLU
\[ \text{SwiGLU}(x) = \text{SiLU}(xW_1)\odot(xW_2) \]
就是在 LLM 的 SiLU FNN 中加入一个 \(W_2\) 旁路,让 \(\text{SiLU}(xW_1)\) 和 \(xW_2\) 按位相乘,再经过一个 \(W_3\)。模型可以通过门控动态控制哪些特征通过,因此现在很多 LLM 都采用 SwiGLU。
flowchart LR
X["输入 x"] --> A["W₁"]
X --> B["W₂"]
A --> C["SiLU"]
C --> D["逐元素乘 ⊙"]
B --> D
D --> E["W₃"]
E --> Y["输出"]
常用的损失函数(拼多多弧云计划一面)
回归任务
- 均方误差损失 MSE
\[ \text{MSE}=\frac{1}{n}\sum (y_{i} - \hat{y}_{i})^2 \]
\(n\) 是批次大小,\(y_i\) 是真实值,\(\hat{y}_i\) 是预测。优点是平滑,缺点是误差过大则损失过大。
- MAE
\[ \text{MAE}=\frac{1}{n}\sum |y_{i} - \hat{y}_{i}| \]
缺点是在 0 处不平滑,优点是相比 MSE 更加鲁棒。
- Huber Loss
\[ L = \left\{ \begin{aligned} & \frac{1}{2}(y_i - \hat{y}_i)^2 &, |y_i - \hat{y}_i| \leq \delta\\ & \delta \cdot |y_i - \hat{y}_i| - \frac{1}{2}\delta^2 &, |y_i - \hat{y}_i| > \delta \end{aligned} \right. \]
兼顾了 MSE 的平滑性和 MAE 的鲁棒性。
分类任务
- 二分类交叉熵损失(BCE)
\[ L = -y\log(\hat{y}) - (1-y)\log(1-\hat{y}) = \left\{ \begin{aligned} & -\log(1-\hat{y}) &, y=0\\ & -\log(\hat{y}) &, y=1 \end{aligned} \right. \]
不仅用于二分类,也可以用于多标签分类,多标签分类中模型输出的 logit 会经过一个 Sigmiod 得到概率 \(\hat{y}\)。
- 交叉熵损失
\[ L =- \sum\limits^{C}y_c\log\hat{y}_c \]
对于独热标签的多分类问题,错误答案的 \(y_c\) 都是 0: \[ L=-\log \hat{y}_y \] 也就是模型给正确答案的概率越高,\(L\) 越小。
对比学习
- InfoNCE
\[ L=-\log \frac{ e^{\mathrm{sim}(q,d^+)/\tau} }{ e^{\mathrm{sim}(q,d^+)/\tau} +\sum_j e^{\mathrm{sim}(q,d_j^-)/\tau} } \]
拉近正样本,推远负样本。其中 \(\tau\) 是温度,控制 Softmax 的尖锐程度。
- Triplet Loss
\[ L=\max(0,d(a,p)-d(a,n)+m) \]
挖坑
大模型算法概念
大模型应用开发
Code Agent(百度 Comate)
Code Agent 的执行流程
Code Agent 的执行流程可以概括成一个 “理解 → 定位 → 修改 → 执行 → 验证 → 迭代” 的闭环。
- 理解任务:先分析用户需求,明确要修改什么、目标是什么、有哪些约束。
- 探索代码库:通过
ls / glob / tree看项目结构,再用grep / rg / LSP搜索相关函数、类和调用链。 - 读取上下文:通过
Read读取相关代码、配置文件、测试代码,理解现有实现和问题原因。 - 制定修改方案:判断应该改哪些文件、影响范围多大,尽量做最小必要修改。
- 执行代码修改:通过
Edit / Write修改代码,必要时新增文件或配置。 - 运行验证:使用 Shell
执行单测、编译、lint、运行程序等,例如
pytest、npm test。 - 根据反馈迭代:如果测试失败,就读取报错、日志或 traceback,重新定位问题并继续修改。
- 最终检查:通过
git diff查看改动,确认没有引入无关修改,测试通过后输出结果。
可以记成一个非常简洁的流程:
flowchart LR
A[接收任务] --> B[理解需求]
B --> C[搜索并阅读代码]
C --> D[制定修改方案]
D --> E[修改代码]
E --> F[运行与测试]
F --> G[观察执行结果]
G --> H{是否成功?}
H -->|失败| C
H -->|成功| I[检查改动并完成]
其中最关键的一点是:Code Agent 不是一次性生成代码,而是基于工具执行结果不断 Observe → Reason → Act,形成闭环。
Code Agent 常用的工具
Code Agent 的工具大体可以分成下面几类:
| 类别 | 常见工具 | 主要作用 |
|---|---|---|
| 文件系统工具 | Read / Write / Edit / Glob | 读取、创建、修改文件,查找目录和文件 |
| 代码搜索工具 | Grep / ripgrep / AST Search | 搜索符号、函数调用、字符串和代码引用 |
| Shell / Terminal | Bash / Shell | 执行命令,是 Code Agent 最核心的通用工具之一 |
| 代码执行工具 | Python / Node / Compiler | 实际运行代码、脚本和编译项目 |
| 测试工具 | pytest / unittest / npm test 等 | 自动验证代码修改是否正确 |
| Git 工具 | git diff / status / log / commit | 查看修改、历史版本、代码差异 |
| GitHub 工具 | PR / Issue / Actions | 阅读 Issue、处理 PR、查看 CI 结果 |
| Web / 文档搜索 | Web Search / Fetch / Docs | 查询 API 文档、依赖库用法和错误信息 |
| 浏览器工具 | Browser / Playwright | 调试 Web 应用、验证页面行为 |
| LSP / IDE 工具 | Definition / References / Diagnostics | 跳转定义、查找引用、获取编译和类型错误 |
其中最基础、最核心的通常就是:
Read / Edit + Grep + Shell。
因为实际上很多 Code Agent 都可以通过 Shell 间接完成大量操作,比如:
1 | |
所以从 Agent 设计角度看,Shell 本身就是一个能力非常强的通用工具。
总结:
Code Agent 常用工具主要有几类:第一类是文件系统工具,比如 Read、Write、Edit、Glob;第二类是代码检索工具,比如 Grep、ripgrep,用来定位函数和调用关系;第三类是 Shell,可以执行 Python、编译、pytest 等命令;第四类是 Git/GitHub 工具,用来查看 diff、commit、PR 和 CI;另外还可能有 Web Search、Browser、LSP 等工具。
我觉得 Code Agent 最核心的其实是 Read/Edit + Search + Shell。它通过这些工具形成“搜索代码—读取上下文—修改代码—执行测试—根据结果继续修改”的闭环,这也是 Code Agent 相比普通代码生成模型最大的区别。
你觉得 Claude Code 还存在哪些问题
大模型框架使用
vLLM(百度)
为什么使用 vLLM?
v1 相比 v0 有什么变化
OOM 了怎么排查
算法题
编程题
腾讯元宝实习一面【162. 寻找峰值】 在提示之前,没做出来,提示了写的也是磕磕绊绊
腾讯元宝实习二面【79. 单词搜索】 DFS 简简单单
字节抖音AI搜一面【5. 最长回文子串】 先写了一下朴素方法,然后用中心扩散写出来了
拼多多弧云计划一面【750. 角矩形的数量】 写的不好,只会朴素方法
百度Comate一面【92. 反转链表 II】 写出来了,但是代码比较复杂不太熟练
思维题
百度Comate二面
你站在悬崖上面,前面是狼群。悬崖高 200 米,悬崖顶上和中间 100 米处各有一棵树;你有 150 米绳子和一把刀。如何安全下去?