难以置信:字节AI-Lab这个领域面试居然没问AI知识

©原创作者 | 三金

字条跳动人工智能实验室(AI-Lab)是公司内部的研究所和技术服务商,其包括8个领域方向:自然语言处理、数据挖掘、计算机视觉、机器学习、计算机图形&增强现实、系统&网络、安全&隐私以及语音与音频[1]。今天小编着重给大家介绍自然语言处理、语音与音频两个领域,带好笔记本让我们一起出发!

01 领域介绍

1.1 领域应用

1)自然语言处理领域:为字节跳动所有产品提供翻译服务以及为头条、抖音提供搜索服务等;

2)语音与音频领域:虚拟广播员和歌手、AI 辅助呼叫中心、具有语音功能的机器人和设备等。

1.2 相关岗位

3)自然语言处理领域:AI-Lab NLP算法工程师-教育方向、AI-Lab NLP自然语言处理算法工程师、AI-Lab后端开发工程师—NLP方向等;

4)语音与音频领域:语音/图像算法测试开发工程师-AI Lab/智能创作、AI-Lab 智能质检产品经理(智能客服方向)、AI-Lab 智能语音ToB方向产品专家等。

1.3 工作地点

北京、上海均有相关岗位

02 面经干货

1)面经来源牛客网(ID:牛客788302983号)

面试岗位:AI-Lab NLP自然语言处理实习生

A、一面45分钟(实际80分钟)

1. 首先自我介绍,然后介绍简历上的项目和论文。

AI面试指南参考答案:

简历上的项目、论文等必须熟悉,特别是技术细节方面。

2. 机器翻译中可能存在哪些问题?

AI面试指南参考答案:

1)机器无法理解上下文语境,导致翻译后语义出现问题;

2)词类出现问题,例如英语中没有意义的助动词会翻译成实义动词;

2)造成句子不通顺,例如在英翻中时,英语中部分冠词实则无需翻译出来,但机器翻译无法判断冠词是否该翻译,所以导致翻译出来的句子不通顺。

3. 对于类别非常多的序列标注任务,如何能让结果更准确?

AI面试指南参考答案:

1)使用模型融合的方法,即将多个分类器进行有效融合进行序列标注任务。

2)设置合适的损失函数,例如Focal loss损失函数(度量难分类和易分类样本对总损失的贡献)。

3)采用数据增强(即词汇替换、先翻译成其他语言再翻译回原来的语言、打断句子顺序、随机噪声注入等方法)、过(降)采样、修改类别权重值等方法。

4. 如何能够控制生成摘要的长度?

AI面试指南参考答案:

首先将文本拆分成句子,接着对句子进行预处理,例如删除停用词、替换空格等,然后检查文本中单词的频率,同时频率越高的单词给予越大的分数值,进一步计算每一个句子的分数,分数越大表示越重要,最后根据需求选择分数排名前n的句子作为摘要。

5. 题目描述:给你一个数组,以及一个常数k,你每次都可以从数组的第一个或者最后一个中选择一个,但是不放回,也就是选完就要把这个数扔掉,返回可能的k个数的和的最大值。

AI面试指南参考答案:

使用暴力破解方法

6. 用过哪些做摘要的模型?简单介绍一下。

AI面试指南参考答案:

1)Word2vec:得到更优的词向量,包括两种结构:CBOW模型根据周围词预测中心词(多对一)与Skip-gram模型根据中心词预测周围词(一对多)。

2)RNN:能够捕获之前已经计算过的信息用于当前计算。

3)LSTM:弥补了RNN缺陷,能够捕获无限长的上下文信息进行计算。

4)Transformer:由Encoder和Decoder组成,能够高效并行化。

5)BERT:基于深度双向Transformer的预训练模型,输入是一个线性序列,支持单句文本和句子文本。

7. BERT的三个输入embedding向量为什么可以相加

AI面试指南参考答案:

三个Embedding相加即特征融合。由于Embedding的数学本质是以独热编码为输入的单层全连接,所以可以理解为先将三个输入(token、position、segment)进行独热编码,然后再通过concate的方式融合成一个新的特征,这样可以使BERT能够学习到更多的信息。

