探索和构建 LLaMA 3 架构:深入探讨组件、编码和推理技术(八)Transformer块

embedded/2024/9/22 19:43:49/

探索和构建 LLaMA 3 架构:深入探讨组件、编码和推理技术(八)编码器块

Transformer块

在这里插入图片描述

由于 只关注模型的推理,因此 只会研究transformer块

class EncoderBlock(nn.Module):def __init__(self, args: ModelArgs):super().__init__()self.n_heads = args.n_headsself.dim = args.dimself.head_dim = args.dim // args.n_headsself.attention = SelfAttention(args)self.feed_forward = FeedForward(args)# normalize BEFORE the self attentionself.attention_norm = RMSNorm(args.dim, eps=args.norm_eps)# Normalization BEFORE the feed forwardself.ffn_norm = RMSNorm(args.dim, eps=args.norm_eps)def forward(self, x: torch.Tensor, start_pos: int, freqs_complex: torch.Tensor):# (B, seq_len, dim) + (B, seq_len, dim) -> (B, seq_len, dim)h = x + self.attention.forward(self.attention_norm(x), start_pos, freqs_complex)out = h + self.feed_forward.forward(self.ffn_norm(h))return out

系列博客

探索和构建 LLaMA 3 架构:深入探讨组件、编码和推理技术(一)Llama3 模型 架构
https://duanzhihua.blog.csdn.net/article/details/138208650
探索和构建 LLaMA 3 架构:深入探讨组件、编码和推理技术(二)RoPE位置编码
https://duanzhihua.blog.csdn.net/article/details/138212328

探索和构建 LLaMA 3 架构:深入探讨组件、编码和推理技术(三)KV缓存
https://duanzhihua.blog.csdn.net/article/details/138213306

探索和构建 LLaMA 3 架构:深入探讨组件、编码和推理技术(四)分组多查询注意力
https://duanzhihua.blog.csdn.net/article/details/138216050
探索和构建 LLaMA 3 架构:深入探讨组件、编码和推理技术(五)RMS 均方根归一化
https://duanzhihua.blog.csdn.net/article/details/138216630

探索和构建 LLaMA 3 架构:深入探讨组件、编码和推理技术(六)SwiGLU 激活函数
https://duanzhihua.blog.csdn.net/article/details/138217261
探索和构建 LLaMA 3 架构:深入探讨组件、编码和推理技术(七)前馈神经网络
https://duanzhihua.blog.csdn.net/article/details/138218095


http://www.ppmy.cn/embedded/20962.html

相关文章

C语言入门课程学习笔记-6

C语言入门课程学习笔记-6 第27课 - 字符数组与字符串(上)第28课 - 字符数组与字符串(下)第29课 - 数组专题练习(上)第30课 - 数组专题练习(下) 本文学习自狄泰软件学院 唐佐林老师的…

学习java第五十三天

Spring器中的bean可以分为5个范围: singleton:这种bean范围是默认的,这种范围确保不管接受多少请求,每个容器中只有一个bean的实例,单例模式; prototype:为每一个bean提供一个实例&#xff1b…

【数据结构】链表经典算法OJ题目练习

203. 移除链表元素 - 力扣(LeetCode) 思路1:遍历原链表,将val链表释放掉 思路2:创建新链表 206. 反转链表 - 力扣(LeetCode) 思路1:创建新链表,将原链表中的节点拿过来…

ROS机器人入门第七课:参数服务器

文章目录 ROS机器人入门第七课:参数服务器一、参数服务器介绍二、参数操作1.参数服务器新增(修改)参数2.参数服务器获取参数3.参数服务器删除参数 ROS机器人入门第七课:参数服务器 一、参数服务器介绍 参数服务器在ROS中主要用于实现不同节点之间的数据…

http请求与响应,结合springboot

目录 简单参数&实体参数 get请求 post请求 简单参数&实体参数【总结】 springboot中接受简单参数 RequestParam注解 实体参数接收 数组集合参数 数组接收 集合接收 数组集合参数 【总结】 简单参数&实体参数 get请求 请求url: http://l…

RTCRTC

上边的PRL是计数目标,写入6就是7分频,写入9就是10分频,因为计数值包含了0,重装值写入n就是n1分频,下边的DIV就是每来一个时钟记一个数,DIV计数器是一个自减计数器,每来一个时钟DIV的值自减一次&…

K8s: 持久化存储之卷, NFS卷

卷 Volume 1 ) 概述 容器中的文件在磁盘上是临时存放的,这给容器中运行的特殊应用程序带来一些问题 首先,当容器崩溃时,kubelet 将重新启动容器,容器中的文件将会丢失——因为容器会以干净的状态重建其次,当在一个 Po…

03-JAVA设计模式-访问者模式

访问者模式 什么是访问者模式 访问者模式(Visitor Pattern)是软件设计模式中的一种行为模式,它用于将数据结构中的元素与操作这些元素的操作解耦。这种模式使得可以在不修改数据结构的情况下添加新的操作。 在访问者模式中,我们…