一镜到底,通过Llama大模型架构图看透transformers原理

Llama Nuts and Bolts是Github上使用Go语言从零重写Llama3.1 8B-Instruct模型推理过程(80亿参数规模)的实战类开源项目,其作者是来自土耳其的Adil Alper DALKIRAN。

如果你对于 LLM(大语言模型)和 Transformers 的工作原理感兴趣,并对相关概念略知一二,但仍想深入理解,那么这个项目非常适合你!

这个项目最大的特色是:

  • 使用Go语言从零开发,不依赖任何机器学习库和数学计算库,走出 Python 生态的舒适区

  • 配备完整的大模型推理的流程图,透视大模型如何运作的细节

  • 完备的文档和代码说明,能够亲身体验机器学习的基础知识、Transformers 模型、注意力机制、旋转位置嵌入(RoPE)以及背后的数学原理

Llama Nuts and Bolts项目代码和文档地址:

需要注意的是,该项目仅为教育目的开发,未经过生产环境或商业使用测试。其目标是创建一个实验性项目,能够在完全不依赖 Python 生态系统的情况下对 Llama 3.1 8B-Instruct 模型进行推理。

这个项目使用Go语言,不使用任何现有的机器学习或数学计算库,从零实现一个控制台应用程序,通过使用预训练的 Llama 3.1 8B-Instruct 模型参数生成文本输出。

开发这个项目的过程使作者深入研究了 transformers 模型的内部结构,并发现了之前没有意识到的细节,包括作者已经了解的理论知识,还有需要重新学习的新内容,并从中获得了新见解。

Llama Nuts and Bolts 的第一个版本于 2024 年 3 月 12 日发布,适配 Llama 2 模型,而其最新的版本支持Llama 3.1 8B-Instruct模型。

话不多说,先上图。

Llama transformers 架构的特点

与经典transformers架构相比,Llama 的transformers架构具有几个显著特征:

  • 仅解码器架构 Decoder-Only Architecture:Llama 纯文本模型只有解码器decorder,没有encoder,这意味着它仅专注于根据输入上下文生成序列,无需编码器,因此它主要依赖自注意力机制来捕捉输入序列中的依赖关系。Llama 是一个仅解码器模型,这意味着它仅专注于根据输入上下文生成序列。这与像 BERT 或 T5 这样的编码器-解码器模型形成对比,后者同时利用编码器来理解输入和解码器来生成输出。
  • 自注意力机制 Self-Attention Mechanism:Llama 纯文本模型不包括交叉注意力层。Llama 自注意力层用于解码器encoder内处理输入序列,而交叉注意力层在编码器-解码器模型中更为常见,其中编码器处理一个输入(例如,源语言),解码器则基于该处理信息生成输出。Llama 使用自注意力以捕捉输入文本中的依赖关系,而无需交叉注意力层。这使其能够生成连贯且上下文相关的文本。

