一些NLP的面试问题

自然语言处理(NLP)岗位最新面试经验总结 几乎所有自然语言类(NLP)岗位都是3轮及以上的面试。第一轮:基本沟通(自我介绍、经验介绍…)、基础知识(线程、设计模式…)、基础算法题(Transformer、Bert…)。第二轮:有一定难度的算法题、项目经验的详细讨论。第三轮:技术Leader和HR的最终面试。并且必定会考算法题。对于每一家公司,算法绝对是一个基本线,如果算法不过关那么几乎没有机会到达第三轮面试。所以算法准备是必须的!但也不是万能的,如果你以为只刷leetcode就能顺利通过面试,那就有点盲目乐观了。下面开始分享干货很干的呦,比干香菇还 阅读详情

作者:Pratik Bhavsar

编译:ronghuaiyang

导读

在NLP的面试中提问频率非常高的问题。

练习NLP是一回事,破解面试是另一回事。对NLP人员的面试与一般的数据科学非常不同。在短短几年内,由于迁移学习和新的语言模型,这些问题已经完全改变了。我个人经历过,随着时间的推移,NLP面试变得越来越艰难,因为我们取得了更多的进步。

早些时候,都是关于SGD,naive-bayes和LSTM,但现在更多的是关于LAMB,transformer和BERT。

这篇文章是我在接受采访时遇到的一些问题的小的总结,希望能对现在的NLP的面试的一些重要方面有所帮助。在transformer架构之后,我更关注NLP中发生的事情,这也是我在面试中主要的问题。

这些问题对于评估NLP工程师非常重要,如果你没有被问到任何一个问题,你可能正在面试一个过时的NLP团队,他们做复杂工作的范围更小。


什么是perplexity?它在NLP中的地位是什么?

Perplexity是一种表达模型在预测中出现的混乱程度的方法。熵越大=越混乱。使用Perplexity来评估NLP中的语言模型。一个好的语言模型会给正确的预测赋予更高的概率。

ReLu的问题是什么?

  • 爆炸梯度(通过梯度裁剪来解决) 

  • 死亡ReLu — 激活为0时不进行学习(通过加参数的ReLu解决)

  • 激活值的均值和方差不是0和1。(通过从激活中减去约0.5来部分解决这个问题。在fastai的视频力有个更好的解释)

使用SVD学习潜在特征和使用深度网络获取嵌入向量有什么区别?

SVD使用输入的线性组合,而神经网络使用非线性组合。

LSTM的hidden和cell存储的信息是什么?

hidden存储到当前时间步的所有信息,cell存储将来的时间步中可能需要的特定信息。

带bias的LSTM模型的参数个数

4(????h+h²+h) 其中 ???? 是输入向量的尺寸, h 是输出向量的尺寸,hidden也是一样。

要注意的是 mh 中 m>>h. 因此重要的一点是需要使用小的词汇表。

LSTM的复杂度

序列长度*hidden²

transfomer的时间复杂度

序列长度²*hidden

当hidden尺寸大于序列长度时(通常是这种情况)时,transfomer速度比LSTM快。

为什么self-attention怎么牛逼?

“在计算复杂性方面,当序列长度n小于表示维数d时,self-attention层速度比recurrent层要快,实际情况也往往是这样,同时可以在机器翻译中使用最先进的模型来进行句子的表示,比如word-piece和byte-pair表示。“ — Attention is all you need

Adam optimiser的局限性是什么?

虽然使用Adam进行训练有助于快速收敛,但结果模型的泛化性能往往不如使用SGD进行动量训练时的泛化性能。另一个问题是,即使Adam有自适应学习率,当使用良好的学习率计划时,它的性能也会提高。特别是在训练的早期,使用较低的学习率来避免发散是有益的。这是因为在一开始,模型的权值是随机的,因此得到的梯度不是很可靠。如果学习率太大,可能会导致模型采取太大的步骤,而没有确定合适的权重。当模型克服了这些初始稳定性问题后,可以提高学习速度,加快收敛速度。这个过程被称为学习率热身,其中一个版本在论文“Accurate, Large Minibatch SGD: Training ImageNet in 1 Hour”中有描述。

