2025秋招LLM大模型多模态面试题:110道大模型面试常见问题及答案,助你拿下AI工程师岗位!

1、主流的开源大模型体系有哪些,并简要介绍它们的特点?

这个问题考察面试者对当前大模型生态的了解,包括如 Transformer-based 模型(如 BERT, GPT 系

列)、T5、Switch Transformer 等,以及它们的架构特点和应用场景。

2、解释 prefix LM 和 causal LM 的区别,并给出实际应用案例。

本题涉及语言模型的两种不同模式,前者可用于双向上下文预测,后者仅基于过去的信息进行预测,例如 GPT 系列就是典型的 causal LM。

3、如何定义和理解大模型中的"涌现能力",并举例说明?

考察面试者对大模型高级特性的理解,涌现能力通常指模型在处理复杂任务时展现出的、未被直接编程的高级技能,如解决谜题、代码生成等。

4、简述 GPT 和BERT 模型的主要区别,以及它们各自的优势。

GPT 是生成式的 decoder-only 模型,而 BERT 是预训练的 encoder 模型,用于理解和生成文本的

侧重点不同。

5、描述生成式语言模型的工作原理,并解释它如何不同于判别式模型。

包括如何通过学习数据分布来生成新样本,与判别式模型(如分类器)专注于区分不同类别的方法对比。

6、大模型训练中如何应对"灾难性遗忘"问题?

可以讨论连续学习中的策略,如经验回放、正则化方法、参数隔离等。

7、哪些因素可能导致大模型(LLMs)出现偏见,如何减轻这种偏见?

包括数据偏差、算法设计、训练过程中的强化等,减轻偏见的方法可能涉及数据多样化、去偏算法、公平性评估工具等。

8、解释并比较 AE(自动编码器)、VAE(变分自动编码器)、GAN

(生成对抗网络)的工作机制及其差异。

关注它们的结构、训练目标和应用场景,特别是 VAE 的似然下界最大化与 GAN 的对抗训练过程。

9、在微调大模型时,选择合适的数据集和微调策略至关重要,请阐述其考虑因素。

包括数据的相关性、规模、质量,以及微调时的学习率、迭代次数、早停策略等。

10、如何评价大模型的性能指标,除了准确率之外,还有哪些关键指标?

包括但不限于 perplexity、BLEU、ROUGE、F1 分数、AUC-ROC 曲线等,以及对计算效率、模型大小的考量。

这份完整版的大模型 AI 学习和面试资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】

11、目前主流的大模型体系有哪些?

目前主流的开源大模型体系包括以下几个:

GPT(Generative Pre-trained Transformer)系列:由 OpenAI 发布的一系列基于 Transformer 架构的语言模型,包括 GPT-1、GPT-2、GPT-3、ChatGPT 等。GPT 模型通过在大规模无标签文本上进行预训练,然后在特定任务上进行微调,具有很强的生成能力和语言理解能力。

BERT ( Bidirectional Encoder Representations from Transformers ) : 由 Google 发 布 的 一 种 基 于Transformer 架构的双向预训练语言模型。BERT 模型通过在大规模无标签文本上进行预训练,然后在下游任务上进行微调,具有强大的语言理解能力和表征能力。

XLNet:由 CMU 和 Google Brain 发布的一种基于 Transformer 架构的自回归预训练语言模型。XLNet 模型通过自回归方式预训练,可以建模全局依赖关系,具有更好的语言建模能力和生成能力。

RoBERTa:由 Meta 发布的一种基于 Transformer 架构的预训练语言模型。RoBERTa 模型在 BERT 的基础上进行了改进,通过更大规模的数据和更长的训练时间,取得了更好的性能。 T5(Text-to-Text Transfer Transformer):由 Google 发布的一种基于 Transformer 架构的多任务预训练语言模型。T5 模型通过在大规模数据集上进行预训练,可以用于多种自然语言处理任务,如文本分类、机器翻译、问答等。

这些大模型在自然语言处理领域取得了显著的成果,并被广泛应用于各种任务和应用中。

12、涌现能力是啥原因?

大模型的涌现能力主要是由以下几个原因:

数据量的增加:随着互联网的发展和数字化信息的爆炸增长,可用于训练模型的数据量大大增加。更多的数据可以提供更丰富、更广泛的语言知识和语境,使得模型能够更好地理解和生成文本。

计算能力的提升:随着计算硬件的发展,特别是图形处理器(GPU)和专用的 AI 芯片(比如:TPU)的出现,计算能力大幅提升。这使得训练更大、更复杂的模型成为可能,从而提高了模型的性能和涌现能力。

模型架构的改进:近年来,一些新的模型架构被引入,比如:Transformer,它在处理序列数据上表现出色。

这些新的架构通过引入自注意力机制等技术,使得模型能够更好地捕捉长距离的依赖关系和语言结构,提高了模型的表达能力和生成能力。

预训练和微调的方法:预训练和微调是一种有效的训练策略,可以在大规模无标签数据上进行预训练,然后在特定任务上进行微调。这种方法可以使模型从大规模数据中学习到更丰富的语言知识和语义理解,从而提高模型的涌现能力。

综上所述,大模型的涌现能力是由数据量的增加、计算能力的提升、模型架构的改进以及预训练和微调等因素共同作用的结果。这些因素的进步使得大模型能够更好地理解和生成文本,为自然语言处理领域带来了显著的进展。

13、解释Transformer 架构,并说明为什么它在大模型中如此重要。

答案:Transformer 是一种基于自注意力机制的深度学习模型,它通过并行处理输入序列的所有位置,显著提高了处理速度。它放弃了传统 RNN 或 LSTM 中的循环结构,使用多头自注意力和位置编码来捕获序列中的长距离依赖关系。在大模型中,Transformer 架构因其高效并行计算能力和强大的语言理解能力而成为首选。

14、模型的"预训练+微调"范式是什么意思?

答案:预训练+微调是指首先在一个大规模无标注数据集上对模型进行预训练,学习通用的语言表示。之后,根据特定任务对模型进行微调,即在有标签的数据集上进行额外训练,使其适应特定任务如问答、翻译或情感分析。这种方法有效利用了大数据,并显著提升了模型在各种任务上的性能。

15、如何在大模型训练中解决计算资源和成本问题?

答案:解决资源和成本问题的策略包括:使用更高效的硬件(如 TPU、高性能 GPU),分布式训练以分散计算负担,模型并行化技术,以及模型压缩和量化技术减少模型大小和运算需求。此外,使用数据增强和活跃学习策略减少所需数据量也是有效手段。

16、解释过拟合和欠拟合,以及在大模型训练中如何避免这些问题。

答案:过拟合指模型在训练数据上表现很好,但在新数据上泛化能力差;欠拟合则是模型在训练和测试数据上均表现不佳。避免过拟合可通过正则化、早停、dropout 等方法;避免欠拟合则需要增加模型复杂度、更多训练数据或改进模型架构。

17、如何评估大模型的生成质量?

答案:生成质量可以通过多种指标评估,包括 Perplexity(对于语言模型)、BLEU、ROUGE、METEOR等用于机器翻译或文本摘要的指标,以及更主观的评估如人类评价。最近,像 BERTScore 这样的基于语义相似度的指标也变得流行。

18、解释"注意力机制"及其在大模型中的应用。

答案:注意力机制允许模型在处理输入序列时动态地分配不同的权重给不同的部分,重点关注最相关的部分。在大模型中,多头自注意力是 Transformer 架构的核心,使得模型能够同时关注输入的不同方面,从而更有效地捕捉复杂的语言结构和语境信息。

19、如何在大模型中实现公平性和可解释性?

答案:实现公平性需要从数据收集开始,确保数据多样性且无偏见,使用去偏算法和公平性评估工具。可解释性可通过提供注意力权重可视化、特征重要性解释、以及使用更简单的解释模型(如 LIME、SHAP)来实现,帮助理解大模型决策过程。

20、微调大模型时,如何选择合适的数据集和调整策略?

答案:选择数据集时需考虑数据的相关性、质量和规模,确保数据能反映目标任务的需求。调整策略包括选择合适的初始学习率、使用学习率调度、正则化防止过拟合、以及早停等。此外,小样本微调和数据增强也是提升效果的策略。

21、如何处理大模型中的"长尾分布"问题?**

**

答案:长尾分布意味着数据集中某些类别或事件的频率远低于其他类别。解决此问题的方法包括重采样(过采样少数类或欠采样多数类)、使用加权损失函数给予不同样本不同权重,以及生成合成数据来平衡各类别。

