首页 > 其他分享 >大模型面试复习

大模型面试复习

时间:2023-08-24 22:46:57浏览次数:55  
标签:HBM 复习 训练 SRAM 模型 面试 prefix FlashAttention

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技术来减少内存访问,具体来说:

  1. 从HBM中加载输入数据(K,Q,V)的一部分到SRAM中
  2. 计算这部分数据的Attention结果
  3. 更新输出到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

相关文章

  • 总结一下强化学习中的面试问题
    1、PPO算法运用了clip函数限制取值范围,为什么还要加上min呢?2、AC架构与PPO之间的区别?3、什么是装饰器?4、lamada函数?5、什么是model-based与model-free?6、python中map函数的用法?7、准确率、精确率、召回率、F1score的意义?8、PPO的上一个策略收集到的经验可以用多少次?......
  • 【面试题总结】
    【面试题总结】持续更新~~~【面试题一】数据库的三大范式【面试题二】MySQL的索引类型及作用【面试题三】事务的特性和隔离级别【面试题四】脏读&不可重复&读幻读【面试题五】mysql5.7以后默认隔离级别【面试题六】qps&tps&并发量&pv&uv【面试题七】什么......
  • 交通网络分析性能再升级,SuperMap iServer新增开启SSC分析模型
    导语SSC分析模型,全名SuperMapShortCut,底层采用ContractionHierarchies(简称CH)算法,该算法旨在通过对图形进行预处理和优化来降低最佳路径分析的时间复杂度。SuperMapiServer11i(2023)(以下简称iServer)对交通网络分析服务的最佳路径分析,支持开启SSC分析模型,可大幅提升分析性能......
  • DistilBertModel模型的简单解释
    DistilBertModel((embeddings):Embeddings((word_embeddings):Embedding(30522,768,padding_idx=0)(position_embeddings):Embedding(512,768)(LayerNorm):LayerNorm((768,),eps=1e-12,elementwise_affine=True)(dropout):Dropout(p=0.1,in......
  • Linux基础命令:应付测试面试
    1.进入文件命令vi文件名(一定要知道是那个目录下的文件) 下图为进入该文件: 2.编辑文件:先按I进入编辑模式就可以随便写入了保存之前一定要先退出编辑模式:按ESC接下来就是保存:    :q 不保存直接退出    ......
  • 超越界限:大模型应用领域扩展,探索文本分类、文本匹配、信息抽取和性格测试等多领域应用
    超越界限:大模型应用领域扩展,探索文本分类、文本匹配、信息抽取和性格测试等多领域应用随着ChatGPT和GPT-4等强大生成模型出现,自然语言处理任务方式正在逐步发生改变。鉴于大模型强大的任务处理能力,未来我们或将不再为每一个具体任务去finetune一个模型,而是使用同一个大模型......
  • 千人千面:来看看这道简单的SQL面试题——设计一个学生成绩表
    今早上班后清理工位时,发现这张废纸,记录一下。 下面是这个简单的数据库应用面试题1、设计一个学生成绩表(DDL或者是逻辑结构)2、用一条SQ语句查询总成绩大于270分的学生3、用一条SQL语句查询出每门课都大于80分的学生 ......
  • transformer模型首次体验代码
    首先是安装python,更新pip源到清华源。安装transformerpipinstalltransformer安装jupyterlab,也简单一行pipinstalljupyterlab现在不想用anaconda了,因为国内没有源了,国外的又慢。直接用pip吧。然后开始体验之旅吧:打开终端,输入:jupyterlab会弹出一个web页面,代开后......
  • 三维模型OBJ格式轻量化压缩变形现象分析
    三维模型OBJ格式轻量化压缩变形现象分析  三维模型的OBJ格式轻量化压缩是一种常见的处理方法,它可以减小模型文件的体积,提高加载和渲染效率。然而,在进行轻量化压缩过程中,有时会出现模型变形的现象,即压缩后的模型与原始模型在外观上存在差异。本文将从数据丢失、算法优化和参......
  • 浅析三维模型OBJ格式轻量化处理常见问题与处理措施
    浅析三维模型OBJ格式轻量化处理常见问题与处理措施 在三维模型OBJ格式轻量化处理过程中,可能会遇到一些问题。以下是一些常见问题以及相应的解决方法:1、文件大小过大:OBJ格式的三维模型文件通常包含大量的顶点、面片和纹理信息,导致文件体积较大。这会影响加载和渲染速度。解决......