当前位置: 首页 > news >正文

南京网站设计培训网站首页大图轮播

南京网站设计培训,网站首页大图轮播,阿里巴巴官网首页电脑版,如何看网站关键词从FasterTransformer源码解读开始了解大模型#xff08;1.1#xff09;一个decoder-only的模型长啥样 写在前面的话 对于一个没有接触过LLM的初学者来说#xff0c;如果想要了解一个大模型的推理框架#xff0c;首先应该知道大模型整个的工作原理是怎样的#xff0c;知道…从FasterTransformer源码解读开始了解大模型1.1一个decoder-only的模型长啥样 写在前面的话 对于一个没有接触过LLM的初学者来说如果想要了解一个大模型的推理框架首先应该知道大模型整个的工作原理是怎样的知道transformers的结构是怎么生成词的否则很容易会在读代码的过程中越读越迷糊进入一种“我在哪里我在看什么这一段是做什么的”困惑状态所以在此先推荐从来没有接触过相关知识的同学去读一下Attention is all you need的论文原文。当然对于一些初学者来说读完这篇论文也会陷入一种半懂不懂的困惑状态但是会在心中搭建起一个隐隐约约的初步的形状在后面再回到工程代码的阅读中这个隐隐约约的形状会被一步一步填充起来变成一个清晰的样子。这里的FT源码解读的第二篇文章会直接从结构开始讲起就不会讨论那么多“为什么这个结构是有效的”“为什么多头注意力要这样做设计”的问题了。 在写这篇文档的过程中我发现自己对LLM框架的认知也并没有十分地清晰明了如果整个解读过程中有不正确之处或者不够清晰的地方也希望老师同学们能够指出和讨论 Orz 零、最初的样子 让我们回顾一下最初始的时候Attention is all you need中所描述的encoder-decoder结构是怎样的 这里是原论文中的结构刚开始看是否有些半懂不懂个人认为这张结构解释图对初学者来说并不能算得上清晰明了hhhh拆开来看的话整个结构分为两块左边的encoder和右边的decoder在encoder的这半边不做任何的ids的输出只负责处理输入数据。真正输出ids的则是decoder的部分负责自回归地进行处理往外一个一个吐词儿(从output probabilities中选出ids)在一些早期的大模型如Bart、T5等等依然遵循了encoder-decoder的结构。 一、decoder-only的样子 经过一段时间的代码模型的发展很多流行的模型比如gpt2还有现在最流行的llama系列等等都采用了decoder-only的样子而从结构上来看llama比gpt2bloom这种还要更简单一些但是却变得更加普遍和流行。所谓大道至简大概就是这个道理罢。 decoder-only大概长成下面这个样子 decoder-only只保留了decoder的MHA的处理结构MHA-AddNorm-FFN-AddNorm对于输入来说是一整个扔进去decoder结构的处理对于生成阶段依然是decoder结构所以才叫decoder-only。在FasterTransformer中它将输入阶段的decoder称作ContextDecoder阶段即上下文解码阶段在有些框架中则习惯性地照旧称为encoder阶段但实际上处理有所区别也有称为prefill阶段的而实际自回归产生ids输出的阶段依然叫做decoder阶段。 可以看一下图中的流程输入的ids经过embedding之后会为句子中的每一个id生成一个hidden states隐藏状态在整个layer里的计算过程中其实都是以hidden stats隐藏状态的样子参与到运算中。 之后隐藏状态会进入到layers中进行计算每一层layer在HuggingFace的transformer源码中称之为blocks都包含了自己的layernorm、MHA、add residual、FFN等结构。在完成某一层(layer x)的计算后输出得到的hidden states会作为下一层(layer x1)的输入再次进入layer运算直到所有的层计算完毕最后一层输出的hidden states再经过一个lm head线性层产生一个跟词表长度一样长的raw logits数组对这个raw logits进行softmax和采样选取最终就可以得到这一次生成的结果output id了。 如果这个output id不是end id结束词可以将它作为输入再次喂给整个decoder结构就实现一个自回归生成的过程。 llm小知识-模型的差异这里的decoder-only模型并不是唯一标准化的有些模型会在一些地方少掉第一次 pre-layernorm或者替换layernorm为其他的归一化操作比如llama使用的是RMSnorm有些是会增加或减少layernorm中的bias有些模型则是会插入一些差异性的norm比如google的gemma但是总体来说MHA和FFN这两个大模块都不会缺失或者产生大的变化在这两个模块计算完成后的add residual操作和norm操作也很少会做一些大的结构上的变化 在ft实际的处理逻辑中在context decoder阶段其中MHA依然遵守着前向的规则即每一个词都只会跟自己前面的词计算注意力得分并且将MHA计算注意力过程中所得到的K和V给记录下来即K/V Cache以在后续的计算过程中节省计算时间在完成了context-decoder时最终会得到一个logits这个logits将会成为生成的第一个词也是自回归decoder阶段的第一个输入的词由此整个自回归生成就开始循环。 有些新入门的同学可能会疑惑隐藏状态是如何生成的MHA或者FFN这些必要模块具体是怎么进行计算的算出来又都是什么样的结果呢这里如果着急可以直接去看HuggingFace的transformer的源码其中每个modeling都会有自己的对应实现如果不着急的话后续的源码解读都会一一给出答案。 二、从源码角度来看结构 我们再从代码的角度来看一下FT的源码在搭建一个模型的时候是否符合我们刚刚描述的结构. 打开ft的源码进入gpt的目录src/fastertransformer/models/multi_gpu_gpt可以看见从model层gpt所有需要的模块和代码 其中模型的主文件叫做ParallelGpt它负责一整个模型的组装和模型的计算。就是我们之前所描述的一整个的decoder-only结构以及其他的一些内容。 可以看见这里分为两个部分负责处理输入部分的叫做ParallelGptContextDecoder就是我们之前所描述的负责做context decoder的结构负责做生成的叫做ParallelGptDecoder由它来完成output ids的生成。 另外还有两个weight相关的模块代码ParallelGptWeight对应着一整个的ParallelGpt计算所需要的权重由这个模块负责进行管理。而ParallelGptWeight中则通过一个数组来管理每一层layers的单独的权重每一层单独的权重是由ParallelGptDecoderLayerWeight来组成和管理。 而在ParallelGptContextDecoder以及ParallelGptDecoder中所使用到的比如MHA模块以及FFN模块等等则全都在另一个目录下src/fastertransformer/layers这个目录下进行管理。在这个目录下你可以找到所有关于单层layer中需要的计算和处理的模块包括不同模型的MHA或者FFN等等。 从上面也可以看见FT的文件组织基本符合我们所描述的模型结构模型models下面有自己的结构每个结构中的层layers中所包含的结构则由另外一个layers文件夹中的代码文件来进行管理和实现。 下一回预告 下一回将会正式开始源码解读的环节从ParallelGpt.cc的代码开始讲解。伴随着源码讲解也会附加一些大模型工程上的内容和概念尽量做到说清楚说明白。不过由于ft源码本身在上面增加了很多的补丁和if/else所以需要稍微做一些抽丝剥茧一般的筛选。
http://www.pierceye.com/news/535716/

