
每年到了七八月份一批准备秋招的同学就开始四处翻往年的笔试题。网易2018校招人工智能工程师笔试卷在当年的热度不算低放到现在来看虽然距离大模型爆发还有几年但那份试卷考查的内容框架反而很能说明“人工智能工程师”这个岗位在校招阶段到底在筛什么样的人。我自己的感觉是这份卷子的参考价值不在于题目本身会不会再考而在于它把一个AI工程师应当具备的知识边界画得很清楚——机器学习基础、深度学习原理、数学功底、编程能力、以及一点点工程直觉全都在里面。这篇文章就围绕这份试卷展开我把它拆成几个层面来聊先讲这套题背后到底想考什么再逐个分析核心考点和解题思路然后给出一些我当年实际备考和使用过的复习路径最后聊聊那些容易踩的坑。不管你是正在准备校招还是刚入行想补基础这篇内容应该都能帮你把“准备AI岗笔试”这件事想得更通透。1. 试卷整体设计与考核逻辑解读1.1 校招AI岗笔试到底在筛什么样的人很多同学会误以为AI工程师的笔试题就应该是“深度学习模型默写大赛”上来就是Transformer、Attention、各种最新SOTA模型结构。但2018年网易这份卷子给人的感觉完全不是这样它更偏向于考察基础素养。这份试卷整体分几个模块数学基础、机器学习基础、深度学习基础、编程与逻辑思维、以及少量开放性的工程题。题目类型包括选择题、简答题和手写推导题。这个结构在校招笔试里属于比较经典的配置甚至到今天很多公司AI岗的笔试题依然沿用了这个框架。为什么会这样设计核心原因在于校招生的特殊性。一个应届生除非在顶会发了paper或者在知名实验室做过极其对口的项目否则很难在深度学习的某个细分方向上有多深的积累。公司校招看重的不是你会不会用某个框架而是你有没有在一个未知问题面前快速学习、建模、推导和落地的潜力。所以笔试题的定位就是筛选“基础扎实、思维清晰、有潜力”的人。数学题考的是你理解模型的能力机器学习题考的是你对经典算法的掌握程度编程题考的则是你能否把想法变成可运行的代码。这个逻辑和社招完全不同社招考的是你会不会解决具体的业务问题校招考的更多是你的底座是否牢固。1.2 2018年这个时间节点的行业背景要说这份试卷必须放到2018年这个时间节点来看。2017年Transformer论文刚刚发表2018年BERT还没出来BERT是2018年10月发布的当年最火的是各种CNN架构在图像领域的应用、LSTM在序列建模中的应用、以及以GAN为代表的生成模型。在那个年代PyTorch还在快速迭代TensorFlow 1.x是工业界主流很多学校的课程还在讲Matlab和Caffe。现在大家习以为常的HuggingFace、PyTorch Lightning这些工具当时都不存在。这也就解释了为什么那份试卷里深度学习相关的题目集中在CNN、RNN、梯度消失、激活函数这些最基础的内容上因为当年业界关心的就是这些。但如果你以为这些考点过时了那就大错特错了。恰恰相反CNN的卷积计算、感受野推导、反向传播的链式法则这些内容直到今天依然是AI工程师的基本功。大模型时代的高层架构确实变了但底层的数据流、梯度流、张量运算逻辑并没有变。换个Transformer的壳里面的BP推导该会还是得会。1.3 试卷难度定位与淘汰逻辑网易当时给这个岗位的定位应该是偏向算法研究方向的工程师岗所以笔试的难度是中等偏上但不会刻意出偏题怪题。从淘汰逻辑来看这套试卷首先筛掉的是“概念不清”的人。比如题目问SVM的对偶问题、KKT条件或者问朴素贝叶斯的假设是什么。这些问题如果你只背过结论而不知道原理很容易在选项的细微差别上栽跟头。它考察的并不是“你会不会调sklearn的包”而是“你知不知道算法在数学上到底在做什么”。其次筛掉的是“只会理论不会动手”的人。试卷中的编程题不算特别难但如果你平常只写Python脚本处理数据、从来没刷过算法题或者写代码时连二叉树遍历都要想半天那在有限时间内很难做完。这其实和岗位的真实工作状态高度相关——AI工程师不只是调参侠日常需要写很多数据处理脚本、模型复现代码、自定义训练逻辑代码能力不扎实会非常痛苦。2. 核心考点拆解与解题思路分析2.1 数学基础模块从概率到矩阵数学模块在整张试卷里大概占两到三成比重重点集中在概率论、线性代数和微积分。先来看概率论。网易的试卷比较喜欢考条件概率、贝叶斯公式、期望与方差的运算以及常见的概率分布。举个典型的例子试卷会出现类似这样的题目已知某事件A发生的概率为0.4在A发生的前提下B发生的概率为0.7B发生的边缘概率为0.5求P(A|B)。这类题目本身不难但放在选择题里出题人会设计几个“看似有道理但极容易算错”的干扰项考察你是不是真的理解贝叶斯公式而不是单纯套公式。线性代数的部分矩阵乘法、矩阵的秩、特征值与特征向量是重点。2018年的试卷里有好几道题其实都在隐晦地考察特征值分解和奇异值分解的物理含义。比如会问PCA的本质是什么或者问一个矩阵在什么条件下可以进行特征值分解。这些知识直接对应到机器学习里的降维、数据白化、以及一些优化算法的推导。微积分部分则集中在梯度、偏导、链式法则、极值问题。这些内容几乎不需要单独复习只要你学过高等数学再结合机器学习里损失函数对参数的求导多练几遍就能覆盖到。这里给一个很实用的建议准备数学模块的时候不要孤立地刷题。把每个数学知识点和你已知的机器学习算法关联起来。比如复习到特征值的时候就想一想PCA和SVD复习到拉格朗日乘子法的时候就想一想SVM的推导。用“算法作为数学知识的应用场景”这种思路去复习效率会高很多理解深度也完全不同。2.2 机器学习基础模块经典算法是重头戏机器学习基础是这张试卷的核心模块也是占分最多、区分度最高的部分。考察重点集中在几类经典算法线性模型、决策树与集成学习、支持向量机、聚类、以及基本的模型评估方法。关于线性模型重点在逻辑回归。很多人以为逻辑回归就是用sigmoid函数套一个线性加权和但笔试更愿意考察的是逻辑回归的损失函数为什么是交叉熵而不是均方误差、逻辑回归的决策边界为什么是线性的、以及逻辑回归如何处理多分类问题。这些问题的背后涉及概率解释、梯度更新、参数含义等多个层次真要写清楚还是有一定难度的。SVM在2018年的试卷里是重点中的重点。题目可能会让你写出SVM的原始优化目标再让你描述如何通过拉格朗日对偶将原问题转化为对偶问题甚至让你解释KKT条件在这个问题中扮演的角色。说实话当时很多同学能背出对偶形式却不清楚为什么要引入核函数、为什么有些样本点对应的拉格朗日乘子为零。这些理解上的差距在笔试里很容易暴露出来。决策树和集成学习部分考点集中在信息增益、基尼系数、随机森林和GBDT的区别上。需要注意一个细节信息增益的计算是笔试高频题会直接给你一个表格数据让你手算某个特征的熵和信息增益。这种题考察的不是你会不会用sklearn而是你是否真的能一步一步把数学算明白。模型评估方面精确率、召回率、F1、ROC曲线和AUC是必须掌握的内容。这个知识点会和实际场景结合出题比如在不平衡数据下为什么准确率不是一个好的评价指标AUC相比准确率好在哪里。如果你在项目里处理过类似问题这种题会答得比较顺手。2.3 深度学习模块CNN、RNN与激活函数深度学习模块是整个试卷中最有“AI工程师”味道的部分。2018年的考察重点包括CNN的卷积与池化计算、RNN的梯度问题、常见激活函数的性质、以及反向传播算法的手推。CNN部分的经典题型是给你一个输入尺寸、卷积核大小、步长和padding让你计算输出特征图的尺寸以及卷积层的参数量。这几乎是送分题但每年都有人算错。需要注意的细节是输出尺寸公式输出宽高 (输入尺寸 - 卷积核尺寸 2 * padding) / 步长 1。如果是空洞卷积还要把膨胀率考虑进去。RNN部分的题库集中在梯度消失和梯度爆炸问题上。为什么RNN难训练、LSTM是如何通过门控机制缓解梯度问题的、梯度裁剪是什么原理这些都需要理解清楚。值得注意的是2018年的试卷还没有过多涉及Attention因为当时Attention更多被用在NMT神经机器翻译里还没有变成通用模块。手推反向传播是很多人的恐惧来源。其实校招笔试的BP题并不会让你推一个完整的ResNet通常是给一个两到三层的简单网络让你把每个参数在前向传播中的作用写清楚再按链式法则计算梯度。关键点在于别跳步、心态稳住把每个中间变量都显式写出来基本就不会错。关于激活函数至少需要比较sigmoid、tanh、ReLU三者的优缺点并解释为什么ReLU在深层网络中更常用。注意别只背结论要能解释到“梯度传播”和“神经元死亡”这个层面。如果能提到LeakyReLU、ELU这些变体会显得功底更扎实。2.4 编程与逻辑思维模块代码能力测试编程题部分不会像纯算法岗那样出hard级别的动态规划题但数组、字符串、二叉树、简单的贪心算法都是可能出现的。尤其是用Python实现一个功能完整的类或者手写一个排序算法这种题在AI岗笔试中非常常见。2018年网易AI岗题目里有一道比较有代表性的编程题给定一个整数数组找出其中出现次数超过一半的数字。经典的解法有摩尔投票法时间复杂度O(n)空间复杂度O(1)。这道题考察的核心是你能不能跳出“用哈希表计数”的惯性思维找到一个更优解。如果你在刷LeetCode时遇到过这题基本能顺手写出来。另外试卷会出现一些“简答题式”的编程问题。比如让你设计一个LRU缓存或者实现一个简单的字符串匹配函数。这些题目在工业界有很强的映射意义因为缓存、队列、正则匹配逻辑在模型训练的数据管道和推理服务里非常常见。写这类代码时不仅要关注正确性还要考虑边界条件和极端输入。我建议准备阶段用Python刷题但不要只用Python。熟练的人可以再掌握C的基础语法因为有的公司面委会在编程题基础上追问你C内存管理的思路。网易这份卷子虽然不是特别强调这个但后续面试环节可能会涉及。2.5 开放性问题与工程直觉考察整张试卷里最有趣的部分是最后几道开放性问题。这类问题没有标准答案考察的是你的分析框架和工程直觉。当年的试卷里有一道比较典型的题目如果给你一个用户行为数据集你会如何设计一个推荐系统并说明冷启动阶段如何处理。这类问题放到今天依然会出现在AI岗面试里因为推荐系统的设计思路代表了典型的AI工程思维方式。你需要提出一个完整的方案框架数据从哪来、特征如何构造、如何划分训练集和测试集、选择什么模型、如何评估、线上效果不佳如何迭代。不需要给出100%的细节但要让人看出来你想过这些问题。另外一个常见的方向是模型评估问题。比如模型线下准确率很高、线上效果却很糟糕你觉得原因可能是什么。这道题考察的是对过拟合、分布漂移、特征泄漏、评估指标选择等概念的综合理解。不要只答一个“过拟合”要分维度展开训练集和测试集是否同分布、线上数据的时间漂移、特征在线上是否可得、评估指标是否真的符合业务目标。具备这种分层思维本身就是AI工程师和其他纯算法岗的重要区别。3. 模拟实战从典型题目中拆出解题套路3.1 机器学习推导题的规范化解法我们拿一道非常有代表性的手推题来演示解题过程。题目大致是给定线性回归模型y wx b损失函数为均方误差L (1/n)Σ(wx_i b - y_i)²请写出参数w和b的梯度更新公式。第一步明确目标。我们要求的是损失函数对w和对b的偏导数。第二步用链式法则拆解。对于单个样本令误差项e_i wx_i b - y_i那么∂L/∂w (2/n)Σ e_i * x_i∂L/∂b (2/n)Σ e_i。第三步写出梯度下降更新公式w : w - η * ∂L/∂wb : b - η * ∂L/∂b。整个过程看起来简单但很多同学的失分点在于没有写清楚“如何从损失函数出发推得结果”而是直接默写更新公式。笔试阅卷时推导过程所占的分数比重往往比结果更高所以每一步都要让阅卷人看到你是真的会推而不是背了一个公式。后面凡是遇到类似的BP推导题我都建议采取这种“分层拆解”的写法先定义中间变量再逐层求导最后汇总成一个表或一段代码。3.2 深度学习手算题感受野计算与卷积参数量感受野计算是CNN考点的又一个高频类型。题目会给一个多层卷积网络让你计算最后一层某个特征位置对应到输入图像上的区域大小。计算方法其实很简单从最后一层往前倒推。对于第i层从前往后编号感受野计算公式为 RF_i RF_{i-1} (k_i - 1) * stride_accumulated其中stride_accumulated是第i层之前所有层的步长乘积。如果不太理解这个公式可以直接记忆一个更直观的版本感受野等于从输出端往输入端逐层“放大”每经过一层卷积或池化感受野按“卷积核大小-1”扩展并按之前的步长累积放大。举个例子输入224x224图像经过一个5x5卷积步长1、一个2x2最大池化步长2、再经过一个3x3卷积步长1第三层输出的感受野是多少按公式初始RF1第一层后RF1(5-1)15第二层后RF5(2-1)27第三层后RF7(3-1)1211。所以输出特征上的每个点对应的输入区域大小是11x11。卷积参数量的计算更简单参数量 输入通道数 * 输出通道数 * 卷积核高 * 卷积核宽 输出通道数bias。比如输入64通道、输出128通道、卷积核3x3则参数量 641283*3 128 73984。这类题的关键是细心别漏掉bias也别把通道数顺序搞反。3.3 开放题的标准作答框架开放题的作答我建议采用“总分总”的结构并且一定要分点作答。先说结论再展开说明最后补一句风险或限制。比如推荐系统冷启动那道题可以这样组织先说冷启动本质新用户或新物品缺乏历史交互数据导致协同过滤类方法失效。然后分策略基于内容特征的推荐如用户的注册画像、物品的属性标签基于规则的推荐如热门榜、最新榜基于探索与利用EE的策略如多臂老虎机、Thompson采样。最后说评估方案用离线指标如准确率、召回率和在线指标如点击率、停留时长双维度评估并说明可以通过A/B测试控制风险。这套框架的优点是“逻辑完整、主次分明”即使你对推荐系统实践经验不多也能展现出良好的结构化思维能力。面试官看重的往往不是你的方案有多精妙而是你面对一个模糊问题时能不能快速理出思路、拆解问题、给出可落地的方案。4. 常见问题与备考建议实录4.1 数学基础薄弱从哪里开始补如果你不是数学相关专业的看到试卷里的推导题心里发慌这是很正常的。我的建议是不要一上来就啃砖头一样的数学教材直接以“机器学习算法为引导”逆向学习。当你看到一个算法时尝试回答三个问题这个算法的目标函数是什么如何求解这个目标函数求解过程中用了哪些数学工具刚开始会很困难但坚持一两周后你会发现自己对概率论和线性代数的理解比单纯刷题牢固得多。比如复习朴素贝叶斯时把条件概率、贝叶斯公式、独立性假设都过一遍复习PCA时把协方差矩阵、特征值分解、SVD都串起来。这种“以用带学”的方式更适合备考时间有限的校招生。4.2 笔试时间不够用怎么安排做题顺序以网易这份试卷的篇幅来看正常做题时间是60到90分钟题量大、时间紧很多人最后都做不完。我的经验是拿到试卷后先花一两分钟把整张卷子扫一遍然后从头开始按顺序做但遇到卡壳超过3分钟的题先跳过别恋战。数学和机器学习的选择题部分尽量控制在20分钟以内因为这些题快速判断后能拿分性价比很高。深度学习手推题和编程题需要留足时间最好预留30分钟以上。开放题放到最后写这类题看的是整体思路和框架花10到15分钟写出一个可以自洽的方案就够了不用追求完美。这里有一个很容易被忽略的细节编程题如果时间不够可以先写出解题思路的伪代码或注释哪怕是部分实现也能拿到一定分数。千万不要交白卷交白卷和写了一半思路得分差距巨大。4.3 刷题资源与复习清单备考阶段刷题资源的选择直接影响到复习效率。算法题方面LeetCode是标配但不需要刷完所有题目。重点关注数组、字符串、链表、栈、队列、二叉树、排序和搜索这几类高频考点动态规划放中优先级图论题如果不是参加竞赛训练可以先放一放。机器学习理论知识方面《统计学习方法》李航和《机器学习》周志华是国内公认的主流教材。前者对SVM、决策树、最大熵模型有非常详尽的推导后者内容更全面、更像工具书。两本配合使用效果更好。深度学习方面入门可以看《深度学习》花书但校招准备阶段不需要把花书从头到尾看完抓住第6章到第9章深度前馈网络、正则化、优化、CNN就够了。此外强烈建议把“动手推导”作为复习的核心动作。找几张白纸把线性回归、逻辑回归、朴素贝叶斯、SVM、BP算法的推导过程完整写一遍。写的时候不要看任何资料写到卡住的地方再翻书。这种“输出式复习”的效率远比反复看视频教程要高得多。4.4 从真题到应对策略一份可供参考的自查清单我把复习内容整理成一份自查清单你可以对照着看看自己还有哪些薄弱环节模块核心知识点掌握标准数学基础贝叶斯公式、期望方差、特征值分解、梯度与链式法则能独立推导、快速计算机器学习线性回归、逻辑回归、SVM、决策树、集成学习、聚类能写出损失函数和优化目标能进行公式推导与计算深度学习CNN结构、RNN/LSTM、激活函数、BP推导、正则化方法能手推反向传播理解卷积感受野计算编程能力数组、字符串、二叉树、排序算法、Python类实现能在20分钟内独立完成一道中等难度的算法题工程思维推荐系统设计、模型评估、特征工程、冷启动能给出结构化、可落地的方案框架这份清单谈不上有多高深但如果你能把清单上的每一项都做到“不看资料也能说得清楚”那么应付大部分AI岗校招笔试问题不大。4.5 考后复盘笔试的意义不止于通过我最想分享的一点是笔试从来不是终点把它当作一次免费的知识体检。每次笔试或模拟测试之后花半小时复盘错题把每一个错题对应的知识点展开成一篇笔记然后在一周后再做一遍这种“测验-复盘-重测”的循环是我自己当年备考最有效的策略。5. 写在最后网易2018校招人工智能工程师笔试卷放到今天来看很多题目确实属于“基础中的基础”甚至显得有些朴素。但恰恰是这种朴素才更真实地反映了一件事——AI这个领域无论表面的框架、模型多么日新月异底层的内功心法始终没有变过。你不需要会背最新论文的每个公式但你必须能在白板上推导出梯度下降你不需要熟悉每一个框架API但你必须能写出逻辑清晰的代码。最后再分享一个小技巧准备这类笔试时试着把自己想象成出题人。你每复习一个知识点就问自己“如果我要考别人这个知识点我会怎么出题我会在哪个细节上设坑”当你开始用这个视角去审视知识时你对很多概念的理解深度会完全不一样。这也是当年我在备考过程中收获最大的一种思维方式希望对正在准备校招的你同样有效。