1.MHQ和MQA
MultiQuerySelfAttention:
MHQ和MQA的不同之处仅仅在于每个头共享相同的K、V权重而Q不同享。
2.FlashAttention:核心是减少self-attention计算过程中对gpu存储单元HBM的访问,HBM的特点是存储大,但是访问速度慢,attention的中间结果会存放到hbm中,导致速度慢,尽量计算都在sram,不保存中间结果在HBM上,从而计算结果变快
GPU中存储单元主要有HBM和SRAM:HBM容量大但是访问速度慢,SRAM容量小却有着较高的访问速度。例如:A100 GPU有40-80GB的HBM,带宽为1.5-2.0TB/s;每108个流式多核处理器各有192KB的片上SRAM,带宽估计约为19TB/s。可以看出,片上的SRAM比HBM快一个数量级,但尺寸要小许多数量级。
综上,FlashAttention目的不是节约FLOPs,而是减少对HBM的访问。重点是FlashAttention在训练和预测过程中的结果和标准Attention一样,对用户是无感的,而其他加速方法做不到这点。
大模型的一个特点是序列长度越来越长了
FlashAttention应用了tiling技术来减少内存访问,具体来说:
- 从HBM中加载输入数据(K,Q,V)的一部分到SRAM中
- 计算这部分数据的Attention结果
- 更新输出到HBM,但是无需存储中间数据S和P
attention的中间结果sp的结果之前是保存在HBM上,HBM的访问速度慢,所以要减少这一过程。
3.模型训练流程
经过预训练(Pretraining)(0-1的大规模数据训练,模型的能力知识来源),有监督的微调(Supervised Fine-Tuning)-》(我们基于大模型进行fn)奖励模型(Reward Modeling)以及强化学习(Reinforcement Learing)
目前 ChatGLM是基于 Base 模型进行有监督微调(SFT)训练而来。而ChatGPT是基于人工反馈的强化学习(RLHF) Reinforcement Learing Human Feedback训练而来。
SFT微调的方式:
Prefix-Tuning
prefix-tuning: 就是训练下游任务的时候,冻住pretrained LLM参数(pytorch里面就是grad=False, 梯度不更新)只训练每个特定任务的参数(也叫prefix, 叫prefix是因为他的添加的前缀词都在输入的.
原始训练数据 x="Harry Potter, Education, Hogwarts", y="[SEP] Harry Potter is graduated from Hogwarts". 不使用prefix,直接finetune优化p(y|x)最大时的参数,prefix应用在Autoregessive Model时,
只优化p(y| prefix+x)最大时prefix引入的参数即可. 至于这个prefix具体是啥,就需要根据特定下游任务来确定。比如要做文档总结任务,那么prefix可以是"请总结这篇文档:"
prefix tuing是在输入的embedding层最前端插入prompt.
prompt tuning (P-tuning v2):
P-tuing V2为了提升模型解决NLU任务的能力,优化后的v2如图5(b)是在除了输入的embedding外,其他的Transformer层也加了前置prompt,不仅在embeding层
LoRA:
该方法的核心思想就是通过低秩分解来模拟参数的改变量,从而以极小的参数量来实现大模型的间接训练。
QLoRA:精度量化 (论文: QLORA: Efficient Finetuning of Quantized LLMs),使用一种新颖的高精度技术将预训练模型量化为 4 bit,然后添加一小组可学习的低秩适配器权重,这些权重通过量化权重的反向传播梯度进行微调。QLORA 有一种低精度存储数据类型(4 bit),还有一种计算数据类型(BFloat16)。实际上,这意味着无论何时使用 QLoRA 权重张量,我们都会将张量反量化为 BFloat16,然后执行 16 位矩阵乘法。QLoRA提出了两种技术实现高保真 4 bit微调——4 bit NormalFloat(NF4) 量化和双量化。 AdaLoRA:在lora的基础上进行优化,不是所有的层的weight都进行相同的zhi,重要的加,不重要的减少 (论文:ADAPTIVE BUDGET ALLOCATION FOR PARAMETEREFFICIENT FINE-TUNING),是对LoRA的一种改进,它根据重要性评分动态分配参数预算给权重矩阵。具体做法如下:
标签:HBM,复习,训练,SRAM,模型,面试,prefix,FlashAttention From: https://www.cnblogs.com/qiaoqifa/p/17655353.html