AdamW和Adam有什么不同?

AdamW是Adam在权重上使用了L2正则化,这样小的权重泛化性能更好。

使用大的batch size可以训练模型更快吗?

是的!

在2018年4月的这条推特中,Yann建议不要使用大的batch size。

好消息!

这在以前是不可能的,但是现在有了新的优化器,比如LARS和LAMB。ALBERT使用了LAMB和batch size为4096进行了训练。

Large Batch Optimization for Deep Learning: Training BERT in 76 minutes:https://arxiv.org/abs/1904.00962

你喜欢特征提取还是微调?你怎么决定?你会使用BERT作为特征提取器还是对它进行微调?

在这篇文章中有详细的解释。

Transfer Learning in NLP:https://medium.com/modern-nlp/transfer-learning-in-nlp-f5035cc3f62f

举一个学习率调度策略的例子?

解释Leslie Smith的cycle策略。

我们应该在深度学习中进行交叉验证吗?

不用。

随着样本数量的增大,cross-folds的方差减小。因为我们只有在样本成千上万的情况下才进行深度学习,所以交叉验证的意义不大。

在多任务学习中,软、硬参数共享的区别是什么?

在硬共享中,我们一次训练所有的任务,并根据所有的损失更新权重。在软共享中,我们一次只训练一个任务。

注意力机制有哪些不同类型?

BatchNorm和LayerNorm的区别?

BatchNorm — 为每一个小batch计算每一层的平均值和方差

LayerNorm — 独立计算每一层每一个样本的均值和方差

为什么transformer块使用LayerNorm而不是BatchNorm?

从LayerNorm的优点来看,它对于batch大小是健壮的,并且在样本级别而不是batch级别工作得更好。

如果你知道你的训练数据有错误,你会对你的深度学习代码做什么改变?

我们可以做标签平滑,其中的平滑值是基于百分误差。如果任何特定的类有已知的误差,我们还可以使用类权值来修正损失。

如何为一个任务选择文本编码器?你最喜欢的文本编码器是什么?为什么?

这是一个主观问题,你可以通过阅读了解更多

Variety Of Encoders In NLP:https://medium.com/modern-nlp/on-variety-of-encoding-text-8b7623969d1e

在ULMFiT中使用了哪些技巧?(不是很好的问题,但是可以检查意识)

  • 使用任务文本进行语言模型的调优

  • 权重dropout

  • 每个层独立的学习率

  • 逐步的解冻层

  • 斜三角学习率策略

接下来可以提出一个问题,解释它们是如何提供帮助的。

为什么transformer的性能比LSTM好?

https://medium.com/saarthi-ai/transformers-attention-based-seq2seq-machine-translation-a28940aaa4fe

有趣的问题:在transformer中使用最多的层是哪一层?

Dropout ????

技巧问题:告诉我一个不使用dropout的语言模型

ALBERT v2:这说明了一个事实,我们认为理所当然的许多假设并不一定是正确的。ALBERT中参数共享的正则化效果非常强,不需要dropouts。(ALBERT v1有dropouts。)

GPT和GPT-2有什么区别?

  • Layer normalization放到了每个sub-block中,类似于残差单元的“building block”(和原始的“bottleneck”不一样,原始的里面在权重层之前有批归一化层)。

  • 在最后的self-attention block之后添加了一个额外的layer normalization。

  • 使用模型深度的函数来对初始化进行修改。

  • 残差层权值初始按1/√n的倍数缩放,其中n为残差层数。

  • 使用更大的词汇量和上下文。

GPT和BERT有什么不同?

  • GPT不是双向的,没有masking的概念

  • BERT在训练中加入了下一个句子预测任务,所以它也有 segment嵌入