8. BERT的输入为什么限制在512?

AI面试指南参考答案:

使计算效率与运行效率更高。

9. BERT的[MASK]token是和[CLS]一样,是一个有语义的向量吗?

AI面试指南参考答案:

是。在BERT中,受完型填空任务的启发,会选取语料中所有词的15%进行随机mask。在选取的词中,80%会被替换为[MASK] token,10%随机替换,10%保持不变,而[MASK] token可以在不泄露 label 的情况下融合真实的双向语义信息。

B. 二面:45分钟(实际55分钟)

1. 首先自我介绍,然后介绍简历中的论文

AI面试指南参考答案:

两次面试,面试官均详细提问了简历内容,故大家应该对自己的简历上的项目、论文等特别熟悉。

2. 把论文里使用的对比损失(InfoNCE loss)写一下

AI面试指南参考答案:

对比损失的核心思想是最大化相似性和最小化差异性。公式如下图所示,其中q表示待查询的样本,kr表示与查询样本相似的样本,ki表示负样本。

难以置信:字节AI-Lab这个领域面试居然没问AI知识_第1张图片

3. 中文分词的算法

AI面试指南参考答案:

有基于字符串匹配、n元语法、隐马尔可夫模型、条件随机场的分词算法。

2)面经来源牛客网ID:宵夜95

面试岗位:AI-Lab 智能语音团队

A、一面(50分钟)

1. 虚拟内存的概念和好处

AI面试指南参考答案:

1)概念:虚拟内存是计算机系统内存管理的一种技术,将物理地址空间定义为一个连续的虚拟内存地址,在实际中,虚拟内存通常被分隔成多个物理内存碎片,还有部分暂时存储在外部磁盘存储器上,在需要时进行数据交换。

2)好处:①可以将主存视为一个存储在磁盘上的地址空间的高速缓存,在主存中只保存活动区域,并根据需要在磁盘和主存之间来回传送数据;②为每个进程提供了一致的地址空间,简化了内存管理;③保护了每个进程的地址空间不被其他进程破坏。

2. 内存共享和保护怎么实现的

AI面试指南参考答案:

1)内存共享:把同一片内存映射到多个进程的虚拟地址空间,以便CPU可以在各个进程访问到这片内存。

2)内存保护:①CPU中设置上、下限寄存器,存放用户作业在主存中的下限和上限地址,每当CPU要访问一个地址时,分别和两个寄存器的数据比较,判断是否越界;②使用重定位寄存器(基址寄存器)和界地址寄存器(限长寄存器):重定位寄存器中包含最小物理地址值,界地址寄存器包含逻辑地址的最大值。

3. 分段和分页的区别,为什么要分段

AI面试指南参考答案:

1)分页:从计算机角度考度设计而成的,将主存空间划分为大小相等且固定的块,块相对较小,作为主存的基本单位,进程以块为单位进行空间申请。有利于提高内存利用率。

2)分段:从用户和程序员的角度提出,按照用户进程中的自然段划分逻辑空间。目的方便编程,信息保护和共享,动态增长和动态链接等多方面的需求。

4. 一个进程如何创建一个子进程

AI面试指南参考答案:

用fork()函数创建子进程。fork()函数有两个返回值,其中一个是给父进程返回子进程的PID,另外一个是给子进程返回0。

5. 说一说锁机制

AI面试指南参考答案:

1)在数据库中,锁是一种基于多用户访问的并发控制技术,一个事务在访问数据库中的数据时,获得锁,可以禁止这一段时间内的其他事务的访问,同时也规定了该事务能执行什么样的操作。锁的类型可以分为:排它锁(写锁),共享锁(读锁),注意不能同时写,不能边写边读,不能同时读。2PL 协议(两段锁),在事务提交或者回滚之前为加锁阶段,之后为解锁阶段。

2)在Java中,锁机制可以分为公平锁、非公平锁;独享锁、共享锁;互斥锁、读写锁;悲观锁、乐观锁;可重入锁等。

·公平锁:多个线程根据申请锁的顺序获得锁;

·非公平锁:不根据申请锁的顺序获得锁,后来的线程可能更优先获得锁。容易造成饥饿现象;

