面了科大讯飞算法岗(大模型方向),题是一道比一道难啊。。。

节前,我们组织了一场算法岗技术&面试讨论会,邀请了一些互联网大厂同学、参加社招和校招面试的同学,针对大模型技术趋势、大模型落地项目经验分享、新手如何入门算法岗、该如何备战、面试常考点分享等热门话题进行了深入的讨论。

今天我整理 NLP 算法方向的面试题,分享给大家,希望对后续找工作的有所帮助。喜欢记得点赞、收藏、关注。更多技术交流&面经学习,可以加入我们。

写在前面

今年秋招面试了科大讯飞算法岗,感觉太难了。面试后感觉心情不是特别好,今天整理了一下分享给大家,有一些题有些忘记了,感谢一直以来社群大佬给的帮助。

问题1:文本生成的几大预训练任务?

  • GPT(Generative Pre-trained Transformer)系列:包括GPT、GPT-2、GPT-3等。这些模型使用Transformer架构进行预训练,在大规模语料上学习语言模型,能够生成连贯、具有语义的文本。

  • BART(Bidirectional and Auto-Regressive Transformer):BART是一种基于Transformer的生成式预训练模型。它通过自回归解码器实现文本生成,通过自编码器预训练目标来重构输入文本,能够生成流畅、连贯的文本。

  • T5(Text-to-Text Transfer Transformer):T5是一种通用的文本生成模型,使用了编码器-解码器结构。它将不同的自然语言处理(NLP)任务转换为文本到文本的转换任务,可用于机器翻译、摘要生成、问题回答等多个NLP任务。

  • XLNet:XLNet是一种基于Transformer架构的预训练模型,采用了自回归和自编码器的组合方式进行训练。它在语言建模任务上引入了全局的上下文信息,能够生成更加准确和连贯的文本。

  • UniLM(Unified Language Model):UniLM是一种多任务学习的预训练模型,将不同的自然语言处理任务转化为统一的生成式任务。它可以用于文本摘要、问答系统、机器翻译等多个任务。

问题2:多模态中常见的 SOTA 模型有哪些?

  • Vision Transformer (ViT): 将自注意力机制引入计算机视觉领域,通过将图像划分为图像补丁并应用Transformer模型,实现了在图像分类和目标检测等任务上的出色表现。

  • CLIP (Contrastive Language-Image Pretraining): 结合了图像和文本的对比学习,通过训练一个模型,使其能够根据图像和文本之间的相互关系进行推理,实现了图像与文本之间的联合理解和表示学习。

  • UNITER (UNiversal Image-Text Representation): 使用Transformer架构,联合学习图像和文本表示,提供了一个通用的图像和文本特征提取框架,适用于多个视觉和语言任务。

  • LXMERT (Cross-Modal Transformer): 结合了视觉和语言信息,通过Transformer模型对图像和文本进行交互学习,可以用于视觉问答、图像描述生成等任务。

问题3:介绍一下 stable diffusion 的原理。

stable diffusion是一种生成模型,其原理基于Langevin动力学和扩散过程。其核心思想是通过多次迭代,逐渐将噪声信号演化为目标分布所对应的样本。具体原理如下:

  • 初始化噪声信号为服从高斯分布的随机向量。

  • 通过一系列的演化步骤,将噪声信号迭代地转化为目标分布的样本。每一步中,将当前噪声信号与目标分布的梯度信息结合,通过Langevin动力学方程进行更新,使噪声信号逐渐接近目标分布。

  • 迭代的次数越多,噪声信号越接近目标分布,并最终生成目标分布的样本。

stable diffusion通过合理的选择演化步长和迭代次数,可以在生成样本的过程中平衡样本质量和生成速度。

问题4:instructGPT的原理,讲讲 rlhf 和 reward。

instructGPT是一种基于强化学习的文本生成模型,其核心原理涉及两个概念:RLHF(Reinforcement Learning from Human Feedback)和reward shaping(奖励塑造)。

  • RLHF:在训练instructGPT时,首先使用有人类生成的示例对模型进行预训练。然后,通过与人类评估者进行交互,收集评估结果,以创建一个用于强化学习的数据集。该数据集包含了人类评估者对生成结果的评分或反馈,用于指导模型的强化学习训练。

  • Reward shaping:为了更好地引导模型的训练,reward shaping用于调整模型的奖励信号。通过将人类评估者的反馈与模型生成的文本进行比较,可以计算出一个差异度量,用作奖励信号的一部分。这样,模型可以根据这个奖励信号进行训练,并进行强化学习的训练。模型根据当前的状态(对话历史)生成文本,并通过奖励信号来评估生成文本的质量。模型的目标是最大化预期累积奖励,从而生成更高质量的文本。