一镜到底,通过Llama大模型架构图看透transformers原理的更多相关文章

  1. ansible笔记(一)--架构图以及工作原理

    一.ansible架构图 上图为ansible的基本架构,从上图可以了解到其由以下部分组成: 核心:ansible 核心模块(Core Modules):这些都是ansible自带的模块 扩展模块(C ...

  2. 华为高级研究员谢凌曦:下一代AI将走向何方?盘古大模型探路之旅

    摘要:为了更深入理解千亿参数的盘古大模型,华为云社区采访到了华为云EI盘古团队高级研究员谢凌曦.谢博士以非常通俗的方式为我们娓娓道来了盘古大模型研发的"前世今生",以及它背后的艰难 ...

  3. Hadoop1-认识Hadoop大数据处理架构

    一.简介概述 1.什么是Hadoop Hadoop是Apache软件基金会旗下的一个开源分布式计算平台,为用户提供了系统底层细节透明的分布式基础架构 Hadoop是基于java语言开发,具有很好的跨平 ...

  4. 阿里巴巴飞天大数据架构体系与Hadoop生态系统

    很多人问阿里的飞天大数据平台.云梯2.MaxCompute.实时计算到底是什么,和自建Hadoop平台有什么区别. 先说Hadoop 什么是Hadoop? Hadoop是一个开源.高可靠.可扩展的分布 ...

  5. 大数据架构师NoSQL建模技术

    从数据建模的角度对NoSQL家族系统做了比较简单的比较,并简要介绍几种常见建模技术. 1.前言 为了适应大数据应用场景的要求,Hadoop以及NoSQL等与传统企业平台完全不同的新兴架构迅速地崛起.而 ...

  6. 大数据架构师基础:hadoop家族,Cloudera产品系列等各种技术

    大数据我们都知道hadoop,可是还会各种各样的技术进入我们的视野:Spark,Storm,impala,让我们都反映不过来.为了能够更好的架构大数据项目,这里整理一下,供技术人员,项目经理,架构师选 ...

  7. 大数据架构:flume-ng+Kafka+Storm+HDFS 实时系统组合

    http://www.aboutyun.com/thread-6855-1-1.html 个人观点:大数据我们都知道hadoop,但并不都是hadoop.我们该如何构建大数据库项目.对于离线处理,ha ...

  8. PowerDesigner 学习:十大模型及五大分类

    个人认为PowerDesigner 最大的特点和优势就是1)提供了一整套的解决方案,面向了不同的人员提供不同的模型工具,比如有针对企业架构师的模型,有针对需求分析师的模型,有针对系统分析师和软件架构师 ...

  9. 软件架构设计学习总结(4):大数据架构hadoop

    摘要:Admaster数据挖掘总监 随着互联网.移动互联网和物联网的发展,谁也无法否认,我们已经切实地迎来了一个海量数据的时代,数据调查公司IDC预计2011年的数据总量将达到1.8万亿GB,对这些海 ...

  10. PowerDesigner 15学习笔记:十大模型及五大分类

    个人认为PowerDesigner 最大的特点和优势就是1)提供了一整套的解决方案,面向了不同的人员提供不同的模型工具,比如有针对企业架构师的模型,有针对需求分析师的模型,有针对系统分析师和软件架构师 ...

随机推荐

  1. delphi 图形图像处理 Image32

    delpher 越来越少了,但不能掩盖它的优秀,很外前看到了 Image32,但发现用它的人很少,这段时间整理了它的资料,重新组合了一个DEMO,也可以说是个小工具,分享出来. Image32 关于I ...

  2. CommonsCollections1(基于ysoserial)

    准备环境 JDK1.7(7u80).commons-collections(3.x 4.x均可这里使用3.2版本) JDK:https://repo.huaweicloud.com/java/jdk/ ...

  3. 数据库研发人员必看的MySQL 8.0新特性

    本文汇总了MySQL8.0 面向开发的新特性,总共有12个新特性,有想快速了解8.0新特性的朋友,可以看一下哈文章目录:1.公用表达式支持-CTE2.窗口函数3.表达式作为默认值:4.CHECK支持5 ...

  4. Python3.6,3.7,3.8版本对比

    本文列举了Python3.6.3.7.3.8三个版本的新特性,学习它们有助于提高对Python的了解,跟上最新的潮流. 一.Python3.6新特性 1.新的格式化字符串方式 新的格式化字符串方式,即 ...

  5. 『玩转Streamlit』--表单Form

    在Streamlit中,Form组件是一种特殊的UI元素,允许用户输入数据而不立即触发应用的重新运行. 这对于创建需要用户输入多个参数后再进行处理的交互式表单非常有用. 1. 概要 Form组件的主要 ...

  6. 2023 秋季学期 六周集训 Misc方向

    by 高鹏鸿.密语 写在前面,记录和交流是一个很好的习惯,建议可以自己先搭建一个博客用于存储自己的做题记录以及方便交流.还有,对于Misc方向,灵活应对十分重要,一定要善用搜索引擎. 还有一点,给大家 ...

  7. Java根据前端返回的字段名进行查询数据

    在Java后端开发中,我们经常需要根据前端传递的参数(如字段名)来动态查询数据库中的数据.这种需求通常出现在需要实现通用查询功能或者复杂查询接口的场景中.为了实现这个功能,我们需要结合Java的反射机 ...

  8. 前端每日一知之BFC

    脑图在线链接 本文内容依据[js每日一题]公众号精彩文章总结而来

  9. 工作中这样用MQ,很香!

    前言 消息队列(MQ)是分布式系统中不可或缺的技术之一. 对很多小伙伴来说,刚接触MQ时,可能觉得它只是个"传话工具",但用着用着,你会发现它简直是系统的"润滑剂&quo ...

  10. 【C#】【FFmpeg】获取电脑可用音视频设备并输出到下拉列表框

    [重要]不要边看文本边操作,本文由错误纠正,先看完一遍再说. 要使用的FFmpeg命令 ffmpeg -list_devices true -f dshow -i dummy 会输出的信息 通过正则取 ...