·独享锁:一个锁只能被一个线程拥有;

·共享锁:一个锁可以被多个线程拥有;

·互斥锁:独享锁的具体实现;

·读写锁:共享锁的具体实现;

·悲观锁:悲观锁认为同一个数据的并发操作,数据一定会发生改变,故进行加锁;

·乐观锁:乐观锁认为同一个数据的并发操作,数据不会发生改变,更新数据的时候采用不断更新的方式。

·可重入锁:即递归锁,指同一个线程在外层方法获取锁的同时,内层方法也会自动获得锁。

6. (算法题)无序数组找中位数

AI面试指南参考答案:

1)思路一:将无序数组进行排序,然后取出中间的元素;

2)思路二:使用分治法。

7. (算法题)二叉树的之字形的遍历

AI面试指南参考答案:

1)思路:层序遍历,递归查询。

B、二面(40min)

1. (算法题)给定一棵二叉树,返回二叉树宽度,保证结果不超过int

AI面试指南参考答案:

1)思路:二叉树的层序遍历,可以考虑使用队列存储元素。

2.一个程序写完之后要如何执行

AI面试指南参考答案:

需要经过以下4个阶段:

1)预处理:输入源程序,预处理器根据命令行修改源程序;

2)编译:将程序转为汇编语言程序;

3)汇编:将汇编程序转为机器语言指令;

4)链接:合并代码生成可执行文件,加载到内存中,系统执行程序。

3. 动态链接和静态链接的区别

AI面试指南参考答案:

1)静态链接比动态链接加载更快,因为动态库没有打包到程序中;

2)动态链接更节省磁盘空间和内存;

静态库如果更新了,需要重新编译,但是动态库更新,不需要重新编译。

4. 用过哪些编译命令,动态链接的命令是什么

AI面试指南参考答案:

1)“gcc -S”将文件编译成为汇编代码;“gcc -E”将文件重定向到一个输出文件里;“gcc -g”只是编译器,在编译的时候,产生调试信息......

2)-fPIC和-shared可以生成一个动态链接库,再链接到可执行程序就可以正常运行;readelf命令可以查看动态链接库的segment信息。

5. inline函数的作用、优缺点

AI面试指南参考答案:

1)作用:可以解决程序中函数调用的效率问题,通过增加空间开销而节省时间成本;

2)优点:inline定义的内联函数可以把函数代码放到符号表中,使用时效率更高;

3)缺点:内联函数通过复制函数代码,会增加空间开销,此外,如果函数体内有循环,则时间开销也较大。

6. 编译器一定会对inline函数进行处理吗(不会,内联函数只是对编译器的建议,是否对函数内联,决定权在于编译器,对于较为复杂的代码(比如递归层数太多,循环过多等等)编译器不会选择内联)

AI面试指南参考答案:

不会。编译器具有决定权,可以决定是否对内联函数进行处理,如果面对多层循环等复杂代码,使用内联函数会产生较大的时间开销,故编译器此时不会选择对内联函数进行处理。

7.觉得自己有什么优势

AI面试指南参考答案:

列出三个关键词,并举例论证。

8. 其他面试题:

·可以实习的时间,什么时候可以来实习

·现在大三是吧,接下来有什么打算

·平时怎么学习的,有没有学习过机器学习相关内容

总体来看,字节AI-Lab的自然语言处理、语音与音频两个领域的面试流程均为两轮面试,且两轮面试中都会考察面试者的编程能力。令人感到惊奇的是,在语音与与音频领域的面试中,这位同学并没有问到AI相关的理论知识,而是着重被问了408。由此可见,大家在准备面试的时候,一方面要准备AI基础知识,另一方面,408也务必充分准备。最后小编希望大家都能获得心仪岗位的offer~

引用来源

[1] AI-Lab官网

https://ailab.bytedance.com

私信我领取目标检测与R-CNN/数据分析的应用/电商数据分析/数据分析在医疗领域的应用/NLP学员项目展示/中文NLP的介绍与实际应用/NLP系列直播课/NLP前沿模型训练营等干货学习资源。

你可能感兴趣的:(人工智能,面试,职场和发展)