自 ChatGPT 在去年 11 月底横空出世,大模型的风刮了整一年。
历经了百模大战、Llama 2 开源、GPTs 发布等一系列里程碑事件,将大模型技术推至无可争议的 C 位。基于大模型的研究与讨论,也让我们愈发接近这波技术浪潮的核心。
最近大模型相关的招聘也非常多,小编整理了一些大模型面试常见问题,供大家参考。希望在找相关机会的同学能有好的收获。
大模型面试题更新速度比较快,我们会第一时间在技术群和星球及时更新,向关注的朋友,可以加入我们。
技术交流群
建了技术交流群&星球!想要进交流群的同学,可以直接加微信号:dkl88194。加的时候备注一下:研究方向 +学校/公司,即可。然后就可以拉你进群了。
方式①、添加微信号:dkl88194,备注:来自CSDN + 大模型面试题
方式②、微信搜索公众号:Python学习与数据挖掘,后台回复:大模型面试题
前沿技术资讯、算法交流、求职内推、算法竞赛、面试交流(校招、社招、实习)等、与 10000+来自港科大、北大、清华、中科院、CMU、腾讯、百度等名校名企开发者互动交流~
目录
-
大模型(LLMs)基础面
-
- 目前 主流的开源模型体系 有哪些?
-
- prefix LM 和 causal LM 区别是什么?
-
- 涌现能力是啥原因?
-
- 大模型LLM的架构介绍?
-
大模型(LLMs)进阶面
-
- llama 输入句子长度理论上可以无限长吗?
-
- 什么是 LLMs 复读机问题?
-
- 为什么会出现 LLMs 复读机问题?
-
- 如何缓解 LLMs 复读机问题?
-
- LLMs 复读机问题
-
- llama 系列问题
-
- 什么情况用Bert模型,什么情况用LLaMA、ChatGLM类大模型,咋选?
-
- 各个专业领域是否需要各自的大模型来服务?
-
- 如何让大模型处理更长的文本?
-
大模型(LLMs)微调面
-
- 如果想要在某个模型基础上做全参数微调,究竟需要多少显存?
-
- 为什么SFT之后感觉LLM傻了?
-
- SFT 指令微调数据 如何构建?
-
- 领域模型Continue PreTrain 数据选取?
-
- 领域数据训练后,通用能力往往会有所下降,如何缓解模型遗忘通用能力?
-
- 领域模型Continue PreTrain ,如何 让模型在预训练过程中就学习到更多的知识?
-
- 进行SFT操作的时候,基座模型选用Chat还是Base?
-
- 领域模型微调 指令&数据输入格式 要求?
-
- 领域模型微调 领域评测集 构建?
-
- 领域模型词表扩增是不是有必要的?
-
- 如何训练自己的大模型?
-
- 训练中文大模型有啥经验?
-
- 指令微调的好处?
-
- 预训练和微调哪个阶段注入知识的?
-
- 想让模型学习某个领域或行业的知识,是应该预训练还是应该微调?
-
- 多轮对话任务如何微调模型?
-
- 微调后的模型出现能力劣化,灾难性遗忘是怎么回事?
-
- 微调模型需要多大显存?
-
- 大模型LLM进行SFT操作的时候在学习什么?
-
- 预训练和SFT操作有什么不同
-
- 样本量规模增大,训练出现OOM错
-
- 大模型LLM进行SFT 如何对样本进行优化?
-
- 模型参数迭代实验
-
大模型(LLMs)langchain面
-
- 基于LLM+向量库的文档对话 基础面
-
- 基于LLM+向量库的文档对话 优化面
-
- 基于LLM+向量库的文档对话 工程示例面
-
- LLMs 存在模型幻觉问题,请问如何处理?
-
- 基于LLM+向量库的文档对话 思路是怎么样?
-
- 基于LLM+向量库的文档对话 核心技术是什么?
-
- 基于LLM+向量库的文档对话 prompt 模板 如何构建?
-
- 痛点1:文档切分粒度不好把控,既担心噪声太多又担心语义信息丢失
-
- 痛点2:在基于垂直领域 表现不佳
-
- 痛点3:langchain 内置 问答分句效果不佳问题
-
- 痛点4:如何 尽可能召回与query相关的Document 问题
-
- 痛点5:如何让LLM基于query和context得到高质量的response
-
- 避坑记录
-
- 本地知识库问答系统(Langchain-chatGLM)
-
- 什么是 LangChain?
-
- LangChain 包含哪些 核心概念?
-
- 什么是 LangChain Agent?
-
- 如何使用 LangChain ?
-
- LangChain 支持哪些功能?
-
- 什么是 LangChain model?
-
- LangChain 包含哪些特点?
-
- LangChain 如何使用?
-
- LangChain 存在哪些问题及方法方案?
-
- LangChain 替代方案?
-
- LangChain 中 Components and Chains 是什么?
-
- LangChain 中 Prompt Templates and Values 是什么?
-
- LangChain 中 Example Selectors 是什么?
-
- LangChain 中 Output Parsers 是什么?
-
- LangChain 中 Indexes and Retrievers 是什么?
-
- LangChain 中 Chat Message History 是什么?
-
- LangChain 中 Agents and Toolkits 是什么?
-
- LangChain 如何调用 LLMs 生成回复?
-
- LangChain 如何修改 提示模板?
-
- LangChain 如何链接多个组件处理一个特定的下游任务?
-
- LangChain 如何Embedding & vector store?
-
- LangChain 低效的令牌使用问题
-
- LangChain 文档的问题
-
- LangChain 太多概念容易混淆,过多的“辅助”函数问题
-
- LangChain 行为不一致并且隐藏细节问题
-
- LangChain 缺乏标准的可互操作数据类型问题
-
大模型(LLMs)langchain 面
-
基于LLM+向量库的文档对话 经验面
-
大模型(LLMs)参数高效微调(PEFT) 面
-
一、LoRA篇
-
二、QLoRA篇
-
三、AdaLoRA篇
-
四、LoRA权重是否可以合入原模型?
-
五、ChatGLM-6B LoRA后的权重多大?
-
六、LoRA 微调优点是什么?
-
七、LoRA微调方法为啥能加速训练?
-
八、如何在已有LoRA模型上继续训练?
-
1.1 什么是 LoRA?
-
1.2 LoRA 的思路是什么?
-
1.3 LoRA 的特点是什么?
-
2.1 QLoRA 的思路是怎么样的?
-
2.2 QLoRA 的特点是什么?
-
3.1 AdaLoRA 的思路是怎么样的?
-
一、为什么需要 提示学习(Prompting)?
-
二、什么是 提示学习(Prompting)?
-
三、提示学习(Prompting) 有什么优点?
-
四、提示学习(Prompting)有哪些方法,能不能稍微介绍一下它们间?
-
4.4.1 为什么需要 P-tuning v2?
-
4.4.2 P-tuning v2 思路是什么?
-
4.4.3 P-tuning v2 优点是什么?
-
4.4.4 P-tuning v2 缺点是什么?
-
4.3.1 为什么需要 P-tuning?
-
4.3.2 P-tuning 思路是什么?
-
4.3.3 P-tuning 优点是什么?
-
4.3.4 P-tuning 缺点是什么?
-
4.2.1 为什么需要 指示微调(Prompt-tuning)?
-
4.2.2 指示微调(Prompt-tuning)思路是什么?
-
4.2.3 指示微调(Prompt-tuning)优点是什么?
-
4.2.4 指示微调(Prompt-tuning)缺点是什么?
-
4.2.5 指示微调(Prompt-tuning)与 Prefix-tuning 区别 是什么?
-
4.2.6 指示微调(Prompt-tuning)与 fine-tuning 区别 是什么?
-
4.1.1 为什么需要 前缀微调(Prefix-tuning)?
-
4.1.2 前缀微调(Prefix-tuning)思路是什么?
-
4.1.3 前缀微调(Prefix-tuning)的优点是什么?
-
4.1.4 前缀微调(Prefix-tuning)的缺点是什么?
-
4.1 前缀微调(Prefix-tuning)篇
-
4.2 指示微调(Prompt-tuning)篇
-
4.3 P-tuning 篇
-
4.4 P-tuning v2 篇
-
一、为什么 需要 适配器微调(Adapter-tuning)?
-
二、适配器微调(Adapter-tuning)思路?
-
三、 适配器微调(Adapter-tuning)特点是什么?
-
四、AdapterFusion 思路 是什么?
-
五、AdapterDrop 思路 是什么?
-
六、AdapterDrop 特点 是什么?
-
七、MAM Adapter 思路 是什么?
-
八、MAM Adapter 特点 是什么?
-
微调方法是啥?如何微调?
-
为什么需要 PEFT?
-
介绍一下 PEFT?
-
PEFT 有什么优点?
-
微调方法批处理大小模式GPU显存速度?
-
Peft 和 全量微调区别?
-
多种不同的高效微调方法对比
-
当前高效微调技术存在的一些问题
-
高效微调技术最佳实践
-
PEFT 存在问题?
-
能不能总结一下各种参数高效微调方法?
-
大模型(LLMs)参数高效微调(PEFT) 面
-
适配器微调(Adapter-tuning)篇
-
提示学习(Prompting)
-
LoRA 系列篇
-
大模型(LLMs)推理面
-
- 为什么大模型推理时显存涨的那么多还一直占着?
-
- 大模型在gpu和cpu上推理速度如何?
-
- 推理速度上,int8和fp16比起来怎么样?
-
- 大模型有推理能力吗?
-
- 大模型生成时的参数怎么设置?
-
- 有哪些省内存的大语言模型训练/微调/推理方法?
-
- 如何让大模型输出合规化
-
- 应用模式变更
-
大模型(LLMs)评测面
-
大模型怎么评测?
-
大模型的honest原则是如何实现的?
-
模型如何判断回答的知识是训练过的已知的知识,怎么训练这种能力?
-
大模型(LLMs)强化学习面
-
奖励模型需要和基础模型一致吗?
-
RLHF 在实践过程中存在哪些不足?
-
如何解决 人工产生的偏好数据集成本较高,很难量产问题?
-
如何解决三个阶段的训练(SFT->RM->PPO)过程较长,更新迭代较慢问题?
-
如何解决 PPO 的训练过程同时存在4个模型(2训练,2推理),对计算资源的要求较高 问题?
-
大模型(LLMs)软硬件配置面
-
大模型(LLMs)训练集面
-
SFT(有监督微调)的数据集格式?
-
RM(奖励模型)的数据格式?
-
PPO(强化学习)的数据格式?
-
找数据集哪里找?
-
微调需要多少条数据?
-
有哪些大模型的训练集?
-
进行领域大模型预训练应用哪些数据集比较好?
-
大模型(LLMs)显存问题面
-
大模型(LLMs)分布式训练面
-
大模型(LLMs)agent 面
-
如何给LLM注入领域知识?
-
如果想要快速体验各种模型,该怎么办?
-
Token及模型参数准备篇
-
预训练数据 Token 重复 是否影响 模型性能?
-
SFT需要训练Token数?
-
LLMs 位置编码篇
-
6.1 ALiBi (Attention with Linear Biases) 思路是什么?
-
6.2 ALiBi (Attention with Linear Biases) 的偏置矩阵是什么?有什么作用?
-
6.3 ALiBi (Attention with Linear Biases) 有什么优点?
-
6.4 ALiBi (Attention with Linear Biases) 被哪些 LLMs 应用?
-
5.1 什么是 长度外推问题?
-
5.2 长度外推问题 的 解决方法 有哪些?
-
4.1 旋转位置编码 RoPE 思路是什么?
-
4.2 推导一下 旋转位置编码 RoPE ?
-
4.3 旋转位置编码 RoPE 有什么优点?
-
4.4 旋转位置编码 RoPE 被哪些 LLMs 应用?
-
1 什么是位置编码?
-
2 什么是绝对位置编码?
-
3 什么是相对位置编码?
-
4 旋转位置编码 RoPE篇
-
5 长度外推问题篇
-
6 ALiBi (Attention with Linear Biases)篇
-
LLMs Tokenizer 篇
-
Byte-Pair Encoding(BPE)篇
-
WordPiece 篇
-
SentencePiece 篇
-
对比篇
-
1 Byte-Pair Encoding(BPE) 如何构建词典?
-
1 WordPiece 与 BPE 异同点是什么?
-
简单介绍一下 SentencePiece 思路?
-
1 举例 介绍一下 不同 大模型LLMs 的分词方式?
-
2 介绍一下 不同 大模型LLMs 的分词方式 的区别?
-
LLMs Tokenizer 篇
-
Layer Normalization 篇
-
LLMs 各模型分别用了 哪种 Layer normalization?
-
1 LN 在 LLMs 中的不同位置 有什么区别么?如果有,能介绍一下区别么?
-
Layer Norm 篇
-
RMS Norm 篇 (均方根 Norm)
-
Deep Norm 篇
-
Deep Norm 有什么优点?
-
Layer Norm 的计算公式写一下?
-
RMS Norm 的计算公式写一下?
-
RMS Norm 相比于 Layer Norm 有什么特点?
-
Deep Norm 思路?
-
写一下 Deep Norm 代码实现?
-
Layer normalization-方法篇
-
Layer normalization-位置篇
-
Layer normalization 对比篇
-
LLMs 激活函数篇
-
1 介绍一下 FFN 块 计算公式?
-
2 介绍一下 GeLU 计算公式?
-
3 介绍一下 Swish 计算公式?
-
4 介绍一下 使用 GLU 线性门控单元的 FFN 块 计算公式?
-
5 介绍一下 使用 GeLU 的 GLU 块 计算公式?
-
6 介绍一下 使用 Swish 的 GLU 块 计算公式?
-
各LLMs 都使用哪种激活函数?
ii. 为什么会出现 LLMs 复读机问题?
出现LLMs复读机问题可能有以下几个原因:
-
数据偏差:大型语言模型通常是通过预训练阶段使用大规模无标签数据进行训练的。如果训练数据中存在大量的重复文本或者某些特定的句子或短语出现频率较高,模型在生成文本时可能会倾向于复制这些常见的模式。
-
训练目标的限制:大型语言模型的训练通常是基于自监督学习的方法,通过预测下一个词或掩盖词来学习语言模型。这样的训练目标可能使得模型更倾向于生成与输入相似的文本,导致复读机问题的出现。
-
缺乏多样性的训练数据:虽然大型语言模型可以处理大规模的数据,但如果训练数据中缺乏多样性的语言表达和语境,模型可能无法学习到足够的多样性和创造性,导致复读机问题的出现。
-
模型结构和参数设置:大型语言模型的结构和参数设置也可能对复读机问题产生影响。例如,模型的注意力机制和生成策略可能导致模型更倾向于复制输入的文本。
为了解决复读机问题,可以采取以下策略:
-
多样性训练数据:在训练阶段,尽量使用多样性的语料库来训练模型,避免数据偏差和重复文本的问题。
-
引入噪声:在生成文本时,可以引入一些随机性或噪声,例如通过采样不同的词或短语,或者引入随机的变换操作,以增加生成文本的多样性。
-
温度参数调整:温度参数是用来控制生成文本的多样性的一个参数。通过调整温度参数的值,可以控制生成文本的独创性和多样性,从而减少复读机问题的出现。
-
后处理和过滤:对生成的文本进行后处理和过滤,去除重复的句子或短语,以提高生成文本的质量和多样性。
需要注意的是,复读机问题是大型语言模型面临的一个挑战,解决这个问题是一个复杂的任务,需要综合考虑数据、训练目标、模型架构和生成策略等多个因素。目前,研究人员和工程师们正在不断努力改进和优化大型语言模型,以提高其生成文本的多样性和创造性。
iii. 如何缓解 LLMs 复读机问题?
为了缓解LLMs复读机问题,可以尝试以下方法:
-
多样性训练数据:在训练阶段,使用多样性的语料库来训练模型,避免数据偏差和重复文本的问题。这可以包括从不同领域、不同来源和不同风格的文本中获取数据。
-
引入噪声:在生成文本时,引入一些随机性或噪声,例如通过采样不同的词或短语,或者引入随机的变换操作,以增加生成文本的多样性。这可以通过在生成过程中对模型的输出进行采样或添加随机性来实现。
-
温度参数调整:温度参数是用来控制生成文本的多样性的一个参数。通过调整温度参数的值,可以控制生成文本的独创性和多样性。较高的温度值会增加随机性,从而减少复读机问题的出现。
-
Beam搜索调整:在生成文本时,可以调整Beam搜索算法的参数。Beam搜索是一种常用的生成策略,它在生成过程中维护了一个候选序列的集合。通过调整Beam大小和搜索宽度,可以控制生成文本的多样性和创造性。
-
后处理和过滤:对生成的文本进行后处理和过滤,去除重复的句子或短语,以提高生成文本的质量和多样性。可以使用文本相似度计算方法或规则来检测和去除重复的文本。
-
人工干预和控制:对于关键任务或敏感场景,可以引入人工干预和控制机制,对生成的文本进行审查和筛选,确保生成结果的准确性和多样性。
需要注意的是,缓解LLMs复读机问题是一个复杂的任务,没有一种通用的解决方案。不同的方法可能适用于不同的场景和任务,需要根据具体情况进行选择和调整。此外,解决复读机问题还需要综合考虑数据、训练目标、模型架构和生成策略等多个因素,需要进一步的研究和实践来提高大型语言模型的生成文本多样性和创造性。
2 llama 系列问题
i. llama 输入句子长度理论上可以无限长吗?
理论上来说,LLMs(大型语言模型)可以处理任意长度的输入句子,但实际上存在一些限制和挑战。下面是一些相关的考虑因素:
-
计算资源:生成长句子需要更多的计算资源,包括内存和计算时间。由于LLMs通常是基于神经网络的模型,计算长句子可能会导致内存不足或计算时间过长的问题。
-
模型训练和推理:训练和推理长句子可能会面临一些挑战。在训练阶段,处理长句子可能会导致梯度消失或梯度爆炸的问题,影响模型的收敛性和训练效果。在推理阶段,生成长句子可能会增加模型的错误率和生成时间。
-
上下文建模:LLMs是基于上下文建模的模型,长句子的上下文可能会更加复杂和深层。模型需要能够捕捉长句子中的语义和语法结构,以生成准确和连贯的文本。
尽管存在这些挑战,研究人员和工程师们已经在不断努力改进和优化LLMs,以处理更长的句子。例如,可以采用分块的方式处理长句子,将其分成多个较短的片段进行处理。此外,还可以通过增加计算资源、优化模型结构和参数设置,以及使用更高效的推理算法来提高LLMs处理长句子的能力。
值得注意的是,实际应用中,长句子的处理可能还受到应用场景、任务需求和资源限制等因素的影响。因此,在使用LLMs处理长句子时,需要综合考虑这些因素,并根据具体情况进行选择和调整。
3 什么情况用Bert模型,什么情况用LLaMA、ChatGLM类大模型,咋选?
选择使用哪种大模型,如Bert、LLaMA或ChatGLM,取决于具体的应用场景和需求。下面是一些指导原则:
-
Bert模型:Bert是一种预训练的语言模型,适用于各种自然语言处理任务,如文本分类、命名实体识别、语义相似度计算等。如果你的任务是通用的文本处理任务,而不依赖于特定领域的知识或语言风格,Bert模型通常是一个不错的选择。Bert由一个Transformer编码器组成,更适合于NLU相关的任务。
-
LLaMA模型:LLaMA(Large Language Model Meta AI)包含从 7B 到 65B 的参数范围,训练使用多达14,000亿tokens语料,具有常识推理、问答、数学推理、代码生成、语言理解等能力。Bert由一个Transformer解码器组成。训练预料主要为以英语为主的拉丁语系,不包含中日韩文。所以适合于英文文本生成的任务。
-
ChatGLM模型:ChatGLM是一个面向对话生成的语言模型,适用于构建聊天机器人、智能客服等对话系统。如果你的应用场景需要模型能够生成连贯、流畅的对话回复,并且需要处理对话上下文、生成多轮对话等,ChatGLM模型可能是一个较好的选择。ChatGLM的架构为Prefix decoder,训练语料为中英双语,中英文比例为1:1。所以适合于中文和英文文本生成的任务。
在选择模型时,还需要考虑以下因素:
-
数据可用性:不同模型可能需要不同类型和规模的数据进行训练。确保你有足够的数据来训练和微调所选择的模型。
-
计算资源:大模型通常需要更多的计算资源和存储空间。确保你有足够的硬件资源来支持所选择的模型的训练和推理。
-
预训练和微调:大模型通常需要进行预训练和微调才能适应特定任务和领域。了解所选择模型的预训练和微调过程,并确保你有相应的数据和时间来完成这些步骤。
最佳选择取决于具体的应用需求和限制条件。在做出决策之前,建议先进行一些实验和评估,以确定哪种模型最适合你的应用场景。
4 各个专业领域是否需要各自的大模型来服务?
各个专业领域通常需要各自的大模型来服务,原因如下:
-
领域特定知识:不同领域拥有各自特定的知识和术语,需要针对该领域进行训练的大模型才能更好地理解和处理相关文本。例如,在医学领域,需要训练具有医学知识的大模型,以更准确地理解和生成医学文本。
-
语言风格和惯用语:各个领域通常有自己独特的语言风格和惯用语,这些特点对于模型的训练和生成都很重要。专门针对某个领域进行训练的大模型可以更好地掌握该领域的语言特点,生成更符合该领域要求的文本。
-
领域需求的差异:不同领域对于文本处理的需求也有所差异。例如,金融领域可能更关注数字和统计数据的处理,而法律领域可能更关注法律条款和案例的解析。因此,为了更好地满足不同领域的需求,需要专门针对各个领域进行训练的大模型。
-
数据稀缺性:某些领域的数据可能相对较少,无法充分训练通用的大模型。针对特定领域进行训练的大模型可以更好地利用该领域的数据,提高模型的性能和效果。
尽管需要各自的大模型来服务不同领域,但也可以共享一些通用的模型和技术。例如,通用的大模型可以用于处理通用的文本任务,而领域特定的模型可以在通用模型的基础上进行微调和定制,以适应特定领域的需求。这样可以在满足领域需求的同时,减少模型的重复训练和资源消耗。
5 如何让大模型处理更长的文本?
要让大模型处理更长的文本,可以考虑以下几个方法:
-
分块处理:将长文本分割成较短的片段,然后逐个片段输入模型进行处理。这样可以避免长文本对模型内存和计算资源的压力。在处理分块文本时,可以使用重叠的方式,即将相邻片段的一部分重叠,以保持上下文的连贯性。
-
层次建模:通过引入层次结构,将长文本划分为更小的单元。例如,可以将文本分为段落、句子或子句等层次,然后逐层输入模型进行处理。这样可以减少每个单元的长度,提高模型处理长文本的能力。
-
部分生成:如果只需要模型生成文本的一部分,而不是整个文本,可以只输入部分文本作为上下文,然后让模型生成所需的部分。例如,输入前一部分文本,让模型生成后续的内容。
-
注意力机制:注意力机制可以帮助模型关注输入中的重要部分,可以用于处理长文本时的上下文建模。通过引入注意力机制,模型可以更好地捕捉长文本中的关键信息。
-
模型结构优化:通过优化模型结构和参数设置,可以提高模型处理长文本的能力。例如,可以增加模型的层数或参数量,以增加模型的表达能力。还可以使用更高效的模型架构,如Transformer等,以提高长文本的处理效率。
需要注意的是,处理长文本时还需考虑计算资源和时间的限制。较长的文本可能需要更多的内存和计算时间,因此在实际应用中需要根据具体情况进行权衡和调整。