22、在大模型开发中,如何监控和调试模型性能?

答案:监控模型性能通常涉及设置性能指标(如准确率、损失函数值)的实时跟踪,以及对模型训练过程中的资源使用(CPU/GPU 利用率、内存占用)进行监测。调试时,可以使用梯度检查、模型可视化工具(如 TensorBoard)来观察模型内部状态,以及进行错误分析来定位问题。

23、大模型如何选型?如何基于场景选用 ChatGLM、LlaMa、 Bert 类大模型?

选择使用哪种大模型,取决于具体的应用场景和需求。下面是一些指导原则。

ChatGLM 大模型:ChatGLM 是一个面向对话生成的大语言模型,适用于构建聊天机器人、智能客服等对话系统。如果你的应用场景需要模型能够生成连贯、流畅的对话回复,并且需要处理对话上下文、生成多轮对话等,ChatGLM 模型可能是一个较好的选择。ChatGLM 的架构为 Prefix Decoder,训练语料为中英双语,中英文比例为 1:1。所以适合于中文和英文文本生成的任务。

LlaMA 大模型:LLaMA(Large Language Model Meta AI)包含从 7B 到 65B 的参数范围,训练使用多达 14,000 亿 tokens 语料,具有常识推理、问答、数学推理、代码生成、语言理解等能力。

它由一个 Transformer 解码器组成。训练预料主要为以英语为主的拉丁语系,不包含中日韩文。所以适合于英文文本生成的任务。

Bert 大模型:Bert 是一种预训练的大语言模型,适用于各种自然语言处理任务,如文本分类、命名实体识别、语义相似度计算等。如果你的任务是通用的文本处理任务,而不依赖于特定领域的知识或语言风格,Bert 模型通常是一个不错的选择。Bert 由一个 Transformer 编码器组成,更适合于NLU 相关的任务。

在选择模型时,还需要考虑以下因素:

数据可用性:不同模型可能需要不同类型和规模的数据进行训练。确保你有足够的数据来训练和微调所选择的模型。计算资源:大模型通常需要更多的计算资源和存储空间。确保你有足够的硬件资源来支持所选择的模型的训练和推理。

预训练和微调:大模型通常需要进行预训练和微调才能适应特定任务和领域。了解所选择模型的预训练和微调过程,并确保你有相应的数据和时间来完成这些步骤。

最佳选择取决于具体的应用需求和限制条件。在做出决策之前,建议先进行一些实验和评估,以确定哪种模型最适合你的应用场景。

24、各个专业领域是否需要专用的大模型来服务?

A4:各个专业领域通常需要各自的专用大模型来服务,原因如下:

领域特定知识:不同领域拥有各自特定的知识和术语,需要针对该领域进行训练的大模型才能更好地理解和处理相关文本。比如:在医学领域,需要训练具有医学知识的大模型,以更准确地理解和生成医学文本。

语言风格和惯用语:各个领域通常有自己独特的语言风格和惯用语,这些特点对于模型的训练和生成都很重要。专门针对某个领域进行训练的大模型可以更好地掌握该领域的语言特点,生成更符合该领域要求的文本。

领域需求的差异:不同领域对于文本处理的需求也有所差异。比如:金融领域可能更关注数字和统计

数据的处理,而法律领域可能更关注法律条款和案例的解析。因此,为了更好地满足不同领域的需求,需要专门针对各个领域进行训练的大模型。

数据稀缺性:某些领域的数据可能相对较少,无法充分训练通用的大模型。针对特定领域进行训练的大模型可以更好地利用该领域的数据,提高模型的性能和效果。

尽管需要各自的大模型来服务不同领域,但也可以共享一些通用的模型和技术。比如:通用的大模型可以用于处理通用的文本任务,而领域特定的模型可以在通用模型的基础上进行微调和定制,以适应特定领域的需求。这样可以在满足领域需求的同时,减少模型的重复训练和资源消耗。

25、解释一下"大模型"(Large Language Models, LLMs)的概念,并列举几个知名的大模型。

答案:大模型,特别是大型语言模型,指的是那些参数量达到数十亿乃至数千亿级别的深度学习模型,主要应用于自然语言处理领域。它们通过海量数据预训练获得丰富的语言表达能力,能够完成生成文本、问答、翻译等多种任务。知名的大型语言模型包括 OpenAI 的 GPT 系列(如 GPT-3)、Google的T5、BERT 系列,以及阿里云的通义千问等。

26、在训练大模型时,如何有效地管理内存?

答案:管理大模型训练时的内存通常涉及以下几个策略:使用梯度累积来减少每一步更新所需的内存;实施模型并行和数据并行策略,将模型或数据分割到多个设备上;采用混合精度训练,利用半精度浮点数减少内存占用;以及使用交换空间或外存来扩展内存容量。

27、如何评估大模型的泛化能力?

答案: 泛化能力可以通过保留一部分未参与训练的数据作为验证集或测试集来评估。常用的指标包括准确率、召回率、F1 分数等。此外,可以设计特定的任务或场景测试,如领域迁移测试,考察模型在未见过的数据或新情境下的表现。

28、解释一下"Prompt Engineering"在大模型中的作用。

答案:Prompt Engineering 是指精心设计输入提示,引导大模型产生期望输出的过程。通过构造合适的提示,可以激发模型的潜力,让其执行特定任务,比如生成特定风格的文本、解决数学问题等,而无需额外的微调。好的 Prompt Engineering 能够显著提高模型的实用性和表现力。

29、大模型在处理多语言任务时面临哪些挑战?

答案:多语言任务面临的挑战包括语言差异性(如语法结构、表达习惯)、数据不平衡(某些语言数据较少)、跨语言噪声(翻译不准确或文化差异)、以及模型偏向(可能偏向于训练数据中占主导地位的语言)。解决这些挑战通常需要多语言预训练、特定的去偏技术以及跨语言数据增强。

30、解释"嵌入(Embedding)"在大模型中的作用。

答案:嵌入是将高维稀疏的输入(如词、句子或实体)转换为低维稠密向量的过程,这些向量能捕捉输入的语义信息。在大模型中,嵌入层是模型的第一层,它将每个输入词汇映射到一个向量空间,使得模型能够理解和处理语言的语义关系,这对于后续的计算和预测至关重要。

31、如何处理大模型中的"过热"(Hugging Face 术语)现象?

答案:"过热"通常指的是模型在生成文本时,生成的内容偏离了预期或变得不连贯。处理过热的一种方法是使用温度参数(Temperature)控制生成的随机性,降低温度可以使得生成更加保守和连贯。另外,可以采用 top-k 或 top-p 采样策略限制候选词汇的选择范围,以及设定生成的最大长度和强制关键词等策略。

32、解释"微调(Fine-tuning)"和"适应性微调(Adaptive Fine-tuning)",并说明两者区别。

答案:微调是将预训练好的大模型在特定任务的有标签数据集上进行额外训练,以适应特定任务需求的过程。而适应性微调是一种更为精细的微调策略,它可能仅针对模型的一部分(如最后一层或几层)、少量参数或特定模块进行调整,旨在保持模型的泛化能力的同时,快速适应新任务,减少过拟合风险和计算成本。

33、在大模型开发中,如何处理数据隐私和安全问题?

答案:处理数据隐私和安全问题的方法包括:使用去标识化技术去除敏感个人信息;实施差分隐私来添加随机噪声保护数据;利用联邦学习技术在不集中数据的情况下进行模型训练;以及采用加密计算技术保护数据传输和处理过程的安全。

34、问题:如何在大模型中实现持续学习(Continuous Learning)?

答案:实现持续学习的关键在于设计模型架构和训练策略,使模型能够在不断遇到新数据时,既保留已学到的知识又学习新技能。这可以通过增量学习(逐步添加新数据而不覆盖旧数据的训练)、经验回放(存储旧数据并定期重训)、或使用可生长网络结构(如添加新层或节点)等方式来实现。同时,正则化技术和遗忘机制也可以帮助减轻灾难性遗忘问题。

35、LangChain Agent 是如何工作和使用?

LangChain Agent 是 LangChain 框架中的一个组件,用于创建和管理对话代理。

最新发布的首个稳定版本 v0.1.0 支持了 LangGraph 组件库,把 Agent 创建为图的组件库,提供创建更加定制化的循环行为。

