大模型面试笔试常见问题汇总(精心准备)

1 GPT和Bert的区别?

1.模型结构和训练方式

        BERT通过掩码语言模型(Masked Language Model, MLM)和下一句预测(Next Sentence Prediction, NSP)任务进行训练:

  • 掩码语言模型(MLM):在输入序列中,BERT随机掩盖一些词语,并要求模型预测这些被掩盖的词语。这使得BERT能够学习在给定上下文中预测缺失词语的能力。

  • 下一句预测(NSP):在某些自然语言处理任务中,理解句子之间的关系很重要。为了让模型学习句子级别的关系,BERT使用NSP任务,该任务要求模型判断两个句子是否是连续的,即一个句子是否是另一个句子的下一句。

        GPT基于解码器,其输入序列首先通过一个嵌入层转换成向量表示,然后输入到Transformer解码器中。每个解码器层由多个注意力头和前馈神经网络组成,用于逐步生成下一个词语的概率分布。

        BERT使用双向语言模型的训练策略。在输入序列中,BERT随机掩盖一些词语,并让模型预测这些被掩盖的词语。这种方式使BERT能够从上下文中学习词语的语义和语境信息。

        GPT使用自回归语言模型的训练方式。它通过让模型预测当前位置的词语来学习生成文本的能力。在预训练过程中,GPT逐步生成下一个词语,并优化参数以最大化下一个词语的概率。

2.上下文理解能力

        这两种基于Transformer架构的预训练模型在上下文理解能力和应用领域上有所不同。

        由于BERT采用双向模型,通过预测被掩盖的词语和判断句子之间的关系,它可以从上下文中获取更丰富的信息,并具有较强的上下文理解能力。因此,BERT在词语级别的任务中表现优异,如命名实体识别和问答等。

        GPT是一个单向模型,只能依赖已生成的上文来预测下一个词语。通过自回归语言模型训练,GPT逐步生成下一个词语,以学习生成连贯的文本。由于单向模型的限制,GPT在生成式任务中表现出色,如对话生成和文本生成。GPT能够生成具有上下文连贯性和逻辑性的文本,因为它在生成每个词语时都能考虑之前已生成的上文。

3.下游任务适用性

        由于BERT具有强大的上下文理解能力和双向模型的特点,它在各种下游任务中表现优秀,如文本分类、命名实体识别和语义关系判断等。

        GPT主要用于生成式任务,如对话生成、文本生成和机器翻译等。它能够

        生成自然流畅的文本,但在一些需要输入-输出对齐的任务中效果较弱。由于其单向特性,GPT在生成任务中表现突出,但在需要复杂上下文理解的任务上相对不如BERT。

2 NLP哪些场景不适用大模型?

1)数据稀缺的场景

        大型模型通常需要海量的训练数据以实现优异的性能。然而,在某些领域或任务中,获取足够的数据可能非常困难,这使得训练大型模型变得不切实际。

2)资源受限的环境

        大型模型通常需要大量的计算资源和存储空间。因此,在资源受限的环境中,例如嵌入式系统或移动设备上,使用大型模型可能不可行。

3)实时性要求高的场景

        在需要快速响应的场景中,如实时对话系统或自动翻译工具,大型模型由于计算复杂度高,可能无法满足实时性的要求。

3 ChatGPT的优缺点?

        优点:

  1. 自然语言交互:ChatGPT能够实现与用户的自然语言对话,使交流变得直观且方便。你可以通过对话形式提问、请求帮助或寻求建议。

  2. 广泛应用:ChatGPT适用于多种场景,包括自助客服、编程支持、写作辅助、语言翻译等。它能够根据不同的用例提供准确的回答和解决方案。

  3. 大量数据的学习:ChatGPT通过大量互联网文本进行训练,从多个领域的数据中学习知识和语言模式。这使它能为多种主题和话题提供有用的信息和答案。

        缺点:

  1. 可信性无法保证:ChatGPT的回复有时可能看似合理但实则不准确,模型目前还无法提供可信性验证的合理证据。

  2. 成本高昂:训练和部署ChatGPT基础大模型的成本很高,每次调用也可能费用不菲,并且可能存在延迟问题,这对工程能力提出了较高要求。

  3. 特定专业领域表现欠佳:由于大规模语言模型的训练数据是通用数据,缺乏专业领域的数据支持,因此在处理特定领域的专业术语翻译时表现不佳。