BERT和ALBERT v2有什么不同?

  • 嵌入矩阵分解(有助于减少参数数量)

  • 没有dropout

  • 参数共享(有助于减少参数数量并进行正则化)

ALBERT中的参数共享如何影响训练和推理时间?

没有效果。参数共享只是减少了参数的数量。

如何减少训练好的神经网络模型的推理时间?

  • 在GPU/TPU/FPGA上进行服务

  • 16位量化,部署在支持fp16的GPU上提供服务

  • 剪枝以减少参数

  • 知识蒸馏(用于较小的transformer模型或简单的神经网络)

  • 分层softmax

  • 你也可以缓存结果,这里有解释。

Productionizing NLP Models:https://medium.com/modern-nlp/productionizing-nlp-models-9a2b8a0c7d14

给你这个图表,你会选择transformer模型还是LSTM语言模型?

你会把BPE与经典模型结合使用吗?

当然!BPE是一个智能的tokens生成器,它可以帮助我们获得更小的词汇表,这可以帮助我们找到参数更少的模型。

如何制作一个arxiv论文搜索引擎?(有人问我 —— 你怎么做一个抄袭检测器?)

用TF-IDF相似度得到k个top的结果,然后用

  • 语义编码+余弦相似度

  • 一个排序模型

On Semantic Search:https://medium.com/modern-nlp/semantic-search-fuck-yeah-e371c0f639d

如何制作一个情感分类器?

这是个脑筋急转弯。面试者可以说所有的事情,如使用转移学习和最新的模型,但他们需要说到有一个中性的类,否则你可以有很好的准确性和f1值,模型会把一切只分为积极或消极。

事实上,很多新闻都是中立的,所以训练需要设置这个类别。被面试者还应该谈到他将如何创建一个数据集和他的训练策略,如选择语言模型,语言模型微调和使用各种数据集进行多任务学习。

英文原文:https://medium.com/modern-nlp/nlp-interview-questions-f062040f32f7

(完)


NLP相关工作的面试技巧 维基百科很好地解释了,自然语言或普通语言是指人类通过使用和重复自然演化而来的任何语言,没有经过有意识的规划或预谋。上述定义中的关键词是“人类”。在NLP中,还有一个关键词:计算机。从这个关键词中得出的定义是,NLP涉及教计算机如何理解自然语言。由于它是一台计算机,这种理解意味着处理和分析以不同数据格式存储的自然语言数据。为了做到这一点,NLP结合了人工智能、计算机科学和语言学的知识。 阅读详情

相关推荐

100 个 NLP 面试问题

对于技术磨练中,其中一项很酷的技能培训是提问。不知道答案并没有多大的错;错就错在不谷歌这些疑问。本篇就是在面试之前,您将此文档复制给自己,做一个系统的模拟实战。

gongdiwudu的专栏 4454

nlp面试汇总

这些面试题是在各个平台上搜取的,方便大家面试的时候使用,主要偏向nlp方向 词向量 词向量平均法做分类的优劣势是什么? 优势 词向量平均的方法做分类模型,主要的优势是模型简单 有参数模型,无参数模型都可以尝试使用,模型选择大 模型速度极快,训练的参数量少 在语句少的场景下,效果好 劣势 在语句长的长的场景下,效果会变的很差 语句长,分出的词多,词越多,信息量越杂,简单的做平均的话,重要的词的信息会在平均的过程中极大的被消弱,从而分类效果差 词向量的基础上如何做优化? 映入一个新的向量,做attent

lzay的博客 6548

【NLP面试八股-NLP常见面试问题&详细回答】

序列到序列(Sequence-to-Sequence,Seq2Seq)模型是一种能将一个序列作为输入,并输出另一个序列的深度学习模型,通常由编码器(Encoder)和解码器(Decoder)两部分组成。注意力机制是一种让模型能够自动关注输入序列中不同部分的技术,其核心思想是在处理输入序列时,为每个元素分配一个权重,然后根据这些权重对元素进行加权求和。知识图谱是一种以图的形式表示知识的方法,由实体、关系和属性组成。,能够从大规模无标注数据中学习到丰富的语言表示,有效提高了语言理解、生成、翻译等任务的性能。