代理是根据当前对话状态确定下一步操作的组件。LangChain 提供了多种创建代理的方法,包括OpenAI Function Calling、Plan-and-execute Agent、Baby AGI 和 Auto GPT 等。这些方法提供了不同级别的自定义和功能,用于构建代理。

代理可以使用工具包执行特定的任务或操作。工具包是代理使用的一组工具,用于执行特定的功能,如语言处理、数据操作和外部 API 集成。工具可以是自定义构建的,也可以是预定义的,涵盖了广泛的功能。

通过结合代理和工具包,开发人员可以创建强大的对话代理,能够理解用户输入,生成适当的回复,并根据给定的上下文执行各种任务。

以下是使用 LangChain 创建代理的示例代码:

复制代码
from langchain.chat models import ChatOpenAI
from langchain.agents import tool
#加载语言模型
llm =ChatOpenAI(temperature=0)
# 定义工具
@tool
def get word length(word: str)-> int:
"""返回单词的长度。"""
return len(word )
#创建代理
agent ={
"input": lambda x:x["input"],
"agent scratchpad": lambda x:format_to_openai_functions(x['intermediate_steps'])
} | prompt | llm_with_tools | openAIFunctionsAgentOutputParser()
output = agent.invoke({
      "input":"单词 educa 中有多少个字母?"
      "intermediate steps":[]
})
#创建代理
print(output.return_values["output"])
36:基于大模型 + 向量数据库如何更好地实现企业级知识库平台?

主要进行以下 6 方面的优化工作:

 数据准备:准备大量高质量的训练数据,包括 Query、Context 和对应的高质量 Response。

确保数据的多样性和覆盖性,以提供更好的训练样本。

 模型架构:选择合适的模型架构,比如:Transformer 等,以便提取 Query 和 Context 中的重要信息,并生成相应的高质量 Response。确保大模型具有足够的容量和复杂性,以适应各种复杂的查询和上下文。

 微调和优化:使用预训练的模型作为起点,通过在特定任务上进行微调和优化,使模型能够更好地理解 Query 和 Context,并生成更准确、连贯的 Response。可以使用基于强化学习的方法,比如:强化对抗学习,来进一步提高模型的表现。

 评估和反馈:定期评估模型的性能,使用一些评估指标,比如:BLEU、ROUGE 等,来衡量生成的 Response 的质量。根据评估结果,及时调整和改进模型的训练策略和参数设置。同时,收集用户反馈和意见,以便进一步改进模型的性能。

 多模态信息利用:如果有可用的多模态信息,如图像、视频等,可以将其整合到大模型中,以提供更丰富、准确的 Response。利用多模态信息可以增强模型的理解能力和表达能力,从而生成更高质量的 Response。

37、请简述大模型性能评估的主要步骤。

解答: 大模型性能评估的主要步骤包括:首先,根据业务需求确定评估指标,如准确率、召回率、F1值等;其次,收集并准备测试数据集,确保数据集的代表性和多样性;然后,在测试数据集上运行模型,并记录评估指标的结果;最后,对评估结果进行分析和解释,识别模型的优点和不足。

38、在大模型性能评估中,你通常使用哪些评估指标?请举例说明。

解答: 在大模型性能评估中,常用的评估指标包括准确率、召回率、F1 值、AUC-ROC 曲线等。准确率衡量了模型正确分类的样本比例,召回率衡量了模型找出所有正例的能力,F1 值则是准确率和召回率的调和平均值。AUC-ROC 曲线则展示了模型在不同阈值下的性能表现。具体使用哪些指标取决于任务需求和业务场景。

39、请解释什么是过拟合和欠拟合,并说明如何在大模型评测中避免它们。

解答: 过拟合是指模型在训练数据上表现良好,但在测试数据上性能下降,即模型过于复杂以至于"记住"了训练数据的噪声。欠拟合则是指模型在训练数据上表现不佳,即模型过于简单无法捕捉数据的内在规律。为了避免过拟合,可以采用正则化、增加数据集多样性、使用 dropout 等方法;为了解决欠拟合,可以尝试增加模型复杂度、优化模型结构或使用更强大的特征表示。

40、在大模型评测中,你如何进行特征选择和模型调优?

解答:特征选择通常涉及分析特征的重要性、相关性以及冗余性,以确定哪些特征对模型性能有积极影响。可以使用如特征重要性评分、相关性矩阵或特征选择算法(如递归特征消除)等方法进行特征选择。模型调优则涉及调整模型的超参数,如学习率、批次大小、正则化系数等,以优化模型的性能。

可以使用网格搜索、随机搜索或贝叶斯优化等方法进行模型调优。

41、请谈谈你对A/B 测试的理解,并说明它在大模型评测中的应用。

解答:A/B 测试是一种比较两种或多种模型性能的方法,通过将用户随机分配到不同的模型版本中,收集并分析它们在实际环境中的表现数据。在大模型评测中,A/B 测试可以帮助我们确定哪个模型在实际应用中更具优势。通过 A/B 测试,我们可以评估模型在真实场景下的性能,包括用户满意度、业务指标提升等,从而做出更明智的决策。

42、请解释什么是大模型微调,以及它在自然语言处理任务中的作用。

解答:大模型微调是指利用预训练的大模型作为基础,针对特定任务的数据进行模型参数的调整,以优化模型在该任务上的性能。微调在自然语言处理任务中起着关键作用,它可以使模型更好地适应特定领域或场景的数据分布,提高模型的准确性和泛化能力。

43、为什么需要对大模型进行微调?

解答:预训练的大模型虽然具备强大的表示学习能力,但由于训练数据和任务目标的差异,直接应用于特定任务可能效果不佳。通过微调,模型可以针对特定任务的数据分布和目标进行优化,提高在该任务上的性能。此外,微调还可以加速

44、在进行大模型微调时,有哪些常见的策略或技巧?

解答:在进行大模型微调时,常见的策略或技巧包括选择合适的学习率、使用早停法避免过拟合、利用正则化技术提高模型泛化能力、采用数据增强技术扩充训练数据等。此外,还可以考虑使用集成学习、迁移学习等方法进一步提升微调效果。

关于 prompt tuning 和 prefix tuning 在微调上的区别,以下是它们的详细解释:

Prompt Tuning

Prompt Tuning 是一种新颖的微调方法,它利用了近年来自然语言处理领域的 prompting 技术。这种方法通过修改预训练模型的输入来适应特定任务,使模型在输入阶段就考虑到任务的特定需求。具体而言,Prompt Tuning 会在输入序列前添加一些可学习的"提示"标记,这些标记在训练过程中会被优化以更好地引导模型理解任务。这种方法的好处是可以保持预训练模型的大部分参数不变,从而减少过拟合的风险,并加速训练过程。

Prefix Tuning

Prefix Tuning 方法则是通过微调预训练模型的特定部分(称为"前缀")以适应特定任务。这种方法只微调前缀部分,而不是整个模型,从而减少了计算成本和过拟合的风险。Prefix Tuning 的性能通常优于传统的微调方法,但可能不及完整的模型微调。它的核心思想是将任务相关的信息编码在前缀中,并通过优化前缀参数来使模型适应特定任务。

两者的区别

  1. 调整对象不同:Prompt Tuning 主要调整的是模型的输入,通过在输入中添加提示来引导模型;而 Prefix Tuning 则是直接调整模型的部分参数,特别是前缀部分的参数。

  2. 调整范围不同:Prompt Tuning 的调整范围相对较小,主要关注输入层面的变化;而 Prefix Tuning 的调整范围则相对较大,涉及模型内部的部分参数。

  3. 对模型的影响不同:由于Prompt Tuning 主要修改输入,因此它对模型的影响较为间接;而Prefix Tuning 直接修改模型参数,对模型的影响更为直接和显著。

45、解释一下"Transformer"架构,并说明它为何在现代大模型中如此重要。

答案:Transformer 是一种基于自注意力(Self-Attention)机制的深度学习架构,由 Google 在2017 年提出。它摒弃了传统的循环神经网络(RNN)中的序列处理方式,转而使用注意力机制来并行处理输入序列的所有位置,极大地提升了处理速度和模型容量。Transformer 在处理长距离依赖关系方面表现出色,因此成为构建大规模语言模型(如 BERT、GPT 系列)的基础,对自然语言处理领域产生了革命性影响。

46、什么是"微调(Fine-tuning)",并说明它在大模型应用中的作用。

