大模型(LLMs)推理面来自:AiGC面试宝典宁静致远2023年10月22日22:431.为什么大模型推理时显存涨的那么多还一直占着?2.大模型在gpu和cpu上推理速度如何?7B量级下:3.推理速度上,int8和fp16比起来怎么样?根据实践经验,int8模式一般推理会明显变慢(huggingface的实现)4.大模型有推理能力吗?大模型有推理能力。有下面2个方面的体现:ChatGPT拥有in-contextcorrection的能力,即如果说错了,给出矫正,ChatGPT能“听懂”错在哪儿了,并向正确的方向修正。in-contextcorrection要比in-contextlearning难了太多,描述越详细清楚,ChatGPT回答得越好。要知道,越详细的描述,在预训练的文本里越难匹配到的。•大模型(LLMs)推理面•1.为什么大模型推理时显存涨的那么多还一直占着?•2.大模型在gpu和cpu上推理速度如何?•3.推理速度上,int8和fp16比起来怎么样?•4.大模型有推理能力吗?•5.大模型生成时的参数怎么设置?•6.有哪些省内存的大语言模型训练/微调/推理方法?•6.1如何估算模型所需的RAM?•6.2Fp16-mixedprecision•6.3Int8-bitsandbytes•6.4LoRA•6.5GradientCheckpointing•6.6TorchFSDP+CPUoffload•7.如何让大模型输出合规化•8.应用模式变更•9.模型输出的分布比较稀疏,怎么处理?1.首先,序列太长了,有很多Q/K/V;2.其次,因为是逐个预测nexttoken,每次要缓存K/V加速解码。•cpu推理速度约10token/s;•单卡A6000和8核AMD的推理速度通常为10:1。扫码加查看更多在询问ChatGPT互联网上并不存在内容的时候,能给出较好答案(如用ChatGPT学建模);ChatGPT能通过信息猜你心中的想法;你可以制定一个全新的游戏规则让ChatGPT和你玩,ChatGPT可以理解。5.大模型生成时的参数怎么设置?生成模型预测调参建议:建议去调整下top_p,num_beams,repetition_renalty,temperature,do_sample=True;数据生成有重复,调高repetition_renalty;生成任务表达单一的,样本也不多的,可适当调低temperature,生成的样子跟训练集的比较像;如果要复现训练集的效果,temperature=0.01即可。以上是经验参数,具体调参根据任务而定,不是固定的。6.有哪些省内存的大语言模型训练/微调/推理方法?举例来说,即使RTX3090有着24GB的RAM,是除了A100之外显存最大的显卡。但使用一块RTX3090依然无法fp32精度训练最小号的LLaMA-6B。•参数解释:top_p=0.9,#Moderatelyincreasetheprobabilitythresholdofnucleussamplingtoincreasethequantityofcandidatetokensandincreasegenerationdiversity.temperature=1.0,#Thepreviouslowtemperatureparametercouldleadtoaseverepolarizationintheprobabilitydistributionofgeneratedwords,whichdegeneratesthegenerationstrategyintogreedydecoding.do_sample=True,#do_sampleparameterissettoFalsebydefault.AftersettingtoTrue,thegenerationmethodsturnintobeam-searchmultinomialsamplingdecodingstrategy.no_repeat_ngram_size=6,#Configuretheprobabilityofthenextrepeatingn-gramto0,toensurethattherearenon-gramsappearingtwice.Thissettingisanempiricalpreliminaryexploration.repetition_penalty=1.8,#Forwordsthathaveappearedbefore,inthesubsequentpredictionprocess,wereducetheprobabilityoftheirreoccurrencebyintroducingtherepetition_penaltyparameter.Thissettingisanempiricalpreliminaryexploration.•动机:大模型(LLMs)现在是NLP领域的最主流方法之一,但是大模型的训练/微调/推理需要的内存也越来越多。•Memory-Efficient的LLMs的训练/微调/推理方法6.1如何估算模型所需的RAM?首先,我们需要了解如何根据参数量估计模型大致所需的RAM,这在实践中有很重要的参考意义。我们需要通过估算设置batch_size,设置模型精度,选择微调方法和参数分布方法等。接下来,我们用LLaMA-6B模型为例估算其大致需要的内存。首先考虑精度对所需内存的影响:其次,考虑模型需要的RAM大致分三个部分:对于常用的AdamW来说,需要储存两倍的模型参数(用来储存一阶和二阶momentum)。除此之外,CUDAkernel也会占据一些RAM,大概1.3GB...
发表评论取消回复