4 为什么现在的大模型大多是decoder-only的架构?

        Decoder-only架构是一种仅包含解码器部分而不包含编码器部分的模型结构。不同于编码器-解码器架构,这种结构直接将输入序列传递给解码器进行处理。省略编码器部分使得Decoder-only架构能够显著减少模型的参数量和计算资源需求。

        优点:

  1. 减少计算资源需求:由于省略了编码器部分,Decoder-only架构显著减少了模型的参数量和计算资源需求。在训练和推理过程中,这种架构可以更快地收敛,提高效率。

  2. LLM的主要架构选择:大型语言模型(LLM)通常采用Decoder-only架构,除了其在训练效率和工程实现上的优势外,还有理论上的原因。编码器的双向注意力机制可能存在低秩问题(容易退化为低秩状态),这会削弱模型的表达能力,而casusal attention是下三角矩阵满秩,建模能力更强,同时causal attention有隐式位置编码的功能 。对于生成任务而言,引入双向注意力并无实质性好处。而编码器-解码器架构在某些场景下表现更好,可能仅是因为其参数量增加了一倍。

  3. Prompt直接作用于decoder参数,指令和微调效果更强

  4. 同时causal attention有隐式位置编码的功能,双向attention部分token兑换不改变表示,对时序的区分能力较弱。


补充知识点:

        矩阵的低秩问题指的是矩阵的秩(rank)相对较低,导致矩阵的表示空间的维度远小于矩阵本身的维度,从而无法完整地捕捉矩阵的所有信息。

        在深度学习领域,特别是在自然语言处理(NLP)中,矩阵的低秩问题通常出现在注意力机制中,尤其是在使用自注意力机制(self-attention)的Transformer模型中。

        在自注意力机制中,给定一个输入序列,模型计算每个位置之间的相互关联性,产生一个注意力矩阵(attention matrix),用于指导信息的传递和整合。然而,由于输入序列的长度可能会很大,导致注意力矩阵的维度也很大,这就会带来两个问题:

  1. 计算复杂度高:注意力矩阵的计算复杂度与序列长度的平方成正比,因此当序列长度很大时,计算量会非常庞大。

  2. 参数数量庞大:由于注意力矩阵的维度较大,其中的参数数量也会很多,这会增加模型的参数量,增加训练和推理的时间和空间成本。

        为了解决这些问题,研究人员提出了一些方法,其中包括使用低秩近似技术。低秩近似技术通过在注意力矩阵的计算过程中引入一些约束或近似操作,使得最终的注意力矩阵具有较低的秩,从而降低了计算和存储的复杂度,同时保持了模型的性能。

5 LLaMA的主要结构?

        前置层归一化(Pre-normalization)并使用RMSNorm归一化函数(Normalizing Function)、激活函数更换为SwiGLU,并使用了旋转位置嵌入(RoP),整体Transformer架构与GPT-2类似。

  • 前置层归一化(Pre-normalization)并使用RMSNorm归一化函数(Normalizing Function)

    • 作用:前置层归一化通过在每一层的输入进行归一化来稳定和加速训练过程。使用RMSNorm作为归一化函数,可以有效减少训练过程中梯度爆炸或消失的问题,从而提升模型的收敛速度和稳定性。

  • 激活函数更换为SwiGLU

    • 作用:将激活函数替换为SwiGLU(Swish-Gated Linear Units)可以增强模型的非线性表示能力。SwiGLU在实验中表现出优于传统激活函数(如ReLU)的性能,尤其在复杂任务中可以提高模型的准确性和效率。

  • 使用旋转位置嵌入(RoPE)

    • 作用:旋转位置嵌入(RoPE)是用于捕捉输入序列中位置信息的一种方法。与传统的位置编码不同,RoPE通过旋转向量的方式编码位置信息,使模型更好地理解序列中的相对位置关系,提升了模型在处理长序列时的表现。

        RoPE(Rotary Position Embedding,旋转位置编码)是一种用于编码序列位置信息的方法,特别适用于Transformer架构的模型。RoPE的核心原理是通过旋转操作将位置信息嵌入到向量空间中。

        具体来说,RoPE使用了复数单位向量的旋转操作来表示序列中每个位置的位置编码。其基本原理如下:

  1. 单位向量表示位置:首先,每个位置被映射到一个单位复数向量。这些单位向量具有相同的模长(即长度为1),但在复数平面上具有不同的方向。

  2. 旋转操作:然后,通过旋转操作将这些单位向量在复数平面上进行旋转。旋转的角度取决于位置的索引和维度。通常情况下,使用复数单位向量的正弦和余弦函数来确定旋转角度。

  3. 嵌入到模型中:得到旋转后的单位向量后,这些向量就被嵌入到模型的输入中,与其他输入特征一起被送入模型进行处理。

        RoPE的优势在于它能够有效地捕捉序列中位置的相对关系,而不受序列长度的影响。由于旋转操作是在单位向量上进行的,因此不需要额外的参数或计算成本,能够很好地融入到Transformer模型中。

        总的来说,RoPE通过旋转操作将位置信息嵌入到向量空间中,从而使得模型能够更好地理解序列中的位置关系,提高模型在长序列任务中的性能。