答案:微调是指在预训练好的大模型基础上,针对特定下游任务,使用特定领域的数据进行二次训练的过程。这允许模型在保持大量通用知识的同时,学习任务特定的细微差别。微调是大模型实际应用中非常关键的一环,它使模型能够适应从情感分析、问答系统到文本生成等各种特定任务。

47、解释一下"Prompting"技术,并举例说明。

答案:Prompting 是一种通过巧妙设计输入文本(即提示),引导大模型产生所需输出的技术。而不是直接对模型进行微调,Prompting 通过改变模型接收输入的方式,使其在特定任务上表现更好。

例如,在问答任务中,不是直接输入问题和答案让模型学习,而是构造如"问:... 答:..."这样的模板,促使模型在生成答案前理解问题的上下文。

48、如何评估大模型的性能?有哪些常见的评估指标?

答案:大模型的性能评估通常涉及多个维度,包括准确性、生成质量、响应速度和资源消耗等。常见的评估指标包括:准确率(Accuracy)、精确率(Precision)、召回率(Recall)、F1 分数、BLEU分数(用于评估文本生成的质量)、Perplexity(评估语言模型的不确定性)以及运行时的吞吐量和延迟。

49、解释"模型蒸馏(Model Distillation)"概念,并说明它在大模型场景中的应用。

答案:模型蒸馏是一种将复杂、大型模型(教师模型)的知识转移到小型、高效模型(学生模型)的技术。通过让小模型模仿大模型的行为,可以在保持一定性能水平的同时,减少模型的计算和存储成本。在大模型场景中,蒸馏常用于部署模型到资源受限的环境,或者优化模型的推理速度。

50、简述"模型膨胀(Model Bloating)"问题,并提供解决方案。

答案:模型膨胀指的是随着模型规模的增大,其性能提升逐渐减缓甚至出现边际效用递减的现象。解决模型膨胀的策略包括:引入正则化项限制模型复杂度;使用模型剪枝剔除不重要的权重;实施模型量化减少模型参数的位宽;以及开发更高效的模型架构和训练方法,如稀疏激活、动态路由等。

51、解释一下"自我监督学习(Self-Supervised Learning)",并说明它如何帮助训练大模型。

答案:自我监督学习是一种无监督学习方法,它通过设计预训练任务,使模型从未标注数据中学习有用的特征。在大模型训练中,自我监督学习尤为重要,因为它允许模型在没有昂贵的人工标注数据的情况下,通过预测掩码的单词、句子排序或上下文信息等任务,学习到丰富的语言结构和语义知识。

52、如何理解"多模态学习"在大模型中的应用?

答案:多模态学习是指模型同时处理和整合不同类型的数据(如文本、图像、声音等)的能力。在大模型中,多模态学习使得模型能够理解更复杂的场景,如图文匹配、视频内容理解等。通过联合训练或跨模态融合技术,模型可以学习到不同模态间的关系,提升综合理解和生成能力。

53、问题:简述"对抗性攻击"对大模型的影响,以及如何防御。

答案:对抗性攻击指通过给输入添加人眼难以察觉的微小扰动,导致模型错误预测。对大模型而言,这种攻击可能导致严重的安全和信任问题。防御策略包括:使用对抗性训练,即在训练过程中加入对抗样本以增强模型鲁棒性;输入净化,移除或减轻输入数据中的潜在扰动;以及检测和拒绝可疑输入,使用统计或机器学习方法识别异常输入。

54、解释"模型可解释性"的重要性,并说明在大模型中实现可解释性的挑战。

答案:模型可解释性指的是理解模型内部工作原理和决策过程的能力,对于建立信任、合规性检查以及错误诊断至关重要。然而,大模型由于其复杂性和规模,实现可解释性面临巨大挑战,包括高度非线性、高维度参数空间和黑箱特性。解决方法包括开发专门的解释技术,如注意力机制可视化、特征重要性分析以及局部可解释模型(如 LIME、SHAP)。

55、Transformer为何使用多头注意力机制?(为什么不使用一个头)

(1)Transformer使用多头注意力机制的主要原因

捕捉不同的特征: 每个头可以学习和捕捉输入序列中的不同特征或模式。

增强模型的表达能力: 多个头的并行计算可以丰富模型的表达能力,使其能够关注到输入的不同方面。

具体而言,多头注意力机制通过并行计算多个不同的注意力头,每个头有自己的一组权重矩阵,最后将这些头的

输出拼接起来,再进行线性变换,从而综合各个头的信息。

(2)并且作者发现这样效果好,如下图:

56、Transformer为什么Q和K使用不同的权重矩阵生成,为何不能使用同一个值进行自身的点乘?

Q(查询)和K(键)使用不同的权重矩阵生成,是为了在计算注意力得分时能够捕捉到输入序列中不同的特征。如果使用同一个值进行自身的点乘,模型无法有效区分查询向量和键向量的不同特征,导致注意力机制失去灵活性和区分能力。因此,通过不同的权重矩阵生成Q和K,可以增强模型的表达能力,确保注意力机制能够更好地识别和利用输入序列中的信息。

57、不用[CLS]的语义输出,有其他方式可以代替吗?

这个问题还是考察到了[CLS]的核心内涵,也就是如何获得整个sentence的语义表示。既然不让使用特意训好的[CLS],那我们就从每个token得到的embedding入手,把所有的token弄到一起。很直观的思路,就是对BERT的所有输出词向量(忽略[CLS]和[SEP])应用MaxPooling和AvgPooling,然后将得到的两个向量拼接起来,作为整个序列的表示。这样做的话可以同时保留序列中最显著的特征(通过MaxPooling)和整体的,均衡的特征(通过AvgPooling)。

当然这种做法我本人并没有尝试过,或许也不是一个很好做的研究/工作方向。

58、Bert中有哪些地方用到了mask?

预训练任务Masked Language Model (MLM)self-attention的计算下游任务的decoder

59、预训练阶段的mask有什么用?

虽然MLM现在被主流LLM抛弃了,但是也是一项很重要的任务。

主要的思想是,把输入的其中一部分词汇随机掩盖,模型的目标是预测这些掩盖词汇。这种训练方式使得每个位置的BERT都能学习到其上下文的信息。

60、attention中的mask有什么用?(BERT中)

这是nlp任务很重要的问题,就是不同样本的seq_len不一样。但是由于输出的seq_len需要一致,所以需要通过补padding来对齐。而在attention中我们不希望一个token去注意到这些padding的部分,因为实际场景下它们是不存在的,所以attention中的mask就是来处理掉这些无效的信息的。

具体来说就是在softmax前每个都设为-inf(或者实际的场景一个很小的数就可以),然后过完softmax

后"padding"部分的权重就会接近于零,query token就不会分配注意力权重了。

61、Bert是如何处理传统方法难以搞定的溢出词表词(oov)的语义学习的?

前面提到了,关键词是subword。

62、中文是如何处理溢出词表词(oov)的语义学习的?

subword处理中文都是字符级别的,所以就不会有词级别oov的问题了。

这份完整版的大模型 AI 学习和面试资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】

63、为什么说GPT是单向的Bert是双向的?

这也是decoder-only和encoder-only的区别。

decoder-only架构的生成模型在输出的时候只能看到当前位置前的tokens,也就是屏蔽了序列后面的位置,以适配NTP任务。

encoder-only架构的编码模型在输出的时候可以利用前后位置的tokens,以适配MLM任务。

具体的做法是self-attention加不加casual mask,也就是遮不遮住序列后面的内容。

64、Bert如何处理一词多义?

一词多义指的是在不同句子中token有不同的含义。

这正是self-attention解决的,搭配上MLM的任务,就可以让每个token会注意到上下文的其他token来得到自己的embedding。

65、Bert中的transformer和原生的transformer有什么区别?

其实很多,如果我们只讨论模型架构,也就是对比Attention is All You Need的encoder和BERT的话,最重点的区别在于位置编码。

原生的transformer是最经典的Sinusoidal绝对位置编码。而BERT中变成了可以学习的参数,也就是可学习位置编码。变得可学了的话,只要模型学习能力强,数据量够,确实不会差。可以类比卷积核从手工变成了模型自己学。

关于位置编码,如果你有时间的话,建议从下面的链接一直往后看,苏神的内容质量都很高。位置编码确实大有可为,最近RoPE+NTK的方法来外推context length也挺让人热血沸腾的。

66、Albert是通过什么方法压缩网络参数的?有什么问题?

