华为 AI Agent/大模型岗位 - 真实面经网络实录
整理自牛客、脉脉、CSDN等平台的真实面试分享,2024-2025年
面经一:大模型算法工程师(校招)
面试时间: 2024年9月(秋招)
岗位: 大模型算法工程师 - 盘古大模型团队
结果: 已offer,定级15A
一面(技术面,60分钟)
Q1:自我介绍+详细讲一个你做过的大模型项目
回答思路:介绍了研究生期间做的领域大模型微调项目。从数据采集(爬取行业文档)、数据清洗(去重去噪)、Continue Pretrain、SFT到最终的评测,完整讲了一遍。面试官对数据处理环节问得特别细。
Q2:如何给LLM注入领域知识?有哪些方法?各自优缺点?
回答思路:
- Continue Pretrain:用领域语料继续预训练,学习领域分布,但成本高且可能遗忘通用能力
- SFT微调:用领域QA对做指令微调,成本适中,但知识容量有限
- RAG:检索外部知识库,实时性好、可解释,但依赖检索质量
- Prompt Engineering:在prompt中注入知识,最轻量,但受上下文长度限制
- 实际项目中通常组合使用:先CPT学领域分布,再SFT学任务格式,再用RAG补充细节知识
Q3:指示微调(Prompt Tuning)、前缀微调(Prefix Tuning)、适配器微调(Adapter Tuning)的原理和区别?
回答思路:
- Prompt Tuning:在输入前添加可学习的soft prompt tokens,其他参数冻结
- Prefix Tuning:在每一层的attention前添加可学习的prefix,比Prompt Tuning参数量更大
- Adapter Tuning:在Transformer层之间插入小型MLP(bottleneck结构),只训练adapter
- 参数量:Prompt Tuning < Adapter < Prefix Tuning << 全量微调
- 现在主流用LoRA,兼顾了效率和效果
Q4:RoPE位置编码的思路和优点?
回答思路:
- 核心思想:在复数空间中,通过旋转Q和K来编码位置信息
- 将位置信息融入attention score的计算,使得score只依赖相对位置
- 优点:1)天然编码相对位置 2)理论上支持任意长度外推 3)实现简单高效
- 具体做法:将向量维度两两配对,在二维平面上按位置角度旋转
- 与ALiBi的对比:ALiBi直接在attention score上加线性偏置
Q5:梯度消失/爆炸的原因和解决方法?
回答思路:
- 原因:深层网络反向传播时,梯度经过多层连乘,过小(消失)或过大(爆炸)
- 解决消失:ReLU激活函数、残差连接、BatchNorm/LayerNorm、适当初始化
- 解决爆炸:梯度裁剪(Gradient Clipping)、权重正则化、学习率调整
- 大模型中:主要靠Pre-LayerNorm + 残差连接 + 梯度裁剪
Q6:手写代码 - 快速排序
回答思路:标准快排实现,讲了pivot选择策略(随机化)和partition的过程。追问了时间复杂度分析(最优O(nlogn),最差O(n²))。
二面(技术面,55分钟)
Q1:Transformer中Self-Attention的表达式写一下
回答思路:
- Attention(Q,K,V) = softmax(QK^T / √d_k) V
- Q = XW_Q, K = XW_K, V = XW_V
- 解释了为什么除以√d_k(防止点积过大导致softmax梯度消失)
Q2:BERT中[CLS] token的作用?Attention中的mask有什么用?
回答思路:
- [CLS]:在序列开头的特殊token,经过所有层attention后聚合了全局信息,用于分类任务
- Attention mask:
- Padding mask:屏蔽padding token
- Causal mask:decoder中防止看到未来token(下三角矩阵)
- 用极大负数(如-inf)实现,softmax后变为0
Q3:你的模型加速方面做过什么?有什么技巧?
回答思路:
- 量化:用GPTQ对7B模型做INT4量化,推理速度提升2x,精度损失<1%
- KV Cache优化:启用FlashAttention减少显存
- Batch优化:Continuous Batching提升吞吐
- 编译优化:torch.compile加速
- 具体数据:7B模型从45 tokens/s优化到120 tokens/s
Q4:避免灾难性遗忘有什么方法?
回答思路:
- 数据混合:微调数据中混入通用数据(replay)
- 参数高效方法:LoRA/Adapter只更新少量参数
- 正则化:EWC(弹性权重巩固),对重要参数施加约束
- 渐进式训练:先在领域数据上CPT,再在混合数据上SFT
- 多任务学习:同时训练多个任务维持通用能力
Q5:代码题 - 堆排序实现
回答思路:手写堆排序,包括heapify和buildHeap。O(nlogn)时间复杂度。
三面(主管面,40分钟)
Q1:你对华为盘古大模型了解多少?
回答思路:讲了盘古的行业应用(矿山、气象、药物分子等),强调了华为做行业大模型的差异化路线。
Q2:你能承受高压工作环境吗?对加班怎么看?
回答思路:表示理解华为的工作文化,以结果为导向。(华为面试必问,一定要表态积极)
Q3:你的其他offer情况?为什么选华为?
回答思路:坦诚地说了其他offer情况,强调对华为技术实力和行业大模型方向的认可。
面试体验: 华为面试全程压力较大,面试官会在你回答的基础上不断追问细节。代码题虽然不是特别难,但要求手写且速度要快。华为特别看重项目的完整性和你在项目中的实际贡献。秋招流程:机试→综合测评→技术面(2-3轮)→主管面→HR面。
面经二:AI Agent研发工程师(社招)
面试时间: 2024年12月
岗位: AI Agent研发工程师 - 云BU
结果: 已offer
一面(60分钟)
Q1:什么是AI Agent?在华为云场景下你觉得能做什么?
回答思路:
- Agent定义:基于LLM的自主智能体,具备规划、记忆、工具调用和反思能力
- 华为云场景:智能运维Agent(自动诊断和修复云资源问题)、客服Agent、开发辅助Agent
- 企业级Agent的特殊要求:安全合规、可审计、高可用
Q2:ReAct框架详细讲讲
回答思路:
- Reasoning + Acting的交替循环
- 流程:Thought(推理当前状态和下一步行动)→ Action(执行工具调用)→ Observation(获取结果)→ 循环
- 优势:相比纯推理(CoT),可以动态获取外部信息;相比纯行动,有推理过程可追溯
- 局限:推理链路长时可能出错,需要设置最大步数限制
Q3:知识图谱和LLM怎么结合?
回答思路:
- KG增强LLM:将KG信息注入prompt或用KG做检索增强
- LLM增强KG:用LLM做实体识别、关系抽取、知识补全
- GraphRAG:用图结构索引知识,支持多跳推理
- 在华为场景:网络拓扑知识图谱+LLM做故障诊断
Q4:AI发展历史简要回顾一下
回答思路:从规则系统→专家系统→统计ML→深度学习→预训练模型→大模型→Agent的发展脉络。每个阶段提了代表性的成果。
Q5:代码题 - 二叉树层序遍历(LeetCode 102)
回答思路:BFS+队列,O(n)。追问了如何实现之字形遍历(LeetCode 103)。
二面(50分钟)
Q1:你在项目中遇到过什么技术难题?怎么解决的?
回答思路:讲了一个Agent工具调用准确率低的问题。通过优化Function description、增加few-shot examples、引入tool selection验证步骤,把准确率从72%提升到91%。
Q2:如何评估一个Agent系统的质量?
回答思路:
- 功能评估:任务完成率、工具调用准确率、答案质量
- 性能评估:延迟、吞吐、资源消耗
- 安全评估:注入攻击防御、幻觉率、敏感操作控制
- 用户体验:用户满意度、多轮对话连贯性
Q3:分布式训练你了解多少?
回答思路:
- 数据并行:每卡完整模型,数据分片,AllReduce梯度同步
- 张量并行:将权重矩阵切分到多卡
- 流水线并行:模型按层切分,micro-batch流水化
- ZeRO优化:DeepSpeed的优化器/梯度/参数分片
- 实际项目经验:用Megatron-LM训练过13B模型
Q4:华为的昇腾芯片和NVIDIA GPU有什么区别?
回答思路:这题有点出乎意料。讲了CANN计算架构、与CUDA生态的差异、MindSpore框架的特点。坦诚说对昇腾了解不够深入,但表示很愿意学习。
Q5:代码题 - LRU Cache(LeetCode 146)
回答思路:双向链表+哈希表,O(1)的get/put。
三面(主管面,35分钟)
Q1:你对华为的企业文化怎么看?
回答思路:理解狼性文化的核心是奋斗和客户导向,认同以奋斗者为本的理念。
Q2:如果项目deadline很紧,但技术方案还没想好,你怎么办?
回答思路:先用最快可行的方案保证交付,同时并行探索更优方案做后续迭代。
Q3:期望薪资和发展方向?
回答思路:给了合理的薪资范围,发展方向是企业级AI Agent平台建设。
面试体验: 华为社招面试比校招更注重工程经验和解决实际问题的能力。会问一些华为特有的问题(昇腾、企业文化等),建议提前了解。面试节奏紧凑,每轮都有代码题。整体体验专业但压力大。
面经三:NLP算法工程师 + 大模型(校招)
面试时间: 2025年3月
岗位: NLP算法工程师(大模型方向)
结果: 二面挂
一面(55分钟)
Q1:Batch Normalization的公式和作用?
回答思路:
- 对每个mini-batch在特征维度上做归一化:x̂ = (x - μ_B) / √(σ²_B + ε),然后y = γx̂ + β
- 作用:加速训练收敛、允许更大学习率、有轻微正则化效果
- 与LayerNorm区别:BN在batch维度归一化,LN在特征维度归一化
- 大模型中用LN(或RMSNorm)而非BN,因为BN不适合变长序列
Q2:Softmax原理和数值稳定性?
回答思路:
- softmax(xi) = exp(xi) / Σexp(xj)
- 数值稳定性:先减去最大值 x - max(x),防止exp溢出
- 温度参数T:softmax(xi/T),T越大分布越平缓,T越小越尖锐
- 在attention中用于将score转为概率分布
Q3:神经网络反向传播的链式法则?
回答思路:
- dL/dw = dL/dz × dz/dw(链式法则逐层传播梯度)
- 计算图中每个节点保存中间结果用于反向传播
- 手动推导了一个简单的两层网络的梯度
Q4:你对大模型涌现能力怎么理解?
回答思路:
- 定义:随着模型参数量增加,某些能力突然出现(非线性跃迁)
- 典型涌现能力:few-shot学习、思维链推理、代码生成
- 争议:有研究认为涌现可能是度量方式导致的假象
- 可能的原因:模型内部表征空间在某个规模后达到临界复杂度
Q5:代码题 - 全排列(LeetCode 46)
回答思路:回溯法,O(n×n!)。追问了有重复元素的全排列(LeetCode 47)。
二面(50分钟)
Q1:LSTM的结构画一下,各个门的作用?
回答思路:
- 遗忘门:决定丢弃什么信息 ft = σ(Wf·[ht-1, xt] + bf)
- 输入门:决定存储什么新信息 it = σ(Wi·[ht-1, xt] + bi)
- 输出门:决定输出什么信息 ot = σ(Wo·[ht-1, xt] + bo)
- 细胞状态更新:Ct = ft⊙Ct-1 + it⊙tanh(Wc·[ht-1, xt] + bc)
- 相比RNN的优势:门控机制缓解梯度消失
Q2:你了解华为盘古大模型的技术特点吗?
回答思路:讲了盘古在行业落地的思路,多模态能力,以及华为做L0/L1/L2分层模型体系的设计。但承认了解不够深入。
Q3:如何处理大模型训练中的不稳定性问题?
回答思路:
- loss spike:梯度裁剪、降低学习率、数据质量检查
- 训练崩溃:检查数据中的异常值、减小batch size、warm up学习率
- 收敛慢:调整优化器(AdamW)、调整lr scheduler
- 工程手段:定期checkpoint、自动重启
Q4:场景设计 - 设计一个工业质检大模型Agent
回答思路:
- 多模态输入:摄像头图像+传感器数据
- 缺陷检测Agent:识别产品缺陷类型和位置
- 决策Agent:根据缺陷严重程度做分拣决策
- 报告Agent:自动生成质检报告
- 对准确率的极高要求(漏检率<0.1%)
面试体验: 华为校招面试基础知识考得比较全面,从经典的LSTM到现代的Transformer都会问。二面挂了,反馈是对华为的技术栈(盘古/昇腾)了解不够。建议面华为前花时间研究一下盘古大模型和MindSpore的技术文档。
面经四:AI软件开发工程师(校招)
面试时间: 2024年10月
岗位: AI软件开发工程师
结果: 已offer
一面(50分钟)
Q1:讲讲你了解的大模型训练流程
回答思路:预训练(大规模无标注数据,自回归/掩码语言模型)→ SFT(指令微调,高质量标注数据)→ RLHF/DPO(人类偏好对齐)→ 评估(benchmark+人工评测)→ 部署优化
Q2:LoRA和全量微调的区别?什么时候用哪个?
回答思路:
- 全量微调:更新所有参数,效果天花板高但成本大,容易过拟合
- LoRA:只更新低秩矩阵BA,参数量<1%,训练快、显存省
- 选择:数据充足+计算资源够→全量微调;资源有限+快速迭代→LoRA
- LoRA的局限:对知识密集型任务可能不如全量微调
Q3:你的项目里数据怎么处理的?讲讲数据清洗流程
回答思路:
- 去重:MinHash + LSH做文档级去重
- 去噪:规则过滤(长度、语言检测、特殊字符过滤)+ 质量打分模型
- 格式化:统一成instruction-input-output格式
- 平衡:按任务类型做上下采样,确保多样性
Q4:TCP和UDP的区别?HTTP/1.1和HTTP/2的区别?
回答思路:
- TCP:面向连接、可靠传输、拥塞控制;UDP:无连接、不可靠、低延迟
- HTTP/1.1:长连接、管道化;HTTP/2:多路复用、头部压缩、服务器推送、二进制帧
Q5:代码题 - 反转链表(LeetCode 206)
回答思路:迭代法,O(n)。追问了递归解法。
二面(45分钟)
Q1:你对性格测试结果怎么看?华为综合测评有什么体验?
回答思路:坦诚地分享了测评体验,讲了自己的性格特点如何适应团队协作。
Q2:你遇到过的最大挫折是什么?怎么克服的?
回答思路:讲了一个项目延期的经历,如何通过调整方案和加班赶进度完成交付。
Q3:如果你的技术方案和组长意见不一致,你怎么处理?
回答思路:先充分沟通,用数据和实验说话。如果还是有分歧,先执行组长方案,同时用小实验验证自己的方案。
Q4:对华为的哪个产品最感兴趣?
回答思路:表达了对盘古大模型在行业应用(如矿山、气象预测)中的兴趣。
面试体验: 华为AI软开岗不像算法岗那样深挖模型原理,更看重编码能力和综合素质。二面偏行为面试,主要考察你的团队合作能力、抗压能力和对华为文化的认同。整体来说门槛比纯算法岗低一些,但也要对大模型有基本了解。
总结与建议
华为面试特点
-
压力面试风格:面试官会不断追问,直到你答不上来,不用太紧张
-
项目经验深挖:会问你在项目中的具体贡献,不接受模糊回答
-
代码题必考:每轮都有手写代码环节,要求思路清晰代码规范
-
企业文化考察:一定会问对华为文化的理解、加班态度等
-
技术栈特殊性:了解盘古大模型和昇腾/MindSpore生态是加分项
准备建议
-
提前了解华为盘古大模型的技术文档和应用案例
-
准备好"你为什么选择华为"和"对加班怎么看"的回答
-
代码题以Medium为主,重点刷树、链表、排序类题目
-
如果面算法岗,微调方法(LoRA/Adapter/Prefix)的原理一定要精通
-
机试环节很重要(通常是ACM风格题),建议在牛客上刷华为真题
-
综合测评不要忽视,性格测试要保持一致性