相关文章:

  • 城市分站seoseo相关岗位
  • 购物网站开发语言wordpress分类指定页面
  • 中企动力做网站的优势做招聘网站经营范围
  • 重庆企业网站排名优化方法百度录入网站
  • 做薪酬调查有哪些网站校园二手交易网站设计的原则
  • 建设电子商务网站的方法有?网站架构图
  • 网站运营阶段wordpress首页没有显示文章图片
  • 2个小时学会网站建设手机兼职快递录单员
  • 以前有个自助建设网站东莞路桥投资建设公司招聘
  • 电子游艺网站开发常德seo技术
  • 河北邢台wap网站建设南昌网页制作
  • 山东建设人才网站高端母婴网站模板
  • 物业服务网站建设佛山做网站公司有哪些
  • 企业网站模板中文网站域名名字
  • 在服务器网站上做跳转网页设计代码动漫
  • 科协网站建设的意见合肥哪里有做网页的地方
  • 为企业做网站策划案永康网站推广
  • 做个企业网网站怎么做linux建网站
  • 专业建站公司主要做什么wordpress加入下载标签
  • 韩都衣舍网站建设方案美食网站怎么做dw
  • 电商网站开发 参考文献wordpress验证码注册
  • ic外贸网站建设wordpress和shopex
  • 网站技术制作流程图国内顶尖小程序开发公司
  • 免费网站建设下载优化关键词规则
  • 网站浮动窗口如何做自己怎么做淘宝客网站
  • 石材外贸在哪个网站做网页版 微信
  • 网站开发属于程序员吗sem 优化软件
  • 公司做网站是管理费用小程序官方文档
  • 公司网站推广技巧响水网站设计
  • 徐州本地网站wap页面是什么