两个技巧,其一是参跨层数共享,其二是对嵌入参数化进行因式分解,也就是"不再将 one-hot 向量直接映射到大小为 H 的隐藏空间,先映射到一个低维词嵌入空间 E,然后再映射到隐藏空间"。

问题也是"模型压缩"通用的问题,网络表达能力和容量下降。然后推理速度也不会有很直观的提升。

67、attention计算方式以及参数量,attention layer手写,必考。

如果你找的工作是比较基础的,比如说本科生找llm相关实习,那基本会让你手写多头。

68、ransformer模型的基本结构是什么?它是如何改变深度学习领域的?

基本结构:Transformer模型由编码器和解码器组成,每个编码器包含多层自注意力和前馈网络,解码器增加了编码器-解码器注意力。模型中广泛使用了残差连接和层归一化。影响:Transformer引入了自注意力机制,使得模型能够并行处理序列数据,显著提高了长距离依赖项的处理能力,改变了序列建模和自然语言处理的主流方法。

69、Transformer为何能够有效地处理长距离依赖问题?与传统RNN和LSTM相比有哪些优势?

长距离依赖处理:Transformer通过自注意力机制直接计算序列中任意两点间的依赖关系,避免了RNN和LSTM中的逐步传播,因此能有效捕捉长距离依赖。

优势:相比RNN和LSTM,Transformer具有并行化处理的优势,缩短了训练时间。同时,它避免了梯度消失问题,提高了对长序列的建模能力。

70、多头注意力的作用是什么?

作用:多头注意力允许模型同时从不同的表示子空间捕获信息,增强了模型对不同位置和语义信息的捕捉能力,提高了注意力机制的表达能力

1、能不能手写下attention?

71、Transformer模型如何平衡模型性能与计算资源的消耗?

平衡策略:Transformer通过调整模型大小(层数、维度等)、使用注意力机制的有效变体(如稀疏注意力)和优化技术(如混合精度训练)来平衡性能和计算资源消耗

72、Transformer模型的自注意力机制如何实现并行处理?

在自注意力机制中,模型对输入序列的每个元素计算其与序列中所有其他元素之间的注意力得分。这一计算是矩阵乘法形式的,可以高效地利用现代硬件(如GPU或TPU)进行并行计算。这种并行化大大提升了模型的训练和推理速度,特别是对于长序列数据。

73、在Transformer模型中,位置编码(Position Encoding)的作用是什么

作用:位置编码赋予模型对输入序列中元素位置的感知能力,因为自注意力机制本身不具备区分不同位置信息的能力。

74、Transformer模型如何处理变长输入序列?

处理方式:Transformer通过位置编码处理变长输入,配合掩码(masking)技术来处理不同长度的序列,确保模型在自注意力计算中只关注有效的输入部分。

75、Transformer模型的缩放点积注意力(Scaled Dot-Product Attention)是什么,其重要性在哪里?

定义:缩放点积注意力是一种计算注意力权重的方法,它通过对查询(Q)、键(K)的点积结果进行缩放,并应用softmax函数获取权重。

重要性:此机制允许模型在给定查询的情况下,动态地聚焦于关键的信息,缩放因子能避免在高维空间中点积结果过大,导致梯度消失问题。

76、Transformer模型在实践中如何优化以处理超长序列?

优化方法:针对超长序列,可以采用分块注意力、稀疏注意力、记忆压缩技术或者长序列专用的Transformer变体来降低计算复杂度

77、Transformer模型在自注意力层中如何解决多尺度表示问题?

解决方式:通过多头注意力设计,模型能够在不同的表示子空间中捕捉信息,从而同时考虑不同尺度的序列特征。

78、Transformer模型中的自注意力机制在计算效率和表示能力之间是如何权衡的?

自注意力机制通过并行处理序列数据提高计算效率,而多头注意力设计则提升了模型的表示能力。权衡通常通过调整头的数量和维度大小来实现。

79、Transformer模型的参数共享策略对模型性能有何影响?

影响:参数共享能减少模型参数量,避免过拟合,同时在多任务学习中可以提高模型的泛化能力。

80、Transformer encoder和decoder的区别?

区别:编码器负责处理输入序列,解码器则在此基础上增加了编码器-解码器注意力层,用于将编码器的输出与当前生成的序列相结合,进行序列生成。

81、Transformer模型中的前馈网络(Feed-Forward Networks)的作用是什么?

作用:前馈网络对自注意力层的输出进行非线性变换,增加了模型的表达能力,并可以捕捉局部特征。

82、Transformer网络很深,是怎么避免过拟合问题的?

Transformer网络采用以下机制以避免过拟合并促进深层结构的训练:

Dropout: 在自注意力、前馈层和嵌入层中随机抑制节点激活,提高泛化性。

权重衰减:引入L2正则化惩罚过大的权重参数,限制模型复杂度。标签平滑:在损失函数中对真实标签分布进行平滑,避免模型对某些类别的过度自信。残差连接:通过跳跃连接,实现特征直传,缓解梯度消失问题并加速收敛。

83、Transformer的两个mask机制是什么?

两种掩码:

序列掩码:用于屏蔽输入序列中的填充(padding)部分,确保这些位置不影响自注意力的计算。

查找掩码:用于解码器中防止未来信息泄露,确保在预测下一个词时只能使用之前的词。

84、Transformer为什么要用Layer norm?作用是什么

层归一化(Layernormalization)可以加速训练并提高稳定性,通过对输入的特征进行归一化,减少了不同初始化和批量数据分布差异带来的影响。

85、Encoder和decoder是如何进行交互的?

交互方式:在解码器中,编码器-解码器注意力层允许解码器的每个位置访问编码器的所有位置的输出。这种机制使解码器能够根据编码器的上下文信息生成输出序列。

86、Transformer计算attention的时候为何选择点乘而不是加法?两者计算复杂度和效果上有什么区别?

 捕捉相关性:点乘能够更好地捕捉查询(Q)和键(K)之间的相关性。点乘可以视为一种元素级别的加权求和,权重由Q和K的对应元素共同决定,这使得模型能够更精确地衡量它们之间的匹配程度。

 计算效率:虽然点乘和加法在单个元素操作的计算复杂度上相似,但在矩阵运算中,点乘可以利用现代硬件(如GPU)上的并行计算优势,实现高效的大规模运算。

 可扩展性:点乘天然支持扩展到多头注意力(Multi-Head Attention),这是Transformer架构中的一个重要特性。在多头注意力中,模型并行地执行多个点乘操作,然后将结果合并,以捕获不同子空间的信息。

 梯度传播:点乘在反向传播中具有更好的梯度传播特性。在深度学习中,梯度的传播对于模型的训练至关重要,点乘操作的梯度计算相对简单,有助于优化算法的稳定性和收敛速度。

 泛化能力:点乘作为一种通用的操作,可以更容易地泛化到不同的任务和模型架构中。加法虽然简单,但在捕捉复杂模式和关系方面可能不如点乘有效。

87、在计算attention score的时候如何对padding做mask操作?

在计算注意力得分时,对padding进行mask操作目的是为了避免模型将注意力集中在填充位置上(因为这些位置不包含实际的有用信息)。具体做法是在计算注意力得分之前,对填充位置对应的得分加上一个非常大的负数(如负无穷),通过softmax后,这些位置的权重接近于零,从而不影响实际有效的序列位置。

注:什么是padding?

在处理自然语言时,输入的序列长度可能不同。为了让所有序列能够在一个批次中进行计算,我们会在较短的序列后面填充特殊的标记,通常是零(0)。这些填充标记就是padding。

注:为什么要对padding做mask操作?

如果不对padding做mask操作,模型可能会误把这些填充位置当作有效信息进行处理,从而影响注意力得分的计算,最终影响模型的性能。因此,需要在注意力计算时忽略这些填充位置。

88、为什么在进行多头注意力的时候需要对每个head进行降维?(可以参考上面一个问题)

回答:在进行多头注意力时,需要对**每个头进行降维,**以保证每个头的计算复杂度不会过高,同时能够并行计算。

将输入的维度分成多个头,可以让每个头处理更小维度的数据,从而降低单头的计算复杂度,减小参数量,提高计算效率。并且通过多个头的组合,增强模型的表达能力和鲁棒性。

详细讲解:

  1. 降低计算复杂度

