大模型(LLMs)微调面来自:AiGC面试宝典宁静致远2023年12月24日00:44大模型(LLMs)微调面1.如果想要在某个模型基础上做全参数微调,究竟需要多少显存?•1.如果想要在某个模型基础上做全参数微调,究竟需要多少显存?•2.为什么SFT之后感觉LLM傻了?•3.SFT指令微调数据如何构建?•4.领域模型ContinuePreTrain数据选取?•5.领域数据训练后,通用能力往往会有所下降,如何缓解模型遗忘通用能力?•6.领域模型ContinuePreTrain,如何让模型在预训练过程中就学习到更多的知识?•7.进行SFT操作的时候,基座模型选用Chat还是Base?•8.领域模型微调指令&数据输入格式要求?•9.领域模型微调领域评测集构建?•10.领域模型词表扩增是不是有必要的?•11.如何训练自己的大模型?•12.训练中文大模型有啥经验?•13.指令微调的好处?•14.预训练和微调哪个阶段注入知识的?•15.想让模型学习某个领域或行业的知识,是应该预训练还是应该微调?•16.多轮对话任务如何微调模型?•17.微调后的模型出现能力劣化,灾难性遗忘是怎么回事?•18.微调模型需要多大显存?•19.大模型LLM进行SFT操作的时候在学习什么?•20.预训练和SFT操作有什么不同•21.样本量规模增大,训练出现OOM错•22.大模型LLM进行SFT如何对样本进行优化?•23.模型参数迭代实验•24.微调大模型的一些建议•25.微调大模型时,如果batchsize设置太小会出现什么问题?•26.微调大模型时,如果batchsize设置太大会出现什么问题?•27.微调大模型时,batchsize如何设置问题?•28.微调大模型时,优化器如何?•29.哪些因素会影响内存使用?•30.进行领域大模型预训练应用哪些数据集比较好?•31.用于大模型微调的数据集如何构建?•32.大模型训练loss突刺原因和解决办法•32.1大模型训练loss突刺是什么?•32.2为什么大模型训练会出现loss突刺?•32.3大模型训练loss突刺如何解决?扫码加查看更多一般nB的模型,最低需要16-20nG的显存。(cpuoffload基本不开的情况下)vicuna-7B为例,官方样例配置为4*A10040G,测试了一下确实能占满显存。(globalbatchsize128,maxlength2048)当然训练时用了FSDP、梯度累积、梯度检查点等方式降显存。2.为什么SFT之后感觉LLM傻了?SFT的重点在于激发大模型的能力,SFT的数据量一般也就是万恶之源alpaca数据集的52k量级,相比于预训练的数据还是太少了。如果抱着灌注领域知识而不是激发能力的想法,去做SFT的话,可能确实容易把LLM弄傻。指令微调是为了增强(或解锁)大语言模型的能力。其真正作用:指令微调后,大语言模型展现出泛化到未见过任务的卓越能力,即使在多语言场景下也能有不错表现。3.SFT指令微调数据如何构建?4.领域模型ContinuePreTrain数据选取?技术标准文档或领域相关数据是领域模型ContinuePreTrain的关键。因为领域相关的网站和资讯重要性或者知识密度不如书籍和技术标准。5.领域数据训练后,通用能力往往会有所下降,如何缓解模型遗忘通用能力?那么这个比例多少比较合适呢?目前还没有一个准确的答案。主要与领域数据量有关系,当数据量没有那么多时,一般领域数据与通用数据的比例在1:5到1:10之间是比较合适的。6.领域模型ContinuePreTrain,如何让模型在预训练过程中就学习到更多的知识?领域模型ContinuePreTrain时可以同步加入SFT数据,即MIP,Multi-TaskInstructionPreTraining。预训练过程中,可以加下游SFT的数据,可以让模型在预训练过程中就学习到更多的知识。7.进行SFT操作的时候,基座模型选用Chat还是Base?•原版答案:•新版答案:1.代表性。应该选择多个有代表性的任务;2.数据量。每个任务实例数量不应太多(比如:数百个)否则可能会潜在地导致过拟合问题并影响模型性能;3.不同任务数据量占比。应该平衡不同任务的比例,并且限制整个数据集的容量(通常几千或几万),防止较大的数据集压倒整个分布。•动机:仅仅使用领域数据集进行模型训练,模型很容易出现灾难性遗忘现象.•解决方法:通常在领域训练的过程中加入通用数据集仅用SFT做领域模型时,资源有限就用在Chat模型基础上训练,资源充足就在Base模型上训练。(资源=数据+显卡)资源充足时可以更...
发表评论取消回复