【大模型】LLM 基础面试题合集 - LLM最全八股和答案(四)
LLM 基础面试题合集 - LLM最全八股和答案(四)
LLM 基础面试题合集 - LLM最全八股和答案(四)
更多相关文章:
LLM 基础面试题合集 - LLM最全八股和答案(一)
LLM 基础面试题合集 - LLM最全八股和答案(二)
LLM 基础面试题合集 - LLM最全八股和答案(三)
151、微调后的大模型出现灾难性遗忘是什么原因?
灾难性遗忘是指大模型在学习了某个行业的新知识后,遗忘掉了最初学习的通用知识,减缓该问题的出现可以从如下两方面进行着手:
(1)加入通用知识:在用行业数据进行训练的时候增添一些通用的数据一块训练。
(2)调整学习率LR:出现这种情况也有可能是训练参数调整导致的,微调初始学习率不要设置的太高,LR=2e-5或者更小,最好不要设置大于预训练时的学习率,能够缓解此问题
152、什么是LLM的复读机问题?
大模型LLM的复读机问题是指大型语言模型在生成文本时出现的一种现象,也就是模型倾向于无限地复制输入的文本或者以过渡频繁的方式生成重复相同的句子或短语。这种现象使得模型的输出缺乏多样性和创造性,给用户带来了不好的体验。
153、出现复读机问题的可能原因有哪些?
通过分析发现导致大模型的复读机问题出现可能是以下几个方面的原因。
(1)数据偏差:大型语言模型通常是通过预训练阶段使用大量的无标签数据进行训练的。如果训练数据中含有大量的重复文本或者某些特定的句子或短语出现频率较高,模型在生成文本时就有可能倾向于复制这些常规的模式。
(2)训练目标的限制:大型语言模型的训练通常是基于自监督的学习方法,通过预测下一个词或掩盖词、短语来学习语言模型。这样的训练目标可能使得模型更倾向于生成与输入相似的文本,导致复读机问题的出现。
(3)缺乏多样性的训练数据:虽然大型语言模型能够处理大规模的数据,但如果训练数据中缺乏多样性的语言表达和语境,模型可能无法学习到足够的多样性和创造性,导致复读机问题的出现。
(4)模型结构和参数设置:大型语言模型的结构和参数也可能对复读机问题产生影响。比如,模型的注意力机制和生成策略可能导致模型更倾向于复制输入的文本。
154、解决大模型复读机问题可用哪些策略?
如何缓解大模型的复读机问题是一个复杂的任务,并没有一个通用的解决方案。不同的方法可能适用于不同的业务场景和任务,需要根据具体的情况进行选择和调整。下面是几种用于缓解大模型复读机问题的几种解决方案。
(1)多样性训练数据:在训练阶段,使用具有多样性的语料进行训练模型,避免数据偏差和重复文本的问题。比如可以从不同来源、不同领域、不同风格的文本中获取数据。
(2)加入噪声:在文本生成时,可以引入一些随机性或噪声,以增加生成文本的多样性。
(3)温度参数调整:温度参数是用于控制生成文本多样性的一个参数,通过调整温度参数值,可以控制生成文本的独特性和多样性。较高的温度值能够增加随机性,从而减少复读机问题的出现。
(4)解码参数调整:目前在生成文本时常用的解码算法有Beam搜索算法,可以通过调整Beam大小和搜索宽度,控制文本的多样性和创造性。
(5)重复惩罚参数调整:repetition_penalty用于减少生成文本中重复词汇的出现。它可以设置为大于1的值,以惩罚重复的词汇。这有助于生成更自然、不重复的文本。
(6)后处理和过滤:对生成的文本进行后处理和过滤,去除重复的句子或短语,以提高生成文本的质量和多样性。可以通过文本相似度计算方法或规则来检测和去除重复的文本。
155、目前有哪几种流行的大模型架构
BART (bi Encoder+casual Decoder,类bert的方法预训练)、T5(Encoder+Decoder,text2text预训练)、GPT(Decoder主打zero-shot)、GLM(mask的输入部分是双向注意力,在生成预测的是单向注意力)。
156、 attention mask不一样,前者prefix的部分token可以相互看
到,而causal是严格自回归。
157、RLHF流程讲一下
a.Step1:语言模型根据问题生成答案或续写;
b.Step2:使用函数/模型/人类反馈或它们的某种组合来评估问题和答案。并映射至一个分数,即奖励reward;
c.Step3:在PPO优化步骤中,<问题+回复>pair用于计算序列中标记的对数概率。经过训练的模型(actor)和参考模型(critic) 分别得到new_logit和old_logit,参考模型是上一阶段的指令微调 模型。两个输出之间的KL散度用作附加奖励信号,以确保生成的响应不会偏离参考语言模型太远。然后使用PPO算法训练语言模型
158、instruction tuning和prompt learning 的区别
instruction tuning和prompt learning的目的都是去挖掘语言模型本身具备的知识。不同的是Prompt是激发语言模型的补全能力,例如根据上半句生成下半句,或是完形填空等(few-shot)。
Instruct是激发语言模型的理解能力,它通过给出更明显的指令,让模型去做出正确的行动(zeroshot)。
159、LoRA怎么做的,讲一下?
即在原始的预训练模型旁边增加一个新的通路,通过前后两个矩阵A,B相乘,做一个降维再升维的操作。
外挂层和预训练模型层维度都为d,A会先将维度d降维到r,B再升回d。一般是针对Q/K/V的投影矩阵W分解成低秩矩阵BA作为外挂,B一般以0初始化,A以高斯分布初始化
160、为什么可以用LoRA?
专有任务的微调权重与初始预训练权重之间的差异往往表现出“低固有秩(lowintrinsicrank)”差异,这意味着它可以很好地近似为一个低秩矩阵。即微调权重和初始预训练权重之间的这种差距可以表示为两个较小矩阵的乘积。
161、LoRA的参数
a. rank秩8:选择更高秩的分解矩阵将抵消LoRA的效率优势,而且设到16也差别不大。
b. Alpha:16。Alpha用于对学习到的权重进行扩展。通常建议固定Alpha的值为16,不调节。
c.目标模块:所有密集层。初始只对QV,但应用所有有效,且更接近全参数。
d.基础学习率:1e-4。只有当训练不稳定时降到3e-5。
162、LoRA和全参微调的对比
a.对普通文本任务如生成sql差别不大,对小模型推理影响很多,但到70B的时候差别不大。此外,数据偏离分布外太远可能会导致LoRA难以处理,有提示对LoRA训练更稳定,没有提示用特殊词元代替(训练比如4个特殊start/end等)
b. LoRA虽然在内存方面十分高效,但可能会影响模型达到收敛的速度。
163、国外开源的LLaMA的词表实际上兼容中文效果可能会大打折扣,那么扩充词表该怎么做?
a.准备一份中文训练预料,用sentencepiece训练切词,得到扩增的中文词表,然后增加到模型原来的词表中
b. embedding矩阵随机初始化(或均值初始化)新增的token对应的向量
c.进一步做pretraining或者sft

GitCode 天启AI是一款由 GitCode 团队打造的智能助手,基于先进的LLM(大语言模型)与多智能体 Agent 技术构建,致力于为用户提供高效、智能、多模态的创作与开发支持。它不仅支持自然语言对话,还具备处理文件、生成 PPT、撰写分析报告、开发 Web 应用等多项能力,真正做到“一句话,让 Al帮你完成复杂任务”。
更多推荐
所有评论(0)