6 RMSNorm和LayerNorm的区别?

        对于layerNorm和RMSNorm,layerNorm包含缩放和平移两部分,RMSNorm去除了平移部分,只保留了缩放部分。有研究认为layerNorm取得成功的关键是缩放部分的缩放不变性,而不是平移部分的平移不变性。

        RMSNorm相比一般的layerNorm,减少了计算均值和平移系数的部分,训练速度更快,效果基本相当,甚至有所提升。

7 BPE、wordpiece、sentencepiece的区别?

        目前的机器学习模型都是基于数学模型,这意味着输入必须是数字形式。然而,在真实场景中,我们处理的输入通常包含许多非数字形式(有时即使原始输入是数字形式,也需要进行转换)。最典型的例子就是自然语言处理(NLP)中的文本输入。为了让文本能够被模型处理,我们需要将其转换成数字形式,这个转换过程就是通过映射关系(mapping)实现的。具体来说,我们将文本映射成对应的数字,即token,而这个映射过程的工具就是tokenizer。它可以将文本编码成数字(encode),也可以将数字解码回文本(decode)。

1. 词级别(Word Level)

        在词级别上,一个词对应一个ID。比如“武汉市/长江/大桥/欢迎/你”和“武汉/市长/江大桥/欢迎/你”,我们应该选择哪个方案呢?

2. 字符级别(Char Level)

        考虑到分词的复杂性,我们可以选择不分词,而是按“字”(char)来作为最小单元进行映射。这样词表就小多了:对于英文,仅需要26个字母;对于中文,根据2013年中华人民共和国教育部发布的《通用规范汉字表》定义,国家规定的通用规范汉字共有8105个,相对来说并不算多。然而,将文本切分得过细会导致序列长度增加,显著增加建模难度(需要通过字来学习词的语义),并且通常会影响模型效果。

3. 子词级别(Subword Level)

        子词级别(subword level)介于字符和单词之间。例如,'Transformers'可能会被分成'Transform'和'ers'两个部分。这个方案在词汇量和语义独立性之间取得了平衡,是一种相对较优的方案。

        在子词级别的tokenizer方法中,主要有以下几种:BPE、Bytes BPE、WordPiece、Unigram、SentencePiece。下面简要总结各个方法:

BPE(Byte Pair Encoding)

        BPE 通过统计词频来确定是否合并相邻的子词对(pair subwords)。具体步骤如下:

  1. 初始化时,将所有单词拆分为字符。

  2. 统计所有相邻字符对的频率,找到出现频率最高的一对。

  3. 合并这对字符,更新词表。

  4. 重复步骤2和3,直到达到预定的词汇表大小。

        这种方法通过逐步合并高频字符对,逐渐形成常用的子词,从而减少词汇表的大小。

Bytes BPE

        Bytes BPE 是BPE的变种,适用于处理任意语言的文本,包括非拉丁字符和特殊符号。它直接在字节级别进行操作,不依赖于特定的字符集,因此对多语言和非标准文本有更好的兼容性。

WordPiece

        WordPiece 方法最初由Google在训练其BERT模型时提出。它与BPE类似,通过统计子词对的频率进行合并,但其目标是最大化词汇表的语言覆盖率和分词质量。考虑的是合并后能否最大程度提高训练数据的整体似然值(通常基于 n-gram 模型得分)。这意味着 WordPiece 更侧重于选择能够优化语言模型性能的子词组合。BPE选择频数最高的相邻子词合并,而WordPiece选择使得语言模型概率最大的相邻子词加入词表。

