各位年薪300万的大大好,
小的刚入行AI领域一年多(音讯/语音),
来分享一下最近的面试心得吧。
本人背景:
四大电子硕(研究领域非AI)
新创IC设计公司(音讯算法开发,一年)
中国大陆互联网公司(语音算法开发,四个月)
面试公司有两间:
1.中国大陆互联网新创公司
2.台湾IC设计大厂
1.中国大陆互联网公司
职缺:语音算法工程师
公司介绍:
该公司是一个专门做语音交互的AI新创公司,
技术长们来自美国谷歌与中国微软,
会持续追踪国内外最新的算法,并且套用在自家产品与服务上,
大方向上有语音唤醒,语音识别,自然语言处理等等。
面试心得:
由于公司在中国大陆,所以是用电脑远端跟主管面谈,
有好几个关卡,主要都是问我之前工作的内容,
对于技术问得还蛮细的,像是我之前有用CTC loss(一种序列分类任务)来训练唤醒模型,
主管有问到CTC的原理,以及训练的时候,标注target的方法,
也有主管问到一些跟讯号处理有关的,像是语音降噪,以及回声消除的原理。
有两个主管有程式题,
其中一题蛮简单的,就是要怎么对连续的声音讯号做moving average,
第二题就比较难一点,要比较出两个字串的word error rate(edit distance),
这题要用dynammic progamming来解,大概是leetcode中级的程度吧,
中国大陆那边的公司,还蛮注重解题能力的。
2.台湾IC设计大厂
职缺:声学算法工程师
面试心得:
一面(小主管):
主要是在讲之前工作的内容,用过哪些tools,
我一开始在台湾的IC公司做讯号处理,
偶尔会用tensorflow来训练一下模型,
主管没什么太大的兴趣,可能觉得这些都比较基础,
而我后来在中国大陆有用到kaldi做语音识别与唤醒,
主管反而比较有兴趣一点,也许kaldi这个工具,
对于公司未来的技术发展,会有帮助。
二面(大主管):
除了报告之前的工作内容之外,也有蛮多时间在闲聊,
由于本身不是这个领域毕业,以及工作经验也不算久,
主管还是有看我的成绩单,至少我讯号处理的成绩都算高的,
当中也有问到讯号处理的问题,像是为什么要用window function,
以及离散傅立叶转换(DFT)的特性。
结论:
两家给的offer薪资都差不多,
以语音的技术面来说,中国大陆的公司可能更好一些,
不过我比较想留在台湾工作,所以最后只好放弃。
对AI领域的看法:
1.domain knowlege很重要
自己是走语音这个领域,这领域其实目前还是用到不少传统的算法(HMM/GMM),
所以去中国大陆那段期间有恶补一阵子,
除了模型本身之外,如果会接触到前端的讯号,
讯号处理的知识也是很重要的。
2.工程能力很重要
其实在业界做AI算法不太需要自己设计一个全新的模型,
大部分都是从github下载论文的实作然后拿来改,
可是别人的训练框架不一定是tensorflow,
可能是keras,也有可能是pytorch,
至少这些框架要稍微了解一下,才有办法改来用。
除了模型训练,模型的部署,不管是端上或服务器上,
为了讲求效率会用C语言甚至定点化,
像是kaldi里面是用C++写的,有时候为了让速度更快或是节省更多内存,
就要去改source code,我之前在中国大陆工作,
对这些编译环境不是很熟,主管有好几次直接帮我改source code以及Makefile。
3.中国大陆机会比较多
除了美国之外,中国大陆的AI走的也蛮前面的,
再加上那边的软件工程也远比台湾发达,
我觉得趁年纪轻的时候,去那边做个几年,一定会有不少收获。
4,推荐非本业转行到AI领域吗?
目前完全不推,现在AI的门槛太低,
除非你有很扎实的工程能力或domain knowlegde。
以上是我对AI领域的一些浅见与心得,谢谢大家。