假设输入的维度是d,每个头的输出维度也是d。如果不进行降维,每个头的输出维度仍然是d,那么在拼接多个头的输出时,最终的维度将是d * num_heads(num_heads表示头的数量)。这样维度会变得非常大,计算复杂度和内存需求都大大增加。通过对每个头进行降维,每个头的输出维度变为d / num_heads。这样,即使拼接多个头的输出,最终的维度也仍然是d,保持了与输入相同的维度,避免了计算复杂度和内存需求的急剧增长。

  1. 保持模型的参数数量可控

模型的参数数量直接影响训练的难度和时间。如果每个头都不进行降维,那么模型的参数数量会大大增加,训练起来会非常困难。而对每个头进行降维,可以控制每个头的参数数量,从而使得整个模型的参数数量保持在一个可控范围内。

  1. 维持信息的多样性

通过对每个头进行降维,可以确保每个头在一个更小的子空间中进行注意力计算。这意味着每个头可以在不同的子空间中学习到不同的特征,增加了模型的多样性和鲁棒性。最终的拼接结果融合了不同子空间的信息,使得模型能够更全面地理解输入数据。

89、大概讲一下Transformer的Encoder模块?

Transformer的Encoder模块由N层堆叠组成,每层包括两个子层:

  1. 多头自注意力机制(Multi-Head Self-Attention)

  2. 前馈神经网络(Feed-Forward Neural Network)

每个子层后都接一个残差连接(Residual Connection)和层归一化(Layer Normalization)。输入首先通过

嵌入层(Embedding),然后通过位置编码(Positional Encoding)加上位置信息,再依次经过各层编码器,

最终输出编码后的序列表示。

90、为何在获取输入词向量之后需要对矩阵乘以embedding size的开方?意义是什么?

在获取输入词向量之后,需要对矩阵乘以embedding size的平方根,是为了保持向量的尺度稳定。Embedding的值通常是随机初始化的,乘以开方后的结果能保证在后续的点乘计算中,值的尺度不会过大或过小,从而有利于模型的训练稳定性。

91、简单介绍一下Transformer的位置编码?有什么意义和优缺点?

Transformer的位置编码(Positional Encoding)是为了给模型提供序列中各个位置的信息,因为Transformer本身不具备顺序信息。位置编码通过正弦和余弦函数生成,对不同位置生成不同的编码。

优点是能够显式地提供位置信息,易于计算 ,缺点是位置编码固定,不能根据上下文动态调整。

92、你还了解哪些关于位置编码的技术,各自的优缺点是什么?

除了位置编码,其他位置表示技术还有:

 可学习的位置编码(Learnable Positional Encoding):位置编码作为可学习的参数,优点是灵活,能够根据数据调整,缺点是可能需要更多的训练数据。

 相对位置编码(Relative Positional Encoding):考虑到相对位置关系,优点是能够捕捉相对位置信息,适用于长序列,缺点是实现复杂度高。

 混合位置编码(Hybrid Positional Encoding):结合绝对和相对位置编码,优点是综合两者优点,缺点是实现复杂度增加。

93、简单讲一下Transformer中的残差结构以及意义。

Transformer中的残差结构(Residual Connection)是在每个子层输出后,加入输入的原始信息,通过直接相加实现。这有助于缓解深层网络中的梯度消失问题,保证信息流的顺畅,促进训练过程的稳定和快速收敛。

94、为什么transformer块使用LayerNorm而不是BatchNorm?LayerNorm 在Transformer的位置是哪里?

Transformer块使用LayerNorm而不是BatchNorm,因为**LayerNorm在序列模型中表现更好。**BatchNorm在处理变长序列和小批量数据时不稳定,而LayerNorm对每个样本独立进行归一化,更适合变长序列数据。LayerNorm通常位于每个子层的残差连接之后。

95、简答讲一下BatchNorm技术,以及它的优缺点。

BatchNorm(批量归一化)是对每个小批量数据进行归一化,减去均值除以标准差,再引入可学习的缩放和平移参数。

优点是加快训练速度,缓解梯度消失和爆炸问题。缺点是在小批量或变长序列中效果不稳定,不适合序列模型。

96、简单描述一下Transformer中的前馈神经网络?使用了什么激活函数?相关优缺点?

Transformer中的前馈神经网络FeedForward由两个线性变换和一个激活函数组成,激活函数通常是ReLU。如下公式:max相当于Relu优点是增加模型的非线性表达能力,结构简单高效。缺点是ReLU可能导致部分神经元输出恒为零(死神经元),需要慎重选择超参数。

97、Encoder端和Decoder端是如何进行交互的?(在这里可以问一下关于seq2seq的attention知识)

Encoder端和Decoder端通过注意力机制进行交互。Encoder将输入序列编码成隐藏表示,Decoder通过多头注意力机制,将编码器的输出作为键和值,解码器的输出作为查询,计算注意力得分,从编码器的输出中提取相关信息,生成新的输出序列。

下面用一个更通俗的类比来解释Transformer中编码器(Encoder)和解码器(Decoder)之间的交互。想象一下,编码器和解码器是两个团队,它们要共同完成一个任务:把一种语言翻译成另一种语言。

  1. 编码器团队(Encoder):

 编码器团队的任务是仔细阅读原始语言(比如英语)的句子,并理解它的意思。

 每个团队成员(编码器层)都会贡献自己对句子的理解,最终形成一个整体的理解(隐藏状态)。

  1. 解码器团队(Decoder):

 解码器团队的任务是根据编码器团队的理解,逐字逐句地把句子翻译成目标语言(比如法语)。

  1. 交互的桥梁:注意力机制:

 当解码器团队开始工作时,他们需要不断地与编码器团队沟通,以确保翻译的准确性。

 他们通过一个特殊的"对讲机"(注意力机制)来沟通。解码器团队的每个成员(解码器层)都会问编码器团队:"在这个翻译步骤中,原文中的哪个部分最重要?"

  1. 编码器团队的回答:

 编码器团队会根据解码器团队的问题,给出一个"重要性评分"(注意力权重),告诉解码器团队在当前翻译步骤中,原文的哪些部分是重要的。

  1. 解码器团队的翻译:

 根据编码器团队给出的重要性评分,解码器团队会综合考虑这些信息,并决定下一个翻译出的词是什么。这个过程会一直重复,直到整个句子被翻译完成。

  1. 防止作弊的规则(掩码):

 在翻译过程中,有一个规则:解码器团队不能提前看到未来的词(不能作弊)。所以他们会用一个"遮盖布"(掩码)来确保在翻译当前词时,只能看到已经翻译出来的部分。

通过这种方式,Transformer模型中的编码器和解码器可以协同工作,完成复杂的任务,比如语言翻译、文本摘要等。编码器团队深入理解输入信息,而解码器团队则利用这些理解,一步步构建出高质量的输出。

(Seq2seq(序列到序列)模型中,注意力机制用来解决长序列依赖问题。传统的seq2seq模型在解码时只能使用Encoder的最后一个隐状态,这对于长序列可能效果不好。注意力机制通过计算Decoder的每个时间步与Encoder输出的所有时间步之间的相关性,动态地选择信息,提升了翻译效果。)

98、Decoder阶段的多头自注意力和encoder的多头自注意力有什么区别?(为什么需要decoder自注意力需要进行 sequence mask)

Decoder阶段 的多头自注意力需要进行sequence mask,以防止模型在训练时看到未来的单词。Encoder的多头自注意力没有这种限制。Sequence mask确保模型只关注已生成的部分,避免信息泄露,提高训练的效果。

99、Transformer的并行化提现在哪个地方?Decoder端可以做并行化吗?

Transformer的并行化体现在注意力机制和前馈神经网络上,因为每个时间步的计算彼此独立。

**Decoder端不能完全并行化,**因为当前步的输出依赖于前一步的结果,但自注意力机制部分可以并行化。

100、简单描述一下wordpiece model 和 byte pair encoding,有实际应用过吗?

WordPiece Model和Byte Pair Encoding(BPE)都是子词分割技术。

WordPiece将词分割成子词 ,提高模型的词汇覆盖率。BPE是合并最频繁的字对。

  1. WordPiece Model:

想象一下,你有一个工具箱,里面有各种各样的拼图碎片,每个碎片代表一个语素或词的一部分。WordPiece模型就像这个工具箱,它把单词分解成更小的、有意义的片段。

这样做的好处是,即使工具箱里没有某个完整的单词,你也可以通过拼凑这些小片段来表达这个单词的意思。在机器学习中,这可以帮助模型理解和生成新的、未见过的词汇。

  1. Byte Pair Encoding(BPE):

