©原创作者 | 三金
写在前面:
“得人工智能者得天下”,这句话在互联网圈子流传盛广。人工智能工程师岗位薪酬普遍较高,让部分毕业生眼前一亮,毕业后直接加入到了相关岗位的竞争中,面试堪称神仙打架。
而华为作为全球领先的ICT(信息与通信)基础设施和智能终端提供商亦设有该岗位,今天就和小编一起去探秘华为人工智能工程师岗位吧~
01 岗位介绍
岗位名称:AI工程师(研发类)
工资待遇:占比90%的员工月薪在30K-50K区间。[1]
招聘方向:8个方向,具体为:自然语处理/语音语义、机器学习、计算机视觉、决策推理、推荐搜索、AI算子开发、AI性能优化、AI软件开发
岗位要求:方向不同,各个岗位具体要求也不相同。但大多数招聘方向在学历背景、编程能力、深度学习框架以及科研竞赛上都有明确规定:
1)获得计算机科学、机器学习、统计学、应用数学等领域的优秀硕士;
2)具备较强的编程能力,精通主流编程语言,如C++/Java/Python等;
3)熟悉至少一种常用深度学习框架,如Caffe、Tensorflow、Pytorch、Keras框架等;
4)在高水平国际会议和学术期刊发表过相关论文,或有高水平竞赛获奖经历。
此外,在算法方面,自然语处理/语音语义方向需要熟悉常见NLP任务的定义和基础实现方法;计算机视觉方向需要掌握计算机视觉和图像处理基本算法,并在如下一个或多个相关方向有较深入研究:检测、识别、OCR、分类、语义分割、图像处理;推荐搜索方向需要应聘者对常用的数据挖掘、机器学习、线性规划等算法有较深入了解,有实际算法调优经验,参与过诸如广告点击率预估、个性化推荐模型、搜索排序等项目;AI算子开发方向表明熟悉TVM编译器和 NNVM 原理,有计算图层和算子层开发和优化经验者优先。
AI软件开发方向要求熟悉深度神经网络、计算机视觉、机器人导航定位、运动规划等算法领域中的至少一种,能够针对算法特点与芯片硬件特点设计最佳算法实现方式并优化部署。
工作地点:北京、南京、杭州、武汉、苏州、济南、东莞、深圳、成都、西安均有相关部门设有该岗位。
02 面经干货
华为AI工程师面试共计三轮,技术面两轮,主管面一轮。其中技术面末尾都会考核编程能力。
1)面经来源牛客网ID:这个不可以吃
A、一面:(注:技术一面和技术二面合并面试)
1. 梯度消失及梯度爆炸的原因。
AI面试指南参考答案:
1)网络深度的原因:神经网络通过反向传播损失函数计算的误差实现网络参数的更新优化,若神经网络层数太深、初始权重值太小,且激活函数的梯度在0-1之间,则各层连乘之后得到的值的绝对值也会在0-1之间,从而导致梯度消失;反之若初始值权重较大,且激活函数求导后梯度值大于1,则随着网络层数的增加,梯度很容易指数级增长,从而导致梯度爆炸。
2)激活函数的原因:神经网络使用了不合适的激活函数,例如Sigmoid,就会差生梯度消失问题。如下图所示,左侧为Sigmoid的曲线图,其映射值在0-1之间,右侧为导数图,取值在0-0.25之间,这意味着无论输入值为多大,其链式相乘后输出值会越来越小,从而造成梯度消失的现象。
此外,值得注意的是,梯度消失产生时,通常接近输出层的隐藏层梯度相对正常,权值更新也相对正常,但是靠近输入层的隐藏层权值更新缓慢或者甚至停滞。
2. L2正则化是为了解决梯度消失还是梯度爆炸。
AI面试指南参考答案:
解决梯度爆炸。因为发生梯度爆炸的时候,权值会变得很大,正则化可以限制权值的大小,防止过拟合。
3. 损失函数有哪几种,具体公式描述一下。
AI面试指南参考答案:
1)0-1损失函数:预测值和目标值不相等为1,否则为0。
2)绝对值损失函数:计算预测值与目标值的差的绝对值。
3)log对数损失函数:应用于逻辑回归。
4)均方误差损失函数:应用于线性回归任务。
5)交叉熵损失函数:应用于离散分类任务。
4. 逻辑回归和线性回归的区别。
AI面试指南参考答案:
1)逻辑回归处理分类问题,线性回归处理回归问题,这是本质区别。逻辑回归是给定自变量、超参数后,得到因变量的期望值,根据期望处理预测分类问题,而线性回归是y关于x的线性函数处理回归问题。
2)优化的目标函数不一样:逻辑回归是似然函数,线性回归是最小二乘法。
知识扩展:
两者的相同点是两者在求解超参数的过程中,都可以使用梯度下降的方法。
5. SVM和线性回归的区别。
AI面试指南参考答案:
1)损失函数不同:例如逻辑回归使用的是交叉熵损失函数,而SVM使用的是Hinge损失函数;
2)线性回归可以给出每一类的概率,但是SVM不能;
3)线性模型是参数模型,受数据分布的影响,特别是样本不均衡的时候,需要先做数据平衡,而SVM是非参数模型,不直接依赖于数据分布。
6. EM算法简单描述。
AI面试指南参考答案:
EM算法即期望极大算法,是一种迭代优化策略,每次迭代由两步组成:E步求期望,M步求极大。
7. 开放性问题,怎么比较两个词语的相似性,比如冰箱和洗衣机;对人工智能的发展有什么看法。
AI面试指南参考答案:
1)可以通过词嵌入(Word Embedding)或者分布式向量(Distributional Vectors)将自然语言表示的单词转换为计算机能够理解的向量或矩阵形式,然后再使用相似性度量算法比较单词之间的相似性,例如Jaccard相似系数、基于MinHash的相似性算法、余弦相似度、基于SimHash的相似性算法、TF-IDF等;
2)人工智能相关领域的发展前景非常广阔。以后在机器学习、深度学习阶段更加智能化,并且陆续普及到各个行业,极大提高工作效率,降低生产、管理等成本。例如智慧医疗等。
8. 反转字符串。
AI面试指南参考答案:
1)思路一:从头遍历字符串中的字符;
2)思路二:将字符串转成字符数组,首尾互换;
B、主管面:
1. 对自己的性格是怎么定义的
AI面试指南参考答案:
说出三个关键词,然后用具体的例子去佐证。
2. 同学或是朋友是怎么评价你的
AI面试指南参考答案:
说正面的评价,不要回答影响工作的评价,例如“粗心大意、不守时”等;同样要有理有据,要具体,有说服力。
3. 对华为的负面新闻有什么看法
AI面试指南参考答案:
互联网是一把双刃剑,负面新闻也不一定是真实的报道。对于此类新闻一方面需要判断其影响性,如果影响大,就需要立刻采取措施进行补救,另一方面我们应该反省是否真的需要改进,从而使公司更加锦上添花。注意,这里小编建议面试之前做一下负面调查。
4. 现在很多同学都喜欢从事人工智能岗,你对这有什么看法
AI面试指南参考答案:
1)从行业发展趋势来看,由于人工智能本身就是一个多学科交叉的研究领域,意味着很多同学在学校是相关学科的研究,所以从事该行业也是一个新的趋势;
2)当前金融、医疗和教育等领域与人工智能技术的结合案例已经越来越多了,未来智能化产品会大量应用在互联网领域,这也推动了同学从事人工智能岗。
3)人工智能岗工资薪酬待遇普遍高于其他行业,相信这也是另外一个原因。
2)面经来源牛客网ID:宵夜95
技术一面:
首先自我介绍,接着面试官询问所做项目细节,然后问最熟悉哪个编程语言,作者选择了Python,于是面试官基于Python问了三个问题:
1. *args, **kargs的用法
AI面试指南参考答案:
1. *args实质是将函数传入的参数存储在元组类型的变量args当中;
2. **kargs实质是将函数的参数和值存储在字典类型的kargs变量中。
2. python中基本类型有哪些
AI面试指南参考答案:
1)不可变数据类型(3 个):Number(数字)、String(字符串)、Tuple(元组),其中数字类型包括 int、float、bool、complex(复数);
2)可变数据类型(3 个):List(列表)、Dictionary(字典)、Set(集合)。
3. 内置数据结构有哪些?tuple与list有什么区别
AI面试指南参考答案:
1)内置数据结构有:列表、元组、集合和字典。
2)元组可以看做带了紧箍咒的列表。列表中保存的是地址的索引,所以元素类型不一定相同,元组内也可以存储任意数据类型,但是元组本身是不可变数据类型,没有增删改查。
4. 最后部分手撕代码,是关于螺旋阵列的。
AI面试指南参考答案:
思路:采取列表嵌套的方法。
技术二面:
1. 询问做所项目,遇见什么困难,如何改进的,在项目中哪一部分最重要,作者在项目中做了什么贡献......
AI面试指南参考答案:
考查面试者是否熟悉项目细节。
2. 讲一讲NLP优秀模型;
AI面试指南参考答案:
BERT词向量模型,有两个核心思想:
1)Transformer结构,Transformer是一个基于注意力(Attention)机制的序列模型;
2)进行无监督的预训练。
3. 解释极大似然估计,最大后验概率估计
AI面试指南参考答案:
1)极大似然估计:通过多次实验推测每一个结果可能即似然,其中最有可能的推测即最大似然估计。
2)最大后验概率估计:在给定数据样本的情况下,最大化模型参数的后验概率。
4. 解释核函数及其应用
AI面试指南参考答案:
1)核函数
:
将原空间中的任意两个向量,
,
映射为特征空间中对应的向量之间的内积。
2)应用:在SVM中,通常直接给定核函数,然后用解线性分类问题的方法求解非线性分类问题。
5. 手撕代码,判断交叉字符串。
AI面试指南参考答案:
思路:运用递归算法或者动态规划。
B、主管面:
1. 英文介绍项目;
2. 项目中遇到的困难,如何解决的;
3. 询问工作地点,想去哪里工作;
AI面试指南参考答案:
如实回答,但如果某个地方很有意向,可以回答“最好是xxx,但是不排除xx地方”。
除此之外,三场面试均问了是否了解图模型。
AI面试指南参考答案:
1)概率分布的图形表示被称为图模型,一个图由结点和结点之间的链接组成。在概率图模型中。每个结点表示一个随机变量(或一组随机变量),链接表示这些变量之间的概率关系。
2)有向图模型:贝叶斯网络;无向图模型:马尔科夫随机场。
03 结语
从上述可以发现,想要成为华为AI工程师除了要有较强的学术背景外,还要有过硬的实力。小编在这里要提醒大家,机会只会留给有准备的人,对简历上的项目一定要特别熟悉,特别是技术细节,此外,在准备项目介绍的时候还应该准备英文版本。对于想要提升编程能力的面试者,可以在力扣、牛客网等平台刷题。
面经对于面试者就如同考生考试前的真题练习,关注“AI面试指南”公众号,欢迎后台或评论区留言,告诉小编你想了解哪一个岗位的面经,说不定下期推文就是它哦~最后希望大家都能获得自己理想岗位的offer!
引用
[1] 华为AI工程师工资概况
https://www.jobui.com/company/huawei/salary/j/aigongchengshi/p2/#joblist
私信我领取目标检测与R-CNN/数据分析的应用/电商数据分析/数据分析在医疗领域的应用/NLP学员项目展示/中文NLP的介绍与实际应用/NLP系列直播课/NLP前沿模型训练营等干货学习资源。