通过RLHF和reward shaping的结合,instructGPT能够通过人类评估者的反馈指导模型的生成过程,并逐步提升生成文本的质量和一致性。

问题5:讲讲T5和Bart的区别,讲讲bart的DAE任务。

T5(Text-to-Text Transfer Transformer)和Bart(Bidirectional and Auto-Regressive Transformer)是两个常见的预训练模型,它们之间的区别如下:

  • T5是一种基于Transformer的通用文本生成模型。T5的训练目标是将不同的自然语言处理(NLP)任务统一为文本到文本的转换任务。它采用了编码器-解码器结构,通过输入一个自然语言文本,输出另一个相关的自然语言文本,可以应用于机器翻译、摘要生成、问题回答等多个NLP任务。

  • Bart是建立在T5模型基础上的一个变种,它专注于生成式任务。Bart模型使用了自回归解码器,通过训练一个自编码器来重构原始文本,同时采用了标准的语言模型预训练目标,从而使得生成的文本更加流畅和连贯。Bart的主要应用领域包括文本生成、摘要生成、对话系统等。

在任务类型上,T5更加通用,适用于多种NLP任务的文本转换,而Bart则更加专注于生成式任务,并且在生成文本的质量和连贯性上有所优化。

关于Bart的DAE(Denoising AutoEncoder)任务,它是Bart模型的一种预训练目标。DAE任务要求模型从输入的有噪声的文本中恢复原始的无噪声文本。通过在训练过程中向输入文本中添加噪声,并要求模型重建无噪声的文本,Bart可以学习到更好的文本表示和重构能力,从而提高生成文本的质量和准确性。

问题6:讲讲Bart和Bert的区别。

Bart和Bert是两个不同的预训练模型,它们之间的区别如下:

  • Bart是一种基于Transformer的生成式预训练模型,主要应用于文本生成、摘要生成、对话系统等任务。Bart采用了自回归解码器,通过自编码器预训练目标来重构输入文本,从而生成流畅、连贯的文本。

  • Bert(Bidirectional Encoder Representations from Transformers)是一种双向的预训练模型,用于生成文本的上下文表示。与Bart不同,Bert采用了双向的Transformer编码器,通过将上下文的信息融合到表示中,提供了更全面的语境理解能力。Bert主要应用于词嵌入、文本分类、命名实体识别等任务。

总体上说,Bart侧重于生成式任务和文本生成,而Bert侧重于上下文表示和语境理解。它们在模型结构和应用场景上存在一定的差异。

问题7:对比学习负样本是否重要?负样本构造成本过高应该怎么解决?

对比学习中负样本的重要性取决于具体的任务和数据。负样本可以帮助模型学习到样本之间的区分度,从而提高模型的性能和泛化能力。然而,负样本的构造成本可能会较高,特别是在一些领域和任务中。

为了解决负样本构造成本过高的问题,可以考虑以下方法:

  • 降低负样本的构造成本:通过设计更高效的负样本生成算法或采样策略,减少负样本的构造成本。例如,可以利用数据增强技术生成合成的负样本,或者使用近似采样方法选择与正样本相似但不相同的负样本。

  • 确定关键负样本:根据具体任务的特点,可以重点关注一些关键的负样本,而不是对所有负样本进行详细的构造。这样可以降低构造成本,同时仍然能够有效训练模型。

  • 迁移学习和预训练模型:利用预训练模型或迁移学习的方法,可以在其他领域或任务中利用已有的负样本构造成果,减少重复的负样本构造工作。

问题8:介绍一下 lora 的原理和 ptuning 的原理。

Lora方法的核心是在大型语言模型上对指定参数增加额外的低秩矩阵,也就是在原始PLM旁边增加一个旁路,做一个降维再升维的操作。并在模型训练过程中,固定PLM的参数,只训练降维矩阵A与升维矩阵B。

ptuning方法的核心是使用可微的virtual token替换了原来的discrete tokens,且仅加入到输入层,并使用prompt encoder(BiLSTM+MLP)对virtual token进行编码学习。

技术交流群

前沿技术资讯、算法交流、求职内推、算法竞赛、面试交流(校招、社招、实习)等、与 10000+来自港科大、北大、清华、中科院、CMU、腾讯、百度等名校名企开发者互动交流~

我们建了算法岗技术与面试交流群, 想要进交流群、需要源码&资料、提升技术的同学,可以直接加微信号:mlc2060。加的时候备注一下:研究方向 +学校/公司+CSDN,即可。然后就可以拉你进群了。

方式①、微信搜索公众号:机器学习社区,后台回复:加群
方式②、添加微信号:mlc2060,备注:技术交流

用通俗易懂方式讲解系列

  • 34
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值