weixin_44064434的博客 447

常见的面试问题————NLP篇(持续更新)

1、Word2Vec的原理,使用的技巧? https://mp.weixin.qq.com/s/lerKdFXkhqQaaVl4BGgblA 2、fasttext 、word2vec、glove、elmo、bert、GPT、xlnet的区别 3、textcnn原理 4、Transformer的结构,multi-headAttention的作用 5、Transformer的位...

Matrix_cc的博客 6274

Cadence Allegro PCB文件对比实战:3分钟搞定两份设计差异(附颜色标注技巧)

本文详细介绍了如何高效使用Cadence Allegro的Design Compare功能进行PCB文件差异对比。通过实战工作流,可在3分钟内精准定位并理解两份设计在布局、布线、元件等方面的关键差异,并分享了自定义颜色标注技巧,帮助工程师快速聚焦重要修改,提升设计评审与团队协作效率。

weixin_29248653的博客 380

论文分享 - OctoMap八叉树建图原理

论文:OctoMap:An Efficient Probabilistic 3D Mapping Framework Based on Octrees。

一只废佐_的博客 2540

NLP面试宝典:38个最常见NLP问题答案一文get

新智元报道来源:greatlearning自然语言处理(Natural Language Processing,NLP)是指帮助机器理解和分析自然语言;它是利用机器学习算法从数据...

机器学习算法与Python学习 8059

手把手教你读懂蓝牙BQB射频测试报告:以PRBS9为例的实战分析

本文以蓝牙BQB射频测试中的PRBS9信号为例,提供了一份实战分析指南。文章深入解读了输出功率、调制特性、邻道泄漏等核心测试项,并分享了信号分析仪操作技巧、测试环境搭建要点及设备选型建议,旨在帮助工程师精准解读报告,高效定位问题,确保产品顺利通过认证。

weixin_29289821的博客 262

自然语言处理NLP面试问题

自然语言处理NLP面试问题前言一、二、三、四五、总结 前言 提前准备总归是好的嘛,每次入职都要准备跳槽来应对下一家更大的公司。 一、 手推逻辑回归 朴素贝叶斯 K邻近。 SVM(一般不会手推,说一下最大间隔、KKT,核) 决策树 集成方法。 二、 CNN RNN lstm结构图 梯度下降 学习率 各个激活函数:Sigmoid、Tanh、Relu、Leaky Relu、Elu attention self-attention transformer结构图 三、 去除噪声、数据获取 数据不平衡的处理:重采样

艰难困苦,玉汝于成。 4333

Xshell 连接 kali 虚拟机教程

启动ssh服务,启动后重新查看ssh服务状态,如下图active(running)正常。至此便可以直接使用Xshell登录kali系统了。至此虚拟机已经可以上网。-查看ssh服务状态。

qq_40726937的博客 2219

deepstream车道线检测自定义插件化,其中要注意pipeline的配置,如果插件位置配置不对,会报input format should be RGBA when using blur-obje

以上代码中,我们先从对象池中获取一个 DsUserMeta 对象,然后使用 get_lane_line_from_frame 函数获取车道线检测结果,并使用 add_lane_line_meta 函数将其添加到 DsUserMeta 对象中。注意,上述代码中的 get_lane_line_from_frame 函数和 add_lane_line_meta 函数需要你自己实现,用于从视频帧中提取车道线检测结果,并将其添加到 DsUserMeta 中。

pvmsmfchcs的博客 690

史上最细节的自然语言处理NLP/Transformer/BERT/Self Attention面试问题与答案

