把“2025年华为AI算法岗高频面试题”完整盯了大半年,自己也跑完了投递、机试、技术面、主管面的全流程,还帮几位朋友做了模拟面试,我发现网上流传的所谓题库,很大一部分还停留在2019年以前的知识点:LR为什么用交叉熵、SVM核函数怎么选、LSTM为什么比RNN好。这些当然重要,但2025年华为AI算法岗的真实筛人逻辑已经明显变了,AI大模型、AI Agent、训练推理效率、手撕代码背后的原理追问,几乎每轮都会出现。
这篇文章不是让你背答案,而是把我在真实面试里遇到的高频题、以及从热词里拆出来的考点分布,按“面试官到底想问什么”重新整理了一遍。适合三类人看:正在准备2025年秋招/社招的算法工程师,转行做AI但基础不牢的开发,还有已经拿Offer但想复盘自己哪里丢分的人。
1. 2025年华为AI算法岗的面试全景与筛选逻辑
1.1 岗位方向差异:搜推、NLP/CV、大模型、AI平台
华为的AI算法岗不是单一职位,不同部门对候选人的要求差距巨大。准备面试前,先分清自己投的是哪一类:
- 搜索/推荐/广告方向:重点考特征工程、CTR预估、多目标排序、冷启动,手撕代码常出TopK、堆排序、滑动窗口。
- NLP/CV方向:重点考Transformer、注意力机制、多模态对齐、目标检测、分割,手撕代码常出numpy实现softmax、IoU计算。
- 大模型/LLM方向:重点考预训练、SFT、RLHF、LoRA、RAG、Agent,手撕代码可能直接让你写一个简单的采样函数。
- AI平台/推理优化方向:重点考模型量化、剪枝、蒸馏、TensorRT/昇腾推理、并发调度,甚至还会问PID这类控制算法在电源/性能调优里的使用逻辑。
- 2012实验室/中央研究院方向:更偏论文复现和前沿探索,会追问KL散度、ELBO、粒子群算法、模拟退火这类优化算法的原理,看你是不是真的读过原始论文。
很多人挂在第一轮的原因,就是把“搜索算法岗”按“大模型岗”去准备。JD上写的“负责XX场景AI算法落地”,基本就决定了面试官的追问范围。你可以在简历上写很多方向,但每一段项目经历都要能对应到目标岗位的核心技能树上。
1.2 面试流程与各轮考察重点
2025年华为AI算法岗的流程大体稳定,但轮次之间有明显的分工:
- 机试(在线笔试):90到120分钟,3道题左右,难度按岗位区分。算法题以中等难度为主,偶尔有一道hard级别,常见类型是贪心、动态规划、字符串匹配、二叉树遍历、图论。
- 技术一面(通常是未来同事或一线主管):深挖项目 + 基础理论 + 1道手撕代码。重点看你做过的项目是不是自己写的,以及基础是否扎实。
- 技术二面(通常是主管或资深专家):系统设计题 + 更偏原理的追问,例如“如果数据量扩大100倍,你的方案哪里会先崩”。
- 主管面/HR面:考察沟通、协作、抗压、对华为业务的理解,偶尔会问“你最近关注哪些AI技术”。
我见过不少候选人机试成绩很高,但面试时被一个问题问穿,比如“你简历写着用过BERT,那BERT的position embedding和Transformer原文里的有什么不同?”答不上来,基本就凉了。技术面试的核心不是看你背了多少题,而是看你能不能把每个知识点往深处再走两步。
1.3 简历初筛与JD关键词对照
简历初筛阶段,华为的招聘系统会做关键词匹配,HR也会人工看项目经历。2025年这个时间点,下面这些关键词在算法岗JD里出现频率很高:
| 方向 | 高频关键词 |
|---|---|
| 大模型 | LLM、SFT、RLHF、LoRA、RAG、Agent、Prompt工程、模型评测 |
| 机器学习 | 排序算法、GBDT、XGBoost、LightGBM、FM、DeepFM、多任务学习 |
| 深度学习 | Transformer、BERT、ResNet、YOLO、自注意力、知识蒸馏、模型剪枝 |
| 工程能力 | Python、C++、PyTorch、TensorFlow、昇腾、CUDA、TensorRT、Docker |
| 部署优化 | 量化、剪枝、蒸馏、推理加速、A/B测试、特征平台 |
如果你的简历里完全没出现这些词,机试通过后也可能被卡在简历池里。比较务实的做法是,把每个项目挑出2到3个关键词,写进项目标题和成果描述里。但千万别堆词,面试官一眼就能看出来。
2. 高频理论题:机器学习与深度学习基础考点怎么答
2.1 过拟合的判定、原因与治理顺序
过拟合几乎是每场技术面的必问题,但2025年的提问方式更刁钻,不再是“什么是过拟合”,而是“训练集准确率99%,验证集只有85%,你会按什么顺序排查”。
标准回答要按这个逻辑走:
- 先确认数据划分是否合理,有没有样本泄露。
- 再看模型复杂度是否过高,参数量是否远大于样本量。
- 然后看训练过程是否收敛,有没有early stopping。
- 最后才是加正则、加Dropout、做数据增强。
如果面试官继续追问“正则为什么能缓解过拟合”,不能只说“约束参数大小”,要说出L1和L2的本质区别:L1在0点不可导,容易产生稀疏解,等价于在拉普拉斯先验下做最大后验估计;L2等价于高斯先验下的最大后验估计,让参数更小更集中。能答到这一步,才算真正理解。
2.2 经典模型对比:LR/SVM/树模型/GBDT的必要性
大模型时代为什么还要问LR和SVM?因为面试官想确认你对基础模型的归纳偏置有没有概念。2025年我遇到的追问链是:
- LR假设特征和logit之间是线性关系,为什么还要做特征交叉?
- SVM用核函数把特征映射到高维空间,和神经网络学特征有什么本质区别?
- GBDT每轮拟合负梯度,为什么能用于回归也能用于分类?
- XGBoost相比GBDT加了哪些东西:二阶泰勒展开、正则项、列采样、近似分裂点算法。
回答这类题,最好的方式是用一个对比表把模型的核心差异讲清楚。我在面试时是这样组织的:
| 模型 | 核心假设 | 损失函数 | 典型场景 | 常见坑 |
|---|---|---|---|---|
| LR | 特征与logit线性相关 | 交叉熵 | 大规模稀疏特征CTR | 需要手动做特征交叉 |
| SVM | 最大化间隔 | Hinge Loss | 小样本高维分类 | 核函数选择影响大 |
| GBDT | 加法模型拟合负梯度 | 根据任务选择 | 表格数据、特征重要度分析 | 容易过拟合,需要调树深度 |
| 深度模型 | 自动学习特征表达 | 任务相关 | 文本/图像/序列 | 需要大量数据 |
面试官要的不是你背出这些结论,而是你在项目里选型时的真实理由。比如你说“我用了DeepFM而不是LR”,就得能解释FM的隐向量交叉和LR手动交叉相比,为什么能泛化到没出现过的特征组合。
2.3 损失函数、优化器、注意力机制的追问链
这类题在华为一面出现的概率极高,而且会连环追问。我整理了一条完整的追问链:
- 为什么分类用交叉熵而不用MSE?因为MSE在Softmax输出上梯度会饱和,而交叉熵配合Softmax的梯度形式是 (p - y) * x,避开饱和区,收敛更快。
- 为什么Adam要加一阶动量和二阶动量?一阶动量让更新方向更稳,二阶动量给稀疏特征更大的有效学习率。
- Transformer里Q、K、V是怎么来的?为什么点积要除以sqrt(d_k)?因为点积值会随维度增大而变大,Softmax容易进入饱和区,除以缩放因子让梯度更稳。
- 为什么Transformer用LayerNorm而不是BatchNorm?因为NLP序列长度不一,BN在batch维度统计均值方差会被padding干扰,且RNN/Transformer对单样本的依赖更强。
这些问题的答案,网上都能找到。但面试官会继续追问“你会怎么验证你的解释”,这时候不能只说“我读过源码”,最好能现场画出缩放点积注意力的计算流程,或者用numpy手写一遍。
2.4 信号/图像/优化算法题:从粒子群到拉普拉斯锐化
2025年的热搜词里出现了不少非深度学习方向的算法名,比如粒子群算法原理、模拟退火算法、PID算法、图像锐化的拉普拉斯算法、音频重采样算法。这些在华为AI算法岗面试里也可能出现,尤其是在AI平台、多媒体、车BU这些偏工程场景的部门。
粒子群算法(PSO)的高频问法是:“粒子速度和位置更新公式是什么?惯性权重w有什么作用?”标准公式是:
v_new = w * v_old + c1 * r1 * (pBest - x) + c2 * r2 * (gBest - x) x_new = x_old + v_neww越大,全局搜索能力越强;w越小,局部开发能力越强。面试时如果能补一句“w可以随时间线性递减,先全局后局部”,就很加分。
模拟退火的高频问法是:“为什么能以一定概率接受更差的解?”核心是Metropolis准则,如果新解更差,就以 exp(-ΔE/T) 的概率接受,T是当前温度。温度高时接受差解的概率大,帮算法跳出局部最优;温度降低后,接受概率变小,算法趋于稳定收敛。可以和粒子群一起对比:“PSO靠群体信息共享,模拟退火靠概率突跳。”
PID算法在AI算法岗出现的场景通常是:“你在做推理任务时,怎么控制显存或功耗?”P对应当前误差,I累积历史误差消除稳态误差,D预测误差趋势。回答时能把位置式和增量式的区别讲出来就行,位置式输出是绝对量,增量式只输出偏差增量,更适合嵌入式场景。
图像锐化的拉普拉斯算法,看起来是图像处理旧题,但2025年问法升级了:“拉普拉斯算子是二阶微分,为什么图像锐化要加上拉普拉斯算子?”本质是:一阶微分只能检测边缘位置,二阶微分能判断边缘两侧的灰度变化方向,把拉普拉斯结果叠加回原图,能让边缘对比更强烈。公式是 g(x,y) = f(x,y) + c * ∇²f(x,y)。
音频重采样算法,常见考点是线性插值、sinc插值、FFT重采样。如果面试官问“重采样为什么会产生混叠”,回答要点是:采样率降低时,高于新奈奎斯特频率的成分会折叠到低频,需要先做低通滤波。
3. 大模型与AI Agent方向的新题型,2025年避不开
3.1 Transformer与RLHF、LoRA、RAG的连环追问
大模型方向几乎不考纯理论了,而是考“你真的跑过吗”。我遇到的连环题是:
- 说清楚Transformer的Encoder和Decoder结构差异,为什么GPT只用Decoder。
- 什么是因果注意力(Causal Attention)?和双向注意力的区别是什么?
- RLHF分几步?SFT、Reward Model、PPO各解决什么问题?
- LoRA为什么能省显存?在训练时冻结原参数,只训练低秩分解矩阵A和B,推理时把低秩矩阵合并回原权重,不增加推理延迟。
- RAG能解决幻觉问题吗?不能完全解决,只能通过检索引入外部证据,降低幻觉概率,但检索本身也可能带回噪声。
答这些题的关键是画出流程。比如RLHF,我习惯在白板上按“预训练 -> SFT -> 训练Reward Model -> PPO强化学习”四步画,再说每一步的输入输出,以及“如果Reward Model过拟合了会发生什么”。能讲到“Reward Hacking”基本就过关了。
3.2 AI Agent、工具调用与落地场景题
2025年的热词里“AI Agent”出现频率很高,华为的面试题也经常出现:“你理解的Agent是什么?和传统对话系统有什么区别?”
标准答法:Agent是能感知环境、做出决策、调用工具完成多步任务的智能体;传统对话系统只是单轮/多轮问答,Agent有规划(Planning)、记忆(Memory)、工具调用(Tool Use)三个核心模块。
追问点通常是:
- Agent的规划是怎么做的?可以用ReAct方式,让模型交替输出Thought和Action,也可以写一个独立的Planner模块,用强化学习或搜索来选动作。
- 工具调用失败怎么办?需要让Agent能根据工具返回的错误重试或换策略,不能直接崩。
- 多Agent协作怎么设计?要定清楚消息格式、共享记忆、任务分配机制,否则两个Agent会无限对话。
另外“AI编程”“AI应用开发”在2025年被频繁提及,华为也会问:“你用AI编程工具写了哪些代码?如何保证AI生成代码的正确性?”我的回答思路是:AI生成代码适合模板化、测试覆盖充分的模块;核心逻辑必须有单测和Code Review,不能直接信任生成结果。
3.3 大模型算法的评测、幻觉控制与推理加速
这类题是2025年新增的高频点,因为华为不像互联网公司只关心线上指标,还关心国产化硬件上的推理成本。
评测题:大模型效果怎么评?可以分三层:通用能力用公开Benchmark(MMLU、C-Eval、GSM8K),领域能力用自建测试集,线上效果用A/B测试。要能说出“公开Benchmark存在数据污染问题,所以自建测试集很重要”。
幻觉控制题:答案要从“为什么产生幻觉”开始讲,训练数据里有噪声、解码阶段贪婪采样、模型容量不足都会导致幻觉。控制方法包括:检索增强、解码策略调整(降低temperature)、模型校准、人工反馈后训练。
推理加速题:2025年高频答案组合是——KV Cache、PagedAttention、量化(INT8/INT4)、剪枝、蒸馏、批处理调度。如果投的是昇腾相关岗位,还要知道这些方法在昇腾上的适配情况,比如算子融合、内存复用,这些细节能体现你真的做过部署。
4. 手撕代码与数据结构算法高频题:从排序到KMP
4.1 排序与堆、TopK的默认考法
“数据结构排序算法”和“堆排序算法”是2025年热搜词里出现次数最多的,华为机试和手撕环节也真的很爱考。最常见的题目是:给一个无序数组,求第K大的元素,要求时间复杂度O(n)。
多数人会直接答“用堆”,维护一个大小为K的小顶堆,堆顶就是第K大,复杂度O(n log K)。但面试官会追问:快排的思想能不能做到平均O(n)?这时候需要答出QuickSelect:选pivot分区,只递归包含第K大的一侧,平均O(n),最坏O(n²)。如果能把“BFPRT算法”也说出来,说自己知道怎么把最坏情况优化到O(n),是很大的加分。
排序算法还经常考“稳定排序有哪些”。冒泡、插入、归并是稳定的;快排、堆排、选择排序不稳定。面试官追问“为什么快排不稳定”,要拿具体例子说明,比如[5a, 5b, 3]按第一个5做pivot,两个5的相对顺序会被打乱。
4.2 KMP的next数组:一道题分清两种定义
热搜词里有一道特定题:“在KMP算法中,对于模式串 p="abacaba",其next数组(next[i]定义为最长相等前后缀长度)是多少?”这道题我确实在模拟面试中遇到过,而且很多人在定义上被绕晕。
先说明一个坑:KMP的next数组在不同教材里有两种定义。第一种,next[i]表示模式串前i个字符组成的子串的最长相等前后缀长度,并且令next[0] = -1;第二种,next[i]表示第i个字符失配后,模式串要跳转到的位置下标。这两种定义会差1甚至差一位,答题时一定要先和面试官确认定义。
按“next[i]表示前i个字符的最长相等前后缀长度,next[0] = -1”这个定义来算 p = "abacaba":
| i | 子串 | 最长相等前后缀 | next[i] |
|---|---|---|---|
| 0 | "" | 无 | -1 |
| 1 | "a" | 无 | 0 |
| 2 | "ab" | 无 | 0 |
| 3 | "aba" | "a"长度1 | 1 |
| 4 | "abac" | 无 | 0 |
| 5 | "abaca" | "a"长度1 | 1 |
| 6 | "abacab" | "ab"长度2 | 2 |
| 7 | "abacaba" | "aba"长度3 | 3 |
所以 next 数组为 [-1, 0, 0, 1, 0, 1, 2, 3]。如果你用失配跳转定义,通常会把上面的值整体右移一位并加1,得到另一个版本。这就是为什么很多人做题对不上答案,不是不会算,而是没对齐定义。
面试时如果能额外说出“为什么KMP是线性复杂度”,就更稳了:i指针不回退,j指针每次要么匹配成功前进,要么按next数组回退,总回退次数不超过匹配成功次数加模式串长度,所以均摊O(n+m)。
4.3 贪心、剪枝、二分图匹配与字符串/树图高频题
热搜词里“贪心算法”“剪枝算法”“二分图HK算法”也出现在华为算法岗的考察范围。贪心是机试的第一大题常客,典型题有区间调度、跳跃游戏、分发饼干。回答时要先说清楚“贪心为什么成立”,比如区间调度题按结束时间排序,是为了给后面的区间留出最多空间。
剪枝算法分两种场景:决策树剪枝和搜索剪枝。搜索剪枝在算法题里的问法是“给一个组合总和问题,你会怎么减少递归分支”,标准答法:先排序,循环中跳过重复元素,当前结果已经非法就直接return。
二分图匹配考的少,但考到就是难题,HK算法的高频问法是:“Hopcroft-Karp算法比匈牙利算法快在哪?”答案是HK算法每轮先用BFS构造多条不相交最短增广路,再用DFS一次找多条增广路,复杂度从O(VE)降到O(E√V)。如果没准备过,现场推导会很难。
树和图的题基本必考:二叉树层序遍历、最近公共祖先、判断二叉树是否对称、拓扑排序、并查集判断连通性。准备到位比刷题数量更重要,把这些题的核心模板背下来,机试能稳过一大部分。
4.4 AI算法岗独有的手撕题:numpy实现前向传播
除了通用算法题,AI岗还经常让现场写神经网络基础组件。最常见的是用numpy实现一个带交叉熵损失的Softmax分类层。我现场写过,当时给出的核心代码是:
import numpy as np def softmax_loss(x, y): # x: (N, C) 原始logits, y: (N,) 类别标签 # 先减最大值,防止指数溢出 shifted = x - np.max(x, axis=1, keepdims=True) exp_x = np.exp(shifted) probs = exp_x / np.sum(exp_x, axis=1, keepdims=True) N = x.shape[0] loss = -np.sum(np.log(probs[np.arange(N), y] + 1e-12)) / N # 交叉熵配合softmax的梯度简化形式 grad = probs.copy() grad[np.arange(N), y] -= 1 grad /= N return loss, grad这道题考察的不只是会不会调库,而是你懂不懂“数值稳定性”“梯度推导”“归一化项的作用”。如果能把“为什么减去最大值不影响softmax结果”和“梯度为什么是 probs - onehot”讲清楚,面试官会直接给正向标记。
5. 项目深挖与系统设计问题的加分打法
5.1 用一张表把项目“翻译”成面试官能验证的语言
华为的项目面试,第一步不是让你讲故事,而是让你快速回答“这个项目解决什么问题、用了什么方法、取得了什么效果”。我用一张表把自己所有项目统一成这个格式,效果非常好:
| 项目要素 | 回答要点 |
|---|---|
| 背景 | 业务场景、数据规模、资源限制 |
| 问题定义 | 任务类型(分类/排序/生成)、评估指标 |
| 方法 | 模型选型、特征、训练策略、部署方式 |
| 结果 | 指标提升幅度、线上/离线差异、失败教训 |
比如你做的是一个AI带货视频一键成片系统,不能只说“我用了多模态模型”,要说清楚:输入是什么,如何做镜头切分,文本到语音和画面匹配怎么对齐,最终用户点播率提升多少。每个环节都能被追问,所以在写表的时候就要把“可能的追问点”列出来。
5.2 系统设计题:推荐系统/向量检索/高并发推理
华为技术二面的系统设计题,通常绑在实际业务上。我遇到过的几类:
- 设计一个短视频推荐系统:要覆盖召回、粗排、精排、重排全链路,召回讲清楚双塔、向量检索、I2I、U2I,精排讲清楚特征和模型结构,重排讲清楚多样性控制。
- 设计一个向量检索服务:要能说出HNSW、IVF、PQ这些索引原理,以及“为什么用HNSW,是因为它把图搜索和跳表思想结合,在召回质量和检索速度之间取得平衡”。
- 设计一个高并发推理服务:要能说出批量推理、显存池、模型分片、异步队列、限流降级。华为场景还会追问“如果模型要部署在昇腾上,你会怎么优化”。
设计题的答题框架我建议固定在“数据流 -> 模块拆解 -> 关键指标 -> 瓶颈分析”四条线上。不要一上来就画复杂架构,先把用户请求从进入系统到返回结果的数据流走一遍,再补充模块。
5.3 防御项目追问:量化、消融、失败原因
项目最容易丢分的地方是“只报喜不报忧”。面试官问“你这个模型为什么选这个结构”,如果你只回答“效果好”,等于没答。比较好的回答方式是:我对比了A、B、C三种方案,A在指标上比B高1.2%,但推理时间多30%,所以我选了B,因为线上对延迟更敏感。
针对“消融实验”,哪怕你项目里没做过,也要能说出设计思路:去掉特征A看指标变化,换掉模型结构B看指标变化,以此判断每个组件贡献。这不是造假,是展示你具备做严谨实验的意识。
针对“失败项目”,别甩锅。我见过最好的回答是:“我之前用端到端模型做医疗文本识别,效果不好,后来发现是因为标注噪声太大,改成先做规则清洗再训练,才提升上来。这个失败让我意识到数据质量比模型结构更重要。”面试官想听的是这种复盘能力。
6. 面试现场的实操细节与复盘建议
6.1 手撕代码时的沟通节奏
很多人在牛客网在线IDE上写题,闷头不吭声,最后代码写对了,面试官却给低分。华为面试官很在意你能不能边写边说思路。我总结的节奏是:
- 先读题,确认输入输出约束,比如“数组长度是10^5还是10^9”,这决定了时间复杂度要求。
- 说暴力解,再说过渡到优化解,哪怕先给O(n²)也比你沉默10秒强。
- 写代码前用一两句话说明数据结构,比如“我用一个小顶堆维护前K大元素”。
- 写完现场跑两个测试用例,包括一个边界用例(空输入、全相同元素)。
- 最后主动说复杂度:时间O(n log K),空间O(K)。
手撕代码不要求一次写出完美代码,但要求你展现出“可协作的编程状态”。就算卡住了,也要开口说“我想到一种做法,但时间复杂度可能不达标”,面试官通常会引导你。
6.2 遇到不会的题:从“卡住”到“拉回”
2025年华为面试的含金量上来了,突然问一个你没准备过的冷门算法,比如“音频重采样里的sinc插值原理”“Rete算法在规则引擎里怎么匹配”,千万不要直接说“我不会”。
我的应对策略分三步:
- 用自己的话复述题目:“你问的是,在规则引擎里,多个规则共享相同条件时,怎么避免重复匹配,对吗?”复述过程往往能帮自己理清思路。
- 从已知概念推断:“我没有深入研究过Rete算法,但我知道规则匹配的核心是减少重复计算,我猜它会把条件拆成节点,让多个规则共享节点。”
- 再把话题拉回熟悉领域:“这个思路和我们做缓存是一样的,把公共子表达式的结果缓存下来,可以避免重复计算。”
这招看起来简单,但在压力面试里特别能救命。面试官未必期待你答对冷门题,而是想看你在未知问题面前能不能保持结构化思考。
6.3 华为特色面试风格与时间分配
华为的面试有个明显特点:面试官会反复确认“你自己的贡献”和“团队其他人的贡献”。在介绍项目时,尽量用“我负责”“我实现”“我验证”这类表述,讲团队成果时也要说清楚自己的具体职责。
时间分配方面,一面通常45到60分钟,我建议按这个比例分配:项目+简历深挖占40%,理论题占20%,手撕代码占30%,反问环节占10%。如果面试官长时间追问项目,说明他对你的经历感兴趣,压缩理论题时间反而对你是好事。
反问环节也别浪费。“这个岗位目前最大的技术挑战是什么?”比“团队有多少人”更能体现你关注实际业务。如果你投的是AI平台,还可以问“部门在推理加速上主要用哪种硬件平台”,这能让面试官觉得你已经进入角色了。
写在最后的一点复盘经验
把热词和真题盘完,我最强烈的感受是:华为AI算法岗的面试越来越不喜欢“知道答案”的人,越来越喜欢“能现场推导”的人。你背下KMP的next数组没意义,只有当你理解它是为了i不回退、把已经匹配的信息利用起来,你才能应对各种变体。你背下RLHF的四步也没意义,只有你能画出每一步的输入输出,聊聊Reward Hacking,才算真的做过。
我自己的复盘习惯是,每次模拟面试后把“答得最不顺的追问链”记下来,过几天再重新闭卷答一遍。刚开始会漏很多细节,坚持两三轮之后,知识体系会被拉得很紧。2025年的面试题再新,底层还是这些基本原理。如果你能把基础原理变成自己的分析工具,再多的热词变化都只是包装。