一镜到底,通过Llama大模型架构图看透transformers原理
一镜到底,通过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原理的更多相关文章
- ansible笔记(一)--架构图以及工作原理
一.ansible架构图 上图为ansible的基本架构,从上图可以了解到其由以下部分组成: 核心:ansible 核心模块(Core Modules):这些都是ansible自带的模块 扩展模块(C ...
- 华为高级研究员谢凌曦:下一代AI将走向何方?盘古大模型探路之旅
摘要:为了更深入理解千亿参数的盘古大模型,华为云社区采访到了华为云EI盘古团队高级研究员谢凌曦.谢博士以非常通俗的方式为我们娓娓道来了盘古大模型研发的"前世今生",以及它背后的艰难 ...
- Hadoop1-认识Hadoop大数据处理架构
一.简介概述 1.什么是Hadoop Hadoop是Apache软件基金会旗下的一个开源分布式计算平台,为用户提供了系统底层细节透明的分布式基础架构 Hadoop是基于java语言开发,具有很好的跨平 ...
- 阿里巴巴飞天大数据架构体系与Hadoop生态系统
很多人问阿里的飞天大数据平台.云梯2.MaxCompute.实时计算到底是什么,和自建Hadoop平台有什么区别. 先说Hadoop 什么是Hadoop? Hadoop是一个开源.高可靠.可扩展的分布 ...
- 大数据架构师NoSQL建模技术
从数据建模的角度对NoSQL家族系统做了比较简单的比较,并简要介绍几种常见建模技术. 1.前言 为了适应大数据应用场景的要求,Hadoop以及NoSQL等与传统企业平台完全不同的新兴架构迅速地崛起.而 ...
- 大数据架构师基础:hadoop家族,Cloudera产品系列等各种技术
大数据我们都知道hadoop,可是还会各种各样的技术进入我们的视野:Spark,Storm,impala,让我们都反映不过来.为了能够更好的架构大数据项目,这里整理一下,供技术人员,项目经理,架构师选 ...
- 大数据架构:flume-ng+Kafka+Storm+HDFS 实时系统组合
http://www.aboutyun.com/thread-6855-1-1.html 个人观点:大数据我们都知道hadoop,但并不都是hadoop.我们该如何构建大数据库项目.对于离线处理,ha ...
- PowerDesigner 学习:十大模型及五大分类
个人认为PowerDesigner 最大的特点和优势就是1)提供了一整套的解决方案,面向了不同的人员提供不同的模型工具,比如有针对企业架构师的模型,有针对需求分析师的模型,有针对系统分析师和软件架构师 ...
- 软件架构设计学习总结(4):大数据架构hadoop
摘要:Admaster数据挖掘总监 随着互联网.移动互联网和物联网的发展,谁也无法否认,我们已经切实地迎来了一个海量数据的时代,数据调查公司IDC预计2011年的数据总量将达到1.8万亿GB,对这些海 ...
- PowerDesigner 15学习笔记:十大模型及五大分类
个人认为PowerDesigner 最大的特点和优势就是1)提供了一整套的解决方案,面向了不同的人员提供不同的模型工具,比如有针对企业架构师的模型,有针对需求分析师的模型,有针对系统分析师和软件架构师 ...
随机推荐
- Codeforces Round 975 Div.2 C题 解析
C题 题目链接:Problem - C - Codeforces 题目描述 思路 对于这道题,首先我们能想到最小的组数肯定是数量最多的那个卡片的数量(mx),因为这个值的每一个卡片不能在同一个组里面. ...
- php字符串练习题
把以前发给别人的练习题邮件备份记录一下 1.用php编写统计二维数组内某个字符出现的次数的一个函数.给定二维数组和字符串,返回这个字符串在二维数组中出现的次数. 例: 数组如下: $array=arr ...
- C#-公众号H5页面授权获取用户code、openid、unionid
一:配置信息 公众号设置: 1:设置 IP白名单(所在的服务器ip).记录公众号APPID和APPsecret; 2:设置 网页授权域名; 二:页面授权----[html中获取code] 1:页面引入 ...
- (Python基础教程之三)Python代码中添加注释
Python基础教程 在SublimeEditor中配置Python环境 Python代码中添加注释 Python中的变量的使用 Python中的数据类型 Python中的关键字 Python字符串操 ...
- echarts中label上下两行展示
如上图展示 series: [ //系列列表 { name: '设备状态', //系列名称 type: 'pie', //类型 pie表示饼图 radius: ['50%', '70%'], //饼图 ...
- 系统日志查询之journalctl
journalctl是什么 查询系统日志的工具 journalctl -xe是什么意思 -xe是排查问题时最常用的参数:-e 从结尾开始看-x 相关目录(如:问题相关的网址) journalctl - ...
- 聊一下怎么10分钟速水中危CVE
题目是真的.今天晚上刚接触关于CVE的审计和提交.只能说:牛逼的是真牛逼,水的是真水. 我接下来教你,怎么在10分钟里找到一个CVE的中危漏洞并且提交.然后你就可以去咸鱼接单了,一个一铂快 打开htt ...
- SQL Server创建用户一直提示用户已存在的解决办法
背景:复制的老数据库,创建账号onlyread时,一直提示数据库里有这个用户名.报错如下:"用户.组或角色'onlyread'在当前数据库中已存在." 解决方法: 1. 查询数据库 ...
- cas3.5配置LDAP域控
一. 安装cas3.5 点击下载 CAS 3.5.2 :CAS 解压缩下载的 cas-server-3.5.2-release.zip,在 %CAS%\modules文件夹中找到cas-server- ...
- 【Amadeus原创】idea实现java前后端代码自动化调试
代码结构: 1,meeting-server 后端 springBoot maven 2,metting-ui 前端 nodejs 3,两个文件夹都在early-meeting文件夹中 如何在 ...