具体步骤包括:

  1. 将单词拆分为字符。

  2. 统计词频,合并频率最高的子词对。

  3. 不断重复,直到达到预定的词汇表大小。

WordPiece 相较于BPE,更注重子词合并后的语义完整性和词汇覆盖率。

Unigram

Unigram 是一种基于概率模型的分词方法。它和 BPE 以及 WordPiece 从表面上看一个大的不同是,前两者都是初始化一个小词表,然后一个个增加到限定的词汇量,而 Unigram Language Model 却是先初始一个大词表,接着通过语言模型评估不断减少词表,直到限定词汇量。

其核心思想是:

  1. 初始化一个包含大量子词的词汇表。

  2. 根据子词的概率,计算给定文本的最优分词方案。

  3. 移除低概率的子词,不断精简词汇表。

  4. 迭代上述过程,直到达到预定的词汇表大小。

Unigram 方法通过概率模型,能够更灵活地处理词汇分布和词频变化,适用于多语言文本。

SentencePiece

        SentencePiece 是一个独立于语言和字符集的分词方法,适用于多语言处理。SentencePiece它是谷歌推出的子词开源工具包,它是把一个句子看作一个整体,再拆成片段,而没有保留天然的词语的概念。一般地,它把空格也当作一种特殊字符来处理,再用BPE或者Unigram算法来构造词汇表。SentencePiece除了集成了BPE、ULM子词算法之外,SentencePiece还能

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/868347.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

WordPress作品设计素材图片站资讯文章教程uigreat主题

主题介绍 uigreat主题是一款wordpress作品主题,发布设计作品素材文章,适合作品展示、设计等站点使用等,这款主题都非常合适。 1、自适应设计,PC、平板、手机等均可正常浏览; 2、图片缩略图可自定义高度,主…

阶段三:项目开发---民航功能模块实现:任务18:指挥航空公司架次与延误率占比

任务描述 内 容:在前面的“使用Spark清洗统计业务数据并保存到数据库”任务中,已经通过Spark Streaming 清洗程序,将Kafka中Topic为“task_Aftn”的报文数据,经过数据清洗后,保存到了MySQL数据库中;本节任…

工程仪器振弦采集仪的设计与研发进展

工程仪器振弦采集仪的设计与研发进展 工程仪器振弦采集仪是一种用于测量和记录物体振动参数的仪器。它能够实时采集物体的振动信号,并通过内部的传感器将振动信号转化为电信号,然后进行信号放大和处理,最终以数字形式显示或存储。 河北稳控科…

【源码下载】瓦房店农村电商大数据平台模板

