一镜到底,通过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. Codeforces Round 975 Div.2 C题 解析

    C题 题目链接:Problem - C - Codeforces 题目描述 思路 对于这道题,首先我们能想到最小的组数肯定是数量最多的那个卡片的数量(mx),因为这个值的每一个卡片不能在同一个组里面. ...

  2. php字符串练习题

    把以前发给别人的练习题邮件备份记录一下 1.用php编写统计二维数组内某个字符出现的次数的一个函数.给定二维数组和字符串,返回这个字符串在二维数组中出现的次数. 例: 数组如下: $array=arr ...

  3. C#-公众号H5页面授权获取用户code、openid、unionid

    一:配置信息 公众号设置: 1:设置 IP白名单(所在的服务器ip).记录公众号APPID和APPsecret; 2:设置 网页授权域名; 二:页面授权----[html中获取code] 1:页面引入 ...

  4. (Python基础教程之三)Python代码中添加注释

    Python基础教程 在SublimeEditor中配置Python环境 Python代码中添加注释 Python中的变量的使用 Python中的数据类型 Python中的关键字 Python字符串操 ...

  5. echarts中label上下两行展示

    如上图展示 series: [ //系列列表 { name: '设备状态', //系列名称 type: 'pie', //类型 pie表示饼图 radius: ['50%', '70%'], //饼图 ...

  6. 系统日志查询之journalctl

    journalctl是什么 查询系统日志的工具 journalctl -xe是什么意思 -xe是排查问题时最常用的参数:-e 从结尾开始看-x 相关目录(如:问题相关的网址) journalctl - ...

  7. 聊一下怎么10分钟速水中危CVE

    题目是真的.今天晚上刚接触关于CVE的审计和提交.只能说:牛逼的是真牛逼,水的是真水. 我接下来教你,怎么在10分钟里找到一个CVE的中危漏洞并且提交.然后你就可以去咸鱼接单了,一个一铂快 打开htt ...

  8. SQL Server创建用户一直提示用户已存在的解决办法

    背景:复制的老数据库,创建账号onlyread时,一直提示数据库里有这个用户名.报错如下:"用户.组或角色'onlyread'在当前数据库中已存在." 解决方法: 1. 查询数据库 ...

  9. cas3.5配置LDAP域控

    一. 安装cas3.5 点击下载 CAS 3.5.2 :CAS 解压缩下载的 cas-server-3.5.2-release.zip,在 %CAS%\modules文件夹中找到cas-server- ...

  10. 【Amadeus原创】idea实现java前后端代码自动化调试

    代码结构: 1,meeting-server 后端  springBoot maven 2,metting-ui 前端    nodejs 3,两个文件夹都在early-meeting文件夹中 如何在 ...