BPE更像是一种编码技巧,它观察文本数据,找出最常见的字节对,然后把这些字节对合并成一个单一的单元。

比如,"power"和"ful"这样的词,如果它们经常一起出现,BPE就会把它们看作一个单元。这样做可以减少词汇表的大小,同时保持词汇的多样性。

实际应用:

这两种技术在自然语言处理(NLP)中非常实用,特别是在机器翻译、文本生成等任务中。它们帮助模型处理那些在训练数据中很少见或完全没见过的词汇。

101、Transformer训练的时候学习率是如何设定的?Dropout是如何设定的,位置在哪里?Dropout 在测试的需要有什么需要注意的吗?

(1)预热策略: Transformer通常使用预热(warm-up)策略和学习率衰减相结合的方法。在训练的前一部分

迭代中,学习率逐渐增加,然后按照预定的方式逐渐减少。

其中,d model 是模型的维度,step_num 是当前训练步数,warmup_steps 是预热步数。

(2)Transformer中使用Dropout层来防止过拟合,具体位置包括:自注意力机制中的注意力权重计算后。前馈神经网络的输出。残差连接后的输出。设定:通常Dropout概率设定为0.1,但可以根据具体任务和数据进行调整。

(3)测试时:**不使用Dropout:**在测试或推理阶段,Dropout不再使用,即不会随机丢弃节点,而是使用所有节点参与计算。

102、引申一个关于bert问题,bert的mask为何不学习transformer在attention处进行屏蔽score的技巧?

BERT的掩码设计目的是为了在预训练过程中让模型学习丰富的上下文表示,而不是为了防止信息泄漏,这与Transformer中attention mask的用途不同。

BERT中的mask:

  1. 预训练任务:BERT使用掩码语言模型(Masked Language Model, MLM)进行预训练,即在输入序列中随机选择一些单词进行掩码,然后让模型预测这些掩码位置的单词。

  2. 原因:独立于位置的预测:BERT的掩码操作是对输入的特定位置进行掩码,目的是让模型能够学习到每个单词的上下文表示,而不需要关注具体位置。

  3. 不同任务:BERT的设计目标是让模型学习到每个单词的上下文表示,而Transformer的attention掩码(mask)主要用于在序列生成中防止信息泄漏,如自回归模型中防止预测未来的单词。

Transformer的注意力掩码(attention mask):

  1. 屏蔽未来信息:在自回归模型中,如GPT,使用注意力掩码来屏蔽未来的单词,以防止信息泄漏,从而确保模型只能利用当前和过去的信息进行预测。

  2. 序列长度不同:在处理不同长度的序列时,使用掩码来标识实际存在的部分和填充部分(padding),从而保证模型的注意力计算只在有效部分进行。

103、请描述一下你认为的把 self-attention 复杂度从 O(n2) 降低到 O(n)有效方案.

局部注意力机制: 在全局self-attention中,每个位置的词语都与整个序列中的所有其他位置计算注意力权重。但实际上,相对较远的词语之间的关联性可能并不是那么重要。因此,我们可以采用一种局部注意力机制,只计算每个位置与其周围一定范围内的词语之间的注意力。

窗口化注意力: 在局部注意力机制中,可以使用一个固定大小的窗口来定义每个位置与其相邻词语的范围。例如,可以选择一个固定大小的窗口,如5或7,然后只计算每个位置与其相邻的5个或7个词语之间的注意力权重。

可学习的位置偏移: 为了使模型能够学习到适合不同任务和数据的局部注意力模式,可以引入可学习的位置偏移参数。这些参数可以学习到不同位置之间的相对关系,从而指导模型在计算注意力权重时选择正确的窗口范围。

多尺度注意力: 除了固定大小的窗口,还可以引入多尺度的注意力机制。例如,在每个位置处可以同时计算多个不同大小的窗口范围的注意力,然后将它们进行加权平均,以综合考虑不同范围内的词语之间的关联性。

104、如果使用 Transformer 对不同类别的数据进行训练,数据集有些类别的数据量很大(例如有 10 亿条),而大多数类别的数据量特别小(例如可能只有 100 条),此时如何训练出一个相对理想的 Transformer 模型来对处理不同类别的任务?

类别加权损失函数: 使用加权损失函数来平衡不同类别之间的数据量差异。对于数据量较小的类别,可以赋予更高的权重,以便模型更加关注这些类别的训练样本。这样可以确保模型在训练过程中更加平衡地学习到每个类别的特征。

数据增强: 对于数据量较小的类别,可以采用数据增强的方法来扩充训练数据集。数据增强技术可以通过对原始数据进行随机变换、旋转、剪裁等操作来生成新的训练样本,从而增加数据集的大小和多样性。

迁移学习: 利用在数据量较大的类别上预训练的模型参数作为初始化参数,然后在数据量较小的类别上进行微调。这种迁移学习的方法可以利用大规模数据集中学习到的通用特征来加速和提高在小规模数据集上的性能。

数据重采样: 对于数据量较大的类别,可以采用数据重采样的方法来减少其样本数量,以使不同类别之间的数据量更加平衡。常见的重采样方法包括随机欠采样、SMOTE(Synthetic Minority Over- sampling Technique)等。

类别分层采样: 在训练过程中,可以采用类别分层采样的方法来确保每个批次中包含各个类别的样本,从而防止某些类别的样本被忽略。这样可以确保模型在每个批次中都能够观察到不同类别的样本,有助于模型更全面地学习到每个类别的特征。**

**

105、如何使用使用多种类小样本对 Transformer 训练而取得很好的分类效果,请详述背后的架构设计和数学机制

类别加权损失函数: 设计一种损失函数,对不同类别的样本赋予不同的权重,使得模型在训练时更关注那些类别数据量较小的样本。常见的做法是使用加权交叉熵损失函数,其中每个类别的权重与其样本数量的倒数成正比。这样可以确保模型更加关注样本量少的类别,从而提高对小类别数据的分类性能。

过采样和欠采样: 通过过采样来增加小类别的样本量,或者通过欠采样来减少大类别的样本量,从而使得不同类别的样本数量更加平衡。这样可以帮助模型更好地学习到所有类别之间的特征和区分性信息。

类别嵌入: 引入类别嵌入向量作为Transformer模型的输入,以将类别信息融入到模型中。类别嵌入向量可以通过预训练的方式得到,或者通过模型训练过程中学习到。这样可以帮助模型更好地理解和区分不同类别之间的语义差异。

类别自适应注意力: 在Transformer模型的注意力机制中引入类别自适应注意力,使得模型在不同类别之间可以动态调整注意力权重,更好地关注样本量较小的类别。这样可以提高模型对小类别数据的分类性能。

迁移学习: 利用已经在大数据集上预训练好的Transformer模型进行迁移学习,然后在小样本数据上微调。这样可以借助大数据集上学到的特征和知识,帮助模型更快地收敛并且更好地泛化到小样本数据。

106、在给 Transformer 输入 Embeddings 的时候是否可以使用多方来源的词嵌入训练模型?请阐述背后的数学原理及工程上的具体实现机制

是的,Transformer模型在输入Embeddings时可以使用来自多方来源的词嵌入进行训练。这种方法被称为多嵌入(multi-embedding)策略,它可以结合来自不同数据集、不同语料库或不同预训练模型的词嵌入,以提高模型在不同任务或不同领域的性能。下面是一些数学原理和工程上的具体实现机制:

数学原理: 在Transformer模型中,Embeddings层的目的是将输入的离散词汇映射到连续的词嵌入空间中,以便模型能够理解输入文本的语义和语法信息。使用多方来源的词嵌入进行训练时,实际上是在为模型提供更丰富的语义信息,从而增强模型的泛化能力和表征能力。通过结合多个来源的词嵌入,可以充分利用不同数据集或不同领域的语义信息,从而提高模型的性能。

具体实现机制: 实现多嵌入策略的具体方法有几种:

简单融合: 将来自多个来源的词嵌入简单地拼接在一起或者取平均,作为模型的输入Embeddings。这种方法简单直观,但可能无法很好地利用不同来源的语义信息。

加权融合: 对来自不同来源的词嵌入进行加权融合,权重可以通过训练得到或者手动设定。这样可以根据不同来源的词嵌入的重要性对其进行更灵活的控制。

