- 博客(24)
- 收藏
- 关注
原创 08.注意力机制一:QKV
本文详细讲解了Transformer架构中多头注意力机制的核心原理和计算过程。首先介绍了输入样本如何被转换为三维矩阵形式(批次×序列长度×嵌入维度),然后通过权重矩阵Wq、Wk、Wv分别生成Q、K、V矩阵。重点阐述了多头注意力的实现方式:将高维嵌入切分为多个头,通过矩阵转置和乘法计算注意力得分。整个过程涉及批次处理、维度切分、矩阵转置等关键技术,最终得到表示各token间相关性的注意力矩阵,为后续处理奠定基础。视频采用原论文术语和直观图示帮助理解这一复杂机制。
2025-05-29 16:11:29
495
原创 07.概念三:LayerNorm和Softmax
本文介绍了自然语言处理中的两个关键技术:LayerNorm层归一化和Softmax函数。LayerNorm主要用于对神经网络中间结果进行标准化处理,通过调整数字范围(均值归零、方差归一)来稳定训练过程,同时保留数值间的相对关系。Softmax则负责将模型输出的权重分数转换为概率分布,便于选择概率最高的词作为预测结果。两种技术都可通过PyTorch框架简单实现(nn.LayerNorm和torch.softmax),前者调节数值范围,后者完成概率转换,共同作用于Transformer模型的预测流程中。
2025-05-29 10:07:27
672
原创 06.概念二:神经网络
实际上我们的参数出现在整体训练中的很多个不同的地方,而且我们在一个transformer模块下,我们可以设置多个模块儿,那么每一次循环,就会有一批参数的记录。我们单独把一个简单的两两对应的神经元拉出来看一下,这个神经元代表数字0.54、0.63,然后,分别连接下一步,这就是一个简单的神经网络。当中呢,最重要的几个参数,就是我们的样本文字乘以我们的WQ、WK、WV,就是我们这个要转换的这些权重,它的这些不同颜色的点,就是它的一些学习更新的权重值,映射到了三维空间中,这样的一个趋势。
2025-05-28 16:41:58
1026
原创 05.概念一:矩阵相乘及其几何逻辑
本文讲解了矩阵相乘的概念及其在大语言模型中的几何意义。首先介绍了标量、向量和矩阵的基本定义,说明矩阵可以看作多维向量的叠加。详细解释了矩阵相乘的前提条件和运算规则,指出线性变换实质就是矩阵相乘的特殊形式。重点阐述了矩阵相乘的几何意义:通过余弦相似度定理,证明两个向量矩阵相乘的结果反映它们在多维空间中的相似程度,乘积越大相似度越高。最后以"猫爱吃鱼"为例,说明大语言模型通过矩阵相乘计算token之间的语义关联,并不断调整参数优化这些关系,最终形成有效的注意力机制。
2025-05-28 15:52:53
640
原创 04.Transformer:注意力机制模块概述
本文重点解析Transformer模型中的核心概念。作者强调在学习实现细节前,必须掌握几个关键基础:1)矩阵相乘的运算原理及其在注意力机制中的几何意义;2)层归一化(LayerNorm)的数字缩放作用;3)前馈神经网络的工作原理及其在大模型中的辅助角色。文章指出Transformer的创新核心在于位置编码和注意力机制,而多头注意力中的QKV等概念需要建立在扎实的矩阵运算理解基础上。最后提示大模型的本质是通过海量参数预测下一个字的概率分布,建议初学者先系统掌握这些基础概念,能显著提升后续学习效率。
2025-05-27 10:36:16
853
原创 03.Position Encoding:文字加位置
本文介绍了在Transformer模型中引入位置信息编码的必要性及实现方法。首先解释了位置编码的作用是让模型区分相同词语在不同位置时的语义差异(如"小沈阳"和"沈春阳"中的"阳"字)。接着分析了简单顺序编码(1,2,3...)会导致数值过大和维度单一的问题。解决方案是采用正弦和余弦函数生成位置编码:在偶数维度使用sin,奇数维度使用cos,这样既能保证数值范围在[-1,1]之间,又能使不同维度的编码具有差异性。
2025-05-26 14:43:22
734
原创 02.Embedding:数字变矩阵
本文介绍了将文本token转换为嵌入向量的过程。首先通过词汇表将文字转换为数字token,然后使用d_model参数(如64维)为每个token创建多维向量表示,形成100256×64的嵌入查找表。这种多维表示能捕捉词语在不同语境下的语义关系。
2025-05-25 14:20:37
789
原创 01.Tokenization:文字转数字
摘要:本文介绍了Transformer架构中文本数字化的过程。介绍了两种方法:直接对应法(如1万字对应1-10000)和使用第三方库tiktoken(100256词汇量)
2025-05-24 20:04:27
536
原创 00.Transformer架构学习:前言
Transformer是一种用于处理序列数据的深度学习架构,其核心是通过多头注意力机制学习文本中词语之间的语义关系。它将输入文本转换为数字表示并加入位置编码,然后通过自注意力计算生成词语关系矩阵。经过多层神经网络处理后,模型输出预测词语的概率分布,选择概率最高的词作为预测结果。Transformer通过不断循环这一过程来训练语言模型,但具体神经网络内部工作机制仍不完全清楚。该架构在ChatGPT等大语言模型中效果显著。
2025-05-24 14:51:04
513
原创 CNN卷积神经网络到底卷了啥?
卷积神经网络(CNN)是一种深度学习模型,特别适用于图像识别任务。本文通过一个6×6的像素图示例,展示了CNN如何识别数字“7”。
2025-05-22 22:48:41
1109
原创 30s将项目上传到 GitHub
Git 是一个本地版本控制系统,用户名和邮箱只用于标识本地提交的作者信息。- 我们需要在 git 中提前设置账号、邮箱,以及在 GitHub 上登好账号。- 配置凭证助手,Git 会将你的用户名和令牌存储在本地,后续交互时直接完成身份验证。在需要上传的文件夹内右键,找到并点击:- 初始化 Git,回车后,文件夹中会多出一个 .git 的隐藏文件夹- 将该文件夹内所有文件加入暂存区。此时可用命令查看暂存区文件状态:git status。
2025-05-07 16:56:30
323
原创 HTML 网站布局
span> 是内联元素,和其他内联元素或文本在。精细操作、修饰小范围的文本,不改变文本流向。,构建页面宏观结构,多个 ,可设置宽\高\边距等样式属性。 是块级元素, 用于在。
2025-01-01 15:46:59
267
原创 Rust与众不同的方法定义(更新中)
Rust 使用impl来定义方法,例如以下代码:structCirclex: f64,y: f64,implCircle// new是 Circle的关联函数,因为它的第一个参数不是 self,且 new并不是关键字fnnewCircle// new 方法往往用于初始化当前结构体的实例x: x,y: y,fn area&self) -> f64 {// Circle的方法,&self 表示借用当前的 Circle结构体。
2024-12-31 15:08:51
505
原创 Antlr4 怎么用
(1)定义.g4语法文件;(2)使用 ANTLR 4 工具,生成词法分析器(Lexer)和语法分析器(Parser)目标编程语言代码(3)遍历 AST(抽象语法树):访问者模式(Visitor)和监听器模式(Listener)
2024-09-02 17:46:37
3317
原创 最新 WeChatAppEx 占用内存解决办法
零零碎碎花了我好长时间,最终终于让微信回到。把这些工作做完,就能达到第一张图的效果,是不是很简单?(这个网上工具网上有很多的资源,大家自行下载即可)兄弟姐妹们,你们要是成功了的话,记得给老弟我。我会更有动力分享干货!
2024-08-30 10:43:14
3690
4
原创 一口气学会 Java(语言篇3)
Java是一种跨平台的、面向对象的编程语言。广泛引用与企业级应用开发、Web 开发、Android移动应用开发等众多领域。整数用 input.nextInt();小数用 input.nextDouble();字符串用 input.next();:Systemoutprint// 先打印再换行Java 在语言风格上,与 C、C++、C#、JavaScript等语言风格基本相同(1)注释:// 单行注释 、/* 多行注释 */(2)每行语句以结束(3)转义字符(4)大括号。
2024-08-04 08:47:13
598
原创 一口气学会 JavaScript
TypeScript 是一种面向对象的编程语言,是 JavaScript 的超集,包含了 JavaScript 的所有元素扩展了 JavaScript 语法(),编译结果为 JavaScript 代码("请输入您的密码");
2024-07-29 17:15:42
782
原创 Rust 复杂函数参数 (结构体+枚举+元组+数组)
Rust 不是的面向对象编程语言,没有类Class的概念,但它有结构体 Struct 和枚举 Enum通过结构体和枚举等类型,用来封装属性数据,可以通过 impl 关键字来定义相关的。
2024-07-27 12:45:38
241
原创 将Rust打包成Wasm给JavaScript调用
本文详细介绍了在Windows环境下搭建Rust WebAssembly开发环境的完整流程。主要内容包括:1)安装Rust工具链和Microsoft C++生成工具;2)创建Rust WebAssembly项目并配置wasm-bindgen依赖;3)编写Rust代码并打包为Wasm模块;4)构建本地Web服务器环境;5)使用webpack打包并运行程序。文中提供了两种Wasm打包方法(wasm-pack工具和手动打包),并详细说明了相关配置文件的修改要点,最终实现在浏览器中调用Rust编写的函数。
2024-07-24 09:47:51
3635
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人