技术详细实现可在评论区留言。 概述 用 echarts 和 jquery 实现的大屏模板效果。 部分代码展示,访问 dt.sim3d.cn 获取源码: (function($){$.extend({initMapChartPath : function(options){var defs {domId : ,mapName:china,mapCenter:["5…

iPhone也能做电子书?不要低估了iPhone处理PDF文件的能力

在数字化时代,我们越来越依赖智能手机来处理日常任务,其中iPhone以其出色的功能和用户友好的界面,成为了许多人的首选。 它不仅仅是通讯工具,更是一个强大的个人数字助理,能够实时扫描文件、制作PDF电子书&#xff0c…

【数据分析】Pandas_DataFrame读写详解:案例解析(第24天)

系列文章目录 一、 读写文件数据 二、df查询数据操作 三、df增加列操作 四、df删除行列操作 五、df数据去重操作 六、df数据修改操作 文章目录 系列文章目录前言一、 读写文件数据1.1 读写excel文件1.2 读写csv文件1.3 读写mysql数据库 二、df查询数据操作2.1 查询df子集基本方…

C# 中的Semaphore(信号量)详解与应用

文章目录 1. 信号量是什么?2. C# 中的 Semaphore 类3. 信号量的使用示例3.1 创建信号量3.2使用信号量同步线程 4. 总结 在并发编程中,同步是一种基本的需求。信号量(Semaphore)是一种常见的同步机制,它用于控制对共享资…

创建一个AXIS的初始IP核

参考自:https://www.cnblogs.com/milianke/p/17936380.html 以该博主文章为主,本文章做补充。 注意的点: edit ip 在导出axis的主机和从机的时候,记得选择edit ip,这样才能看到从机和主机的源代码,然后…

weblogic加入第三方数据库代理驱动jar包(Oracle为例)

做的是国企项目,项目本身业务并不复杂,最复杂的却是服务器部署问题,对方给提供的服务器分内网、外网交换网,应用在交换网,数据库在内网,应用不能直接访问内网数据库,只能通过安全隔离网闸访问内…

加密与安全_常见的分组密码 ECB、CBC、CFB、OFB模式介绍

文章目录 Pre概述why分组密码和流密码的基本概念什么是模式分组密码的常见模式1. ECB 模式(电子密码本模式)2. CBC 模式(密文分组链接模式)3. CFB 模式(密文反馈模式)4. OFB 模式(输出反馈模式&…

数据结构练习

1. 快速排序的非递归是通过栈来实现的,则前序与层次可以通过控制入栈的顺序来实现,因为递归是会一直开辟栈区空间,所以非递归的实现只需要一个栈的大小,而这个大小是小于递归所要的, 非递归与递归的时间复杂度是一样的…

举例说明深拷贝和浅拷贝

概述 简单描述一下对象的实例化过程。 创建对象的时候,或者说在实例化对象的时候 Person 类有年龄和学生类 int age 18; Student stu1 new Student(); 比如此时创建一个 age 对象,一个Student 对象,在虚拟机中,会在堆中开一…

新型水冷电阻设计-双面水冷电阻器

一款革命性的电阻器,专为低压和中压应用而设计,尤其是汽车、牵引或船舶系统中的恶劣条件。 EAK采用先进材料制造,采用专利设计,将电阻元件与水基冷却液封装并完全分离,为水冷应用提供模块化、轻量级、小容量、高功率解…

硅纪元视角 | Speak火了!3个月收入翻倍,OpenAI为何频频下注?

在数字化浪潮的推动下,人工智能(AI)正成为塑造未来的关键力量。硅纪元视角栏目紧跟AI科技的最新发展,捕捉行业动态;提供深入的新闻解读,助您洞悉技术背后的逻辑;汇聚行业专家的见解,…

外卖跑腿小程序APP软件成品系统和软甲开发APP小程序可进行封装打包

,用户友好界面设计 首先,外卖施限小程序APP应具备用户友好的界面设计。界面应简洁明了,让用户能够方便快捷地议,览和选择所需的菜品或服务。系统应提供详细的菜品描述、价格透明,并允许用户根据口味、偏好进行结进和排序。此外&am…

【基于R语言群体遗传学】-11-二倍体适应性进化

之前的博客,我们讨论了正选择在单倍体中的情况,可以先学习之前的博客: 群体遗传学_tRNA做科研的博客-CSDN博客 分子适应的经典观点是正选择。对于一个新的突变在进化意义上起作用,它必须在罕见时通过选择增加。之前例子中有选择系…

Centos7 安装老版本的chrome

查看自己linux是哪个centos版本 使用以下命令: cat /etc/centos-release我这里是centOS 7。然后在安装最新版的google-chrome时,总是会报错显示存在依赖环境的问题,使得无法安装成功chrome。 Package: google-chrome-stable (/google-chro…

Jenkins 常用的 Linux 指令

个人名片 🎓作者简介:java领域优质创作者 🌐个人主页:码农阿豪 📞工作室:新空间代码工作室(提供各种软件服务) 💌个人邮箱:[2435024119qq.com] &#x1f4f1…

Leetcode—93. 复原 IP 地址【中等】

2024每日刷题&#xff08;140&#xff09; Leetcode—93. 复原 IP 地址 实现代码 class Solution { public:vector<string> restoreIpAddresses(string s) {vector<string> ans;vector<string> path;function<void(int)>dfs [&](int start) {if…

项目/代码规范与Apifox介绍使用

目录 目录 一、项目规范&#xff1a; &#xff08;一&#xff09;项目结构&#xff1a; &#xff08;二&#xff09;传送的数据对象体 二、代码规范&#xff1a; &#xff08;一&#xff09;数据库命名规范&#xff1a; &#xff08;二&#xff09;注释规范&#xff1a; …