门控机制: 使用门控机制(如门控单元或者注意力机制)来动态地调整不同来源的词嵌入的贡献,以适应不同任务或不同上下文的需求。

领域特定嵌入: 为不同的领域或任务训练独立的词嵌入,并将其与通用的词嵌入进行融合。这样可以使模型在不同领域或任务中更好地泛化。

107、更深更宽的 Transformer 网络是否意味着能够获得更强的预训练模型?请至少从3个角度,例如架构的工程化落地、参数的信息表达能力、训练任务等,来展开具体的分析

架构的工程化落地: 更深更宽的Transformer网络通常具有更多的层和更多的注意力头,这意味着模型可以捕捉更复杂和更丰富的语义信息。在工程化落地中,更大的模型可能能够更好地适应不同的任务和数据,因为它们具有更强大的表示能力,能够更好地理解和处理复杂的语言现象。

参数的信息表达能力: 更深更宽的Transformer网络具有更多的参数,因此具有更强大的信息表达能力。

更多的参数可以使模型学习到更复杂和更细粒度的特征,从而提高模型对输入数据的建模能力。这意味着更大的Transformer模型可以更好地捕捉语言的结构和语义,从而产生更具有泛化能力的预训练模型。

训练任务: 更深更宽的Transformer网络可能可以在更大规模的数据集上进行训练,从而提高模型的泛化能力。通过在更大的数据集上进行训练,模型可以更好地学习到语言的统计规律和语义信息,从而提高对新任务的适应能力。此外,更大的模型还可以通过更长时间的训练来获得更好的性能,因为它们具有更多的参数和更强大的表示能力,可以更好地利用数据集中的信息。

108、如何大规模降低 Transformer 中 Embedding 中的参数数量?请至少具体分析一种具体方法背后的数学原理和工程实践

降低Transformer中Embedding层参数数量的一个常见方法是使用低维度的嵌入矩阵和共享参数。其中,一种具体方法是使用词嵌入的哈希技巧(Hashing Trick)来减少词嵌入的维度和参数数量。下面我将详细解释这种方法的数学原理和工程实践:

数学原理:

哈希技巧的基本思想是将原始词嵌入的高维向量通过哈希函数映射到低维空间中。这种方法的数学原理是通过哈希函数将每个词语映射到固定数量的桶(buckets)中,然后在每个桶中使用一个共享的词嵌入向量。因此,每个桶中的所有词语都共享同一个词嵌入向量,从而减少了词嵌入层的参数数量。

工程实践:

选择哈希函数: 首先需要选择一个哈希函数,它将词语映射到固定数量的桶中。常用的哈希函数包括简单的取模运算或者更复杂的一致性哈希(Consistent Hashing)。

确定桶的数量: 确定每个词嵌入向量被映射到的桶的数量。通常会根据词嵌入的维度和期望的参数数量来决定桶的数量。较大的桶数量会导致更多的参数共享,但可能会降低词嵌入的表达能力。

构建哈希表: 对词汇表中的每个词语应用哈希函数,并将它们映射到对应的桶中。这样就可以构建一个哈希表,将每个桶和共享的词嵌入向量关联起来。

模型训练: 在训练过程中,使用哈希表中的共享词嵌入向量来表示输入文本中的词语。对于每个词语,首先应用哈希函数得到其对应的桶,然后使用桶中的共享词嵌入向量来表示该词语。

109、请描述 Trasnformer 不同的 Layer 之间的 FeedForward 神经网络之间的联系,例如在 Bert 中不同 Layer 之间的 CLS 有什么关系、对角矩阵随着 Layer 的加深有何变化等

在Transformer中,不同层之间的FeedForward神经网络(FFN)之间存在一定的联系,虽然它们在每一层中的作用是相同的,但在整个模型中的效果可能会有所不同。以Bert为例,描述不同层之间的FeedForward神经网络之间的联系:

CLS之间的关系: 在Bert中,每个Transformer层的最后一个CLS标记的输出被用作整个句子的表示,即句子级别的表示。这意味着每个层的CLS输出在语义上应该是相似的,因为它们都代表了整个句子的语义信息。因此,不同层之间的CLS输出应该在语义上是相似的,但可能会有一些微小的差异,这可能是由于模型在不同层学到了不同的语义表示。对角矩阵的变化: 在Transformer的Self-Attention机制中,每个位置的词语都会与其他位置的词语计算注意力权重,这些权重被组成一个注意力矩阵。对角矩阵可以表示每个位置与自己的关注程度,通常在模型的不同层之间会有一些变化。在Bert中,随着层数的加深,对角矩阵可能会发生变化,因为不同层之间学习到的语义信息可能有所不同。但通常情况下,对角矩阵应该保持稳定或者有一定的模式变化,以确保模型能够正确地捕捉输入序列中的关系。

110、Transformer 的 Layer 深度过深,例如 512 个 Layer,会可能导致什么现象?请详述背后的数学机制

梯度消失或爆炸: 随着层数的增加,梯度在反向传播过程中可能会逐渐消失或爆炸,导致模型难以收敛或训练不稳定。

计算资源消耗: 更深的Transformer模型需要更多的计算资源来进行训练和推理,可能超出了可用的资源限制。

过拟合: 更深的模型可能会增加过拟合的风险,特别是在数据集较小的情况下,模型可能会过度学习训练数据的噪声。

训练时间增加: 更深的模型需要更长的训练时间来收敛,这可能会增加训练成本和时间成本。

这份完整版的大模型 AI 学习和面试资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】

AI大模型学习和面试资源

我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。

我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。

第一阶段: 从大模型系统设计入手,讲解大模型的主要方法;

第二阶段: 在通过大模型提示词工程从Prompts角度入手更好发挥模型的作用;

第三阶段: 大模型平台应用开发借助阿里云PAI平台构建电商领域虚拟试衣系统;

第四阶段: 大模型知识库应用开发以LangChain框架为例,构建物流行业咨询智能问答系统;

第五阶段: 大模型微调开发借助以大健康、新零售、新媒体领域构建适合当前领域大模型;

第六阶段: 以SD多模态大模型为主,搭建了文生图小程序案例;

第七阶段: 以大模型平台应用与开发为主,通过星火大模型,文心大模型等成熟大模型构建大模型行业应用。

👉学会后的收获:👈

• 基于大模型全栈工程实现(前端、后端、产品经理、设计、数据分析等),通过这门课可获得不同能力;

• 能够利用大模型解决相关实际项目需求: 大数据时代,越来越多的企业和机构需要处理海量数据,利用大模型技术可以更好地处理这些数据,提高数据分析和决策的准确性。因此,掌握大模型应用开发技能,可以让程序员更好地应对实际项目需求;

• 基于大模型和企业数据AI应用开发,实现大模型理论、掌握GPU算力、硬件、LangChain开发框架和项目实战技能, 学会Fine-tuning垂直训练大模型(数据准备、数据蒸馏、大模型部署)一站式掌握;

• 能够完成时下热门大模型垂直领域模型训练能力,提高程序员的编码能力: 大模型应用开发需要掌握机器学习算法、深度学习框架等技术,这些技术的掌握可以提高程序员的编码能力和分析能力,让程序员更加熟练地编写高质量的代码。

1.AI大模型学习路线图
2.100套AI大模型商业化落地方案
3.100集大模型视频教程
4.200本大模型PDF书籍
5.LLM面试题合集
6.AI产品经理资源合集

👉获取方式:
😝有需要的小伙伴,可以保存图片到wx扫描二v码免费领取【保证100%免费】🆓

相关推荐
陈广亮20 小时前
构建具有长期记忆的 AI Agent:从设计模式到生产实践
人工智能
会写代码的柯基犬20 小时前
DeepSeek vs Kimi vs Qwen —— AI 生成俄罗斯方块代码效果横评
人工智能·llm
Mintopia21 小时前
OpenClaw 是什么?为什么节后热度如此之高?
人工智能
爱可生开源社区21 小时前
DBA 的未来?八位行业先锋的年度圆桌讨论
人工智能·dba
叁两1 天前
用opencode打造全自动公众号写作流水线,AI 代笔太香了!
前端·人工智能·agent
前端付豪1 天前
LangChain记忆:通过Memory记住上次的对话细节
人工智能·python·langchain
strayCat232551 天前
Clawdbot 源码解读 7: 扩展机制
人工智能·开源
王鑫星1 天前
SWE-bench 首次突破 80%:Claude Opus 4.5 发布,Anthropic 的野心不止于写代码
人工智能