这是我花费了两个周末整理和筛选的,可能是史上最细节的自然语言处理NLP面试问题与(部分)答案啦,主要聚焦目前处于NLP舞台中央的Transformer/BERT/后BERT/Self Attention。 筛选的问题会深入到算法/模型更细节的地方,而尽量避免大而泛的问题。本文希望能帮助你对Transformer/BERT的理解再深一层,而这也要求你对上面的算法/模型有基本的认识,主要包括这两部分(后BERT的模型可以自行查找): 1、论文:论文是最一手的资源,没有各方解读的杂音 Transformer:

海晨威 2421

即插即用系列(代码实践) | CVPR 2025 WPFormer:小波与原型增强Transformer——表面缺陷检测SOTA,专治弱缺陷与杂乱背景

摘要:本文提出了一种基于小波变换和原型增强的Transformer模型(WPFormer),用于像素级表面缺陷检测。该模型针对工业场景中微弱缺陷难以识别和杂乱背景干扰严重的问题,创新性地将小波变换引入Transformer的注意力机制,通过频域信息分离噪声与边缘特征,同时利用原型向量引导查询,实现了更精准的缺陷定位。核心模块包括小波增强交叉注意力(WCA)和原型引导交叉注意力(PCA),适用于工业缺陷检测、伪装目标检测和医学图像分割等任务。代码已开源,支持即插即用集成到现有框架中。

分享顶会顶刊论文即插即用模块 302

为什么认真自学了NLP,面试还是回答不出问题

大家好,我是杨熹,曾任 Intel 成本分析师,日本 TRIAL 数据分析师,美国 Trilogy 数据科学培训师,参与销量预测,成本分析,推荐系统等多个项目。擅长机器学习,深度学习,自...

优快云人工智能头条 525

RT-Thread littefs控制GD32F4xx片内Flash

GD32F4xx RT-Thread下使用littefs 控制片内flash 调试记录

madao1234的博客 995

购物车智能检测系统:YOLO26 + PyQt5 毕设实现

YOLO26 + PyQt5 完成购物车商品检测系统:标注数据集(OpenImages 筛选 + 自制 500 张),训练 100 epoch 得到 mAP50 约 0.89,集成商品定价后输出总价。建议先用 OpenImages 预训练权重在自制数据上调优(冻住 backbone 前 50 epoch),等 loss 稳定后再解冻全量训练。

m0_64661770的博客 56

【面试】一些NLP的面试问题

点击上方,选择星标或置顶,每天给你送干货!阅读大概需要11分钟跟随小博主,每天进步一丢丢转载自:AI公园作者:Pratik Bhavsar编译:ronghuaiyang导读在NLP的面试...

zenRRan的博客 300

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

攻克 NLP 面试:20 个常见技术问题及答案详解

亲爱的小伙伴们😘,在求知的漫漫旅途中,若你对深度学习的奥秘、Java 与 Python 的奇妙世界,亦或是读研论文的撰写攻略有所探寻🧐,那不妨给我一个小小的关注吧🥰。我会精心筹备,在未来的日子里不定期地为大家呈上这些领域的知识宝藏与实用经验分享🎁。每一个点赞👍,都如同春日里的一缕阳光,给予我满满的动力与温暖,让我们在学习成长的道路上相伴而行,共同进步✨。期待你的关注与点赞哟🤗! 在自然语言处理(NLP)领域的求职面试中,扎实的技术功底是脱颖而出的关键。面试官往往会围绕核心技术、模型应用、项目实践等多方面展

qq_48131648的博客 1752

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

一些在NLP的面试中提问频率非常高的问题

作者:Pratik Bhavsar 编译:ronghuaiyang导读在NLP的面试中提问频率非常高的问题。练习NLP是一回事,破解面试是另一回事。对NLP人员的面试与一般的数...

fengdu78的博客 549

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

上一篇: 数据可视化分豆瓣9.2分台剧《想见你》
下一篇: 推荐一些能能提高生产力的 Python 库
Wang_AI
博客等级 码龄12年 996粉丝 162原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值