节前,我们星球组织了一场算法岗技术&面试讨论会,邀请了一些互联网大厂朋友、参加社招和校招面试的同学.
针对算法岗技术趋势、大模型落地项目经验分享、新手如何入门算法岗、该如何准备、面试常考点分享等热门话题进行了深入的讨论。
汇总合集:
问题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进行编码学习。