10月15号,我把华为AI岗的秋招面试一天之内全部走完了。早上九点半开始,一面、二面、主管面连着打,结束的时候已经下午快六点,整个人像被掏空,但脑子反而特别清醒——因为所有考题、追问、手撕代码的点,我在之前备战的时候基本都踩过或者准备过。这篇就当复盘笔记,把当天真实的面试节奏、考察重点、踩坑细节全部拆开讲,给正在准备华为AI岗(甚至其他大厂算法岗)的同学一个参考。
今年秋招AI岗和往年最大的不同是,大模型方向从“加分项”变成了“必考项”,Agent、RAG、模型微调几乎被问了个遍。传统机器学习和深度学习的底子还在考,但比重明显降了,反而大模型应用相关的项目经历、工程落地经验成了核心考察点。如果你现在还在准备,希望我这篇复盘能让你少走点弯路。
1. 整体备战思路与投递节奏
1.1 时间线梳理与岗位选择
先说投递节奏。我是9月初投的简历,华为秋招系统开放后两周左右提交的申请,岗位方向选了AI算法工程师(大模型方向)。9月下旬收到机试通知,10月中旬才排到正式面试。这个时间线在华为秋招里算中等偏后,但因为前期机试和性格测评都已经过了,面试才是一锤定音的关键。
华为今年秋招的时间节点比往年稍微拉长了一些,但是整体节奏依然是“网申-机试-性格测评-技术面-主管面-HR面-offer审批”这条链路。AI岗和其他岗的差异主要体现在机试和面试内容上。机试统一走的是华为OD同款新系统,双机位监考,题目用的C卷题库;面试环节则更看重项目深度和工程能力,纯背八股文拿高分的时代已经过去了。
岗位选择方面,华为AI岗下面细分的方向很多,比如自然语言处理、计算机视觉、推荐系统、大模型应用、推理优化等。投递之前一定要想清楚自己最擅长哪个方向,因为面试官会根据你简历里的项目方向来匹配面试官,大概率是方向match的专家来面你。我投的大模型应用方向,所以面试官主攻NLP和模型部署,聊得比较深,也问了很多工程落地细节。
1.2 简历打磨与项目包装
简历是敲门砖,但这里说的“包装”不是造假,而是把你做过的事情用面试官能快速抓取关键词的方式呈现出来。我简历上一共写了三个项目:一个是基于大模型的智能文档问答系统,一个是情感陪伴类小程序(涉及安全合规处理),还有一个是比赛里的电商推荐算法优化。三个项目各有侧重,分别对应RAG应用能力、工程落地能力和传统机器学习功底。
面试下来我的体会是,项目不求多,但每一个都要经得起追问。面试官会按着你的项目细节一层一层往下挖,从数据集怎么清洗、模型为什么选这个不选那个、评估指标怎么定、线上推理延迟多少,到如果换个场景你会怎么优化。每一个问题背后都在考察你到底有没有真正做过,还是看几篇博客包装出来的。所以宁可只写两个深挖过的项目,也不要写五个说不清细节的项目。
另外,今年华为的AI面试官对“AI辅助开发”这件事很感兴趣。我在项目描述里提到使用了Cursor辅助编写工程代码,面试官专门问了怎么用、用了之后对代码质量有什么影响、哪些环节AI帮不上忙。这个问题没有标准答案,但能看出你是否对工具有清晰的认知。我的回答是:Cursor在写数据清洗脚本、格式化代码、快速搭接口这些重复性工作上提效很明显,但模型结构设计、loss调优、badcase分析这类需要深度思考的环节,AI目前还替代不了,只能作为辅助。
2. 机试环节:题型分布与备考实操
2.1 考试形式与真题复盘
华为机试统一用新系统,牛客网在线答题,双机位监考,正面电脑摄像头,侧面手机支架拍到手部动作和屏幕,周围不能有人,环境要提前准备好。考试时间两个半小时,一共三道题,分值分别是100分、200分、300分,总分600,用ACM模式,自己处理输入输出。
说实话,这个考试对平时刷LeetCode但习惯核心代码模式的同学来说,第一关就是“输入输出解析”。很多人不是题目不会做,而是卡在处理输入格式上,尤其是第二题和第三题的输入往往比较复杂,可能有多行、有分隔符、有嵌套结构。我建议在牛客网刷题的时候不要只刷函数体,多练练在线调试,尤其是std::getline、split、while(cin>>)这些基础操作要闭着眼写。
三道题的整体难度我个人体感是:第一题相当于LeetCode简单偏中等,第二题中等,第三题中等偏难,而且第三题往往是动态规划或者带状态的搜索题。我当天遇到的第一题是一个字符串处理类问题,类似于正则匹配的简化版;第二题是数组区间合并变种,需要维护一些额外信息;第三题是带限制条件的迷宫最短路径,要同时考虑步数、钥匙状态和传送门,标准的状态压缩BFS。
2.2 机试备考的实操建议
如果你现在还在准备机试,我给你几个实操建议。第一,刷题范围不用贪多,重点抓动态规划、深度优先搜索、广度优先搜索、二分、双指针、字符串处理这六大类。华为的机试题目比较务实,很少出特别偏的数据结构题,但DP和搜索几乎是必考的。
第二,务必练习ACM模式下的输入输出解析,尤其是多行不定长输入。我见过太多人栽在第三题的输入上,题目本身思路是对的,但因为没有正确处理输入,样例没过,直接丢分。建议至少提前两周每天用牛客网的在线OJ练手,保持手感。
第三,时间分配很重要。两个半小时做三道题,建议第一题20分钟内解决,第二题控制在40分钟左右,第三题哪怕没有完整思路,也要把暴力解法写出来拿到部分分。机试的通过标准不是满分,而是看总分过没过线,部分分也是分。我最后总分是300多分,不算高分,但足够进入面试环节了。
3. 技术面试核心考点拆解
3.1 一面:项目深挖与基础八股
一面那天,面试官是一位看起来三十出头的技术专家,上来先让我做了五分钟自我介绍。这里有个细节:自我介绍不要复述简历,简历上已经有的信息面试官自己会看,你要重点讲“为什么做这个项目、解决了什么核心问题、你的独特贡献是什么”,把面试官的注意力引到你最擅长的部分。
我重点讲了智能文档问答系统的项目。这个项目的核心链路是:文档解析→切片→向量化→召回→重排→大模型生成→答案引用溯源。面试官针对这个链路问了很多细节,比如:切片长度怎么定的、用了什么Embedding模型、检索召回用的什么方案、命中率不高怎么排查、重排模型怎么选、大模型用的什么、推理部署用的什么框架、延迟多少、显存占用多少、QPS能扛多少。
这些问题里,最容易翻车的是“量化等级”和“推理框架”的细节。我一开始用的是vLLM做推理加速,显存不够之后做了INT8量化,但量化后模型效果掉了两个点,后来通过混合精度和KV Cache优化把效果拉了回来。面试官对这一段特别感兴趣,连着追问了“量化为什么掉点”“KV Cache原理是什么”“你还了解哪些推理优化手段”,这些如果不真正做过部署优化,现场编是编不出来的。
基础八股部分,面试官问的比较常规但也有代表性:
- Transformer里为什么用LayerNorm而不是BatchNorm?
- 讲讲你对注意力机制的理解,包括多头注意力为什么要多头。
- 训练深度学习模型时,梯度消失和梯度爆炸怎么解决?
- 正则化手段有哪些?L1和L2的区别是什么?
- 什么是过拟合?如何判断模型过拟合了?
这些都是经典问题,看起来不难,但如果很久没复习基础,容易说得很散。我的建议是准备的时候把每个问题都按“定义-原因-解决方案-对应场景”四段式来组织答案,说的时候先给结论再展开,面试官会更容易跟上你的逻辑。
3.2 二面:大模型新考点与手撕代码
二面的面试官明显更偏工程,开场没让我自我介绍,直接盯着简历上的“情感陪伴小程序”项目开始发问。这个项目我做了比较强的安全合规设计,包括敏感词过滤、身份认证、未成年人模式、对话内容审计、拒绝策略等。面试官对这部分很认可,因为他真正关心的是大模型应用落地时的安全边界问题,这个能力其实很多候选人都不具备。
围绕大模型,二面问的核心考点我整理成了四个方向:
第一个是Agent。面试官对工具调用和任务拆解非常感兴趣,让我讲Agent的规划(Planning)、记忆(Memory)、工具使用(Tools)三大模块的设计思路。我结合自己做的一个简单Agent场景来回答:用户让AI查天气、订会议室、发通知,系统需要先把用户意图拆解成多个步骤,然后决定调用哪些API,最后汇总结果。这里考察的不只是你会不会用LangChain,而是你理不理解Agent背后的决策逻辑。
第二个是RAG的进阶优化。基础RAG链路是“检索-拼接-生成”,但面试官会继续追问:如果检索结果质量差怎么办?如何做查询改写?如何做混合检索?如何做上下文压缩?如何减少幻觉?针对这些问题,我分别回答了一些实操方案,比如用HyDE生成假答案再做相似度检索、用BM25和向量检索做混合召回再加RRF融合、给大模型限制“只基于给定内容回答,不编造”的系统提示词,并在后处理阶段增加事实一致性校验。
第三个是模型微调。面试官问的是LoRA和全量微调的区别,什么场景下选LoRA,什么场景下必须全量微调。我当时的回答是:LoRA适合资源有限、基座能力已经很强、只需要对齐特定格式或风格的场景;但如果要注入大量新知识或者领域数据非常丰富,LoRA的容量可能不够,需要全量微调或者混合微调。面试官又追问了一句“LoRA的秩怎么定”,这个我没答好,只说了经验和实验对比,没有给出更系统的解释。事后我查了资料,秩的选择和任务复杂度强相关,简单任务4-8就够,复杂任务要16-64,且要和模型参数量匹配,这个点建议大家一定要补上。
第四个是工程部署。因为项目里用到了FastAPI提供接口,面试官详细问了并发处理、请求队列、模型预加载、批量推理、缓存策略等。这部分如果你的项目经验不够,一定要提前补课,大模型项目不是把模型训练完就结束,上线后的工程问题往往才是面试官最关心的。
手撕代码环节,二面出了一道“最长递增子序列”的变种:给定一个未排序的整数数组,求最长递增子序列的长度,但要求输出该子序列本身(如果有多个,输出任意一个即可)。这道题我选择了动态规划加回溯数组的方案来写,O(n^2)的时间复杂度,虽然不是最优解(最优是贪心加二分O(nlogn)),但胜在逻辑清晰、边界不容易出错。写完后面试官问了“能不能优化到O(nlogn)”,我解释了一下贪心加二分的思路,表示能写但需要更多时间,面试官点头表示认可。这里我的体会是:手撕代码环节,一定要先沟通思路再动手写,写的时候注意变量命名和边界判断,即使不是最优解,只要思路正确、代码可以跑,面试官都会给过。
3.3 项目经历的常见追问方向
项目经历的追问基本是面试的重头戏,我总结了一下,面试官最常问的追问方向有五个:
一是数据层面:数据集从哪来、规模多大、如何清洗、标签怎么做、类别是否平衡、有没有做数据增强。这些问题都是考察你对数据敏感度,因为算法工程师的工作里很大一部分时间都在和数据打交道。
二是模型选择层面:为什么选这个模型不选另一个模型,做过哪些实验对比,效果差异是多少。面试官特别反感只给结论不给对比的候选人,哪怕你只是说“我对比了A和B,A在验证集上准确率高了1.5个点,所以选了A”,也比直接说“A效果最好”要有说服力。
三是评估体系层面:你用什么指标评估模型,为什么选这个指标,指标和业务目标之间是否对齐。比如做问答系统,跑分很高不代表用户体验好,还要看答案是否有事实错误,是否引用得当,是否有敏感内容。
四是上线部署层面:模型怎么部署的,用什么框架,延迟和吞吐是多少,如果QPS翻十倍怎么办,模型更新迭代的流程是什么。很多同学项目停留在实验阶段,一問到上线就露馅。我的建议是哪怕只是用FastAPI简单封装了一个接口,也要把部署流程补齐,这在面试里非常加分。
五是复盘与反思层面:这个项目如果再让你做一次,你会改进什么。这个问题其实不难,但容易掉进“我不觉得有什么要改”的陷阱。一定要说出至少两个反思点,比如“当时Embedding模型选得比较随意,如果换成更新更强的模型召回率应该会更好”“当时没有做A/B测试就直接上了,风险偏高”等,表现得有成长型思维。
4. 主管面与HR面:从技术到综合素质
4.1 主管面:项目价值与业务判断
主管面一般在技术面之后,面试官通常是部门主管或者技术带头人,风格不像技术面那么细,但问的问题更宏观。主管面开场通常会抛出一个问题:你对我们部门做什么业务有了解吗?这个问题看似随意,但特别能筛人。建议提前到官网看看你所投递的BG(业务群)到底在做什么,产品是什么形态,目标客户是谁,技术栈大概是什么方向。
我当时回答的是:我知道华为在AI方面的布局很广,包括云服务、企业智能、终端侧的AI能力等,但我投的这个岗位更偏企业智能方向,可能涉及知识管理、智能问答、领域大模型定制化等场景。面试官听完没有否定也没有肯定,继续追问:如果让你做一个面向企业客户的智能客服系统,你如何设计整体方案。
这是个典型的“场景设计题”,考察的是你从技术视角转化为业务视角的能力。我的回答框架是:先分析业务目标(降低人工客服成本、提升用户满意度),再拆解技术方案(知识库建设、意图识别、多轮对话、转人工策略、质检体系),最后考虑成本和效果平衡(小模型加规则兜底、大模型做语义理解和生成、按流量分层调用)。主管面更看重你思考问题的全面性和逻辑性,具体技术细节反而谈得少。
另外,主管面还问了职业规划、对加班的看法、期望的工作地点、有没有其他公司的offer等常规问题。这些问题没有标准答案,但回答时要真诚,不要为了迎合面试官说违心的话,否则入职后压力和落差会很大。我对加班的回答是:项目关键节点加班没问题,但希望加班是高效产出而不是形式主义,我更倾向于用自动化手段提升工作效率,减少无效加班。面试官笑了一下,没有继续追问。
4.2 HR面:谈薪、base与稳定性
面到HR面基本就剩最后一关了。HR主要会问籍贯、家庭情况、是否独生子女、父母对你来这个城市工作怎么看、有没有女朋友、有没有其他offer、期望薪资是多少。这些问题的核心是确认你的稳定性和入职意愿,说直白点,就是HR要判断你能不能干长久,会不会入职三个月就跑路。
期望薪资这个问题要提前准备。建议先了解一下华为薪资结构,包括base、绩效、年终奖、股票激励的大致范围,再结合自身能力和市场行情报一个合理区间。我当时报了“总包N到N+5之间”的区间,没有报死一个数,给自己留了谈判空间。HR没有当场给回复,只说“我先记录一下,后续会有对接同事沟通offer细节”,这属于正常流程。
HR面还有一个隐形考察点:你的沟通表达是否清晰自然。很多技术型候选人技术很强,但和HR聊天时特别紧张,说话磕磕绊绊。其实HR面不用想那么多,就当和HR聊聊天,把自己的经历、想法、选择逻辑讲清楚就够了。真诚是必杀技,也是我在整个秋招里体会最深的一句话。
5. 复盘心得与避坑清单
5.1 我最容易翻车的5个细节
整个流程走完,我复盘了一下,有5个细节特别容易翻车,写出来给大家提个醒。
第一是机试环境问题。新系统双机位监考要求手机放在侧后方45度角,能拍到人脸和电脑屏幕,这个位置设置很讲究。我提前一天试过,一开始手机放太远,系统提示“监控区域不完整”,重新摆放了好几次才过。建议提前一天就把机位调好,不要等到考试当天再弄,很容易因为环境问题导致考试不顺。
第二是自我介绍超时。一面和二面的自我介绍我都控制在5分钟以内,但主管面我说得有点长,快7分钟还没说完,面试官打断了我说“咱们直接进入正题吧”。事后总结,主管面的自我介绍一定要控制在3-4分钟,因为主管更想听你对业务的理解,而不是听你复述简历。
第三是八股文答得太散。一面对Transformer相关问题时,我说了好几个点,但没有组织逻辑,面试官追问“你刚才说LayerNorm是解决分布偏移问题,能具体说说内部做了什么事吗”,我才意识到自己绕过了核心机制。后来我把“层归一化是在每个样本内部做标准化,不受batch size影响,更适合变长序列”这个关键点放在开头先说,后面再展开解释,效果明显好很多。
第四是手撕代码写完没有自测。二面手撕代码的时候,我写完提交给面试官,面试官冷冷地问了一句“你确定这个代码没问题吗?”。我才发现自己漏了一个边界条件。从那以后我养成一个习惯,写完代码先自己在脑子里跑一遍包括空数组、单元素、全相同元素、倒序数组几个测试用例,确认无误再交。这个习惯帮我在后来的面试里避免了好几次低级错误。
第五是项目数据记不清。有一个项目我很早就做完了,对模型准确率、召回率、数据集规模这些数字记忆模糊,面试官问的时候我只能说“大概、可能、应该是”,非常掉分。后来我把每份简历里涉及的数据指标都整理成一张表,面试前背一遍,再也不怕被追问了。
5.2 面试当天的时间与精力管理
华为AI岗的面试安排一般是一天两轮技术面加主管面,中间休息时间很短。我当天是上午九点半开始一面,十一点左右结束,中午有不到一个小时吃饭休息,下午一点半二面,三点多主管面,四点半后HR面。这个节奏对体力的消耗很大,建议面试前三天调整作息,保证睡眠,面试当天早餐吃好,随身带点巧克力或坚果类的零食,趁中场休息补充能量。
心理状态也很重要。我那天二面手撕代码差点犯错后,有一段时间情绪有点起伏,但其实面试官并没有直接把我的结果否定,反而是我自己的情绪先崩了。后来我深呼吸了几次,把注意力重新拉回到题目上,慢慢把思路理清了。面试的时候紧张是正常的,但不要让紧张影响你的判断,面试官考察的就是你在压力下的反应是否稳定。
5.3 给后续秋招同学的建议
根据我这次的经验,后续想投华为AI岗的同学,我的建议是:机试要早刷、项目要深挖、大模型知识要系统补、模拟面试一定要做。机试是入场券,刷题没有捷径,但要有重点;项目是核心竞争力,每个项目都要能讲出完整的思路链路和实验对比;大模型是必考点,不管你做不做大模型方向,Agent、RAG、微调、部署这四个话题至少每个都能聊上十分钟;模拟面试一定要找有经验的人帮你压一压,自己对着镜子练和真正被人追问,完全是两种体验。
最后再分享一个我自己体会很深的事情:面试结束后一定要当天复盘,把你被问到的所有问题、你回答的内容、哪些地方卡壳了全部记下来。我那天面试结束后虽然很累,但还是在回学校的路上用手机备忘录记了将近两千字的复盘笔记,包括每个面试官的风格、问的问题、我的回答和不足。这些记录不仅是宝贵经验,在后续其他公司的面试里也同样适用。希望大家秋招都能拿到心仪的offer,别焦虑,慢慢来,一轮一轮打怪总能通关的。