- 博客(233)
- 收藏
- 关注
原创 jax包介绍及代码示例
JAX 是由 Google 开发的用于高性能机器学习研究的 Python 库,它将的语法与和相结合,特别适合开发深度学习模型和优化算法。
2025-07-22 14:00:00
698
原创 xformers包介绍及代码示例
xFormers是由Meta开发的一个高性能深度学习库,专门用于优化Transformer架构中的注意力机制和其他组件。它提供了内存高效和计算高效的实现,特别适用于处理长序列和大规模模型。
2025-07-21 19:43:39
463
原创 neuronxcc包介绍及示例代码
neuronxcc(或 neuronx-cc)是 AWS Neuron 编译器,这是 AWS 专为其定制机器学习芯片开发的编译工具包的核心组件。
2025-07-21 19:17:58
379
翻译 大型语言模型中的 KV 缓存优化技术
大型语言模型 (LLM) 的卓越功能也带来了巨大的计算挑战,尤其是在 GPU 内存使用方面。这些挑战的根源之一在于所谓的键值 (KV) 缓存,这是 LLM 中采用的一项关键优化技术,用于确保高效的逐个标记生成。此缓存会消耗大量 GPU 内存,以至于它本身会限制 LLM 的性能和上下文大小。本文介绍了键值缓存优化技术。首先,本文将解释键值缓存的基本工作原理,然后深入探讨开源模型和框架实现的各种方法,以增强其可扩展性并减少其内存占用。
2025-07-20 15:00:00
12
原创 FlashAttention原理、图解与代码实现
FlashAttention将输入矩阵Q、K、V分割成小块,在SRAM中进行计算,避免在HBM中存储完整的注意力矩阵。给定两个向量 x^{(1)} 和 x^{(2)},我们想要计算 softmax([x^{(1)}, x^{(2)}])FlashAttention使用在线算法,只需要一遍扫描就能完成softmax计算。在反向传播时,重新计算注意力权重而不是存储它们,用计算换内存。关键的数学洞察:如何在线更新softmax结果。
2025-07-19 15:15:00
991
原创 PagedAttention原理、图解与代码实现
在大语言模型推理过程中,KV Cache(Key-Value Cache)是一个关键优化技术,它缓存了之前计算的键值对,避免重复计算。PagedAttention借鉴了操作系统中虚拟内存的页面管理思想,将KV Cache分割成固定大小的页面(pages),每个页面存储固定数量的token的KV对。
2025-07-19 15:00:00
596
原创 pycharm windows/linux/mac快捷键
适用于mac的快捷键适用于windows和linux的快捷键参考资料:https://www.jetbrains.com/zh-cn/help/pycharm/mastering-keyboard-shortcuts.html
2025-07-18 10:47:07
265
原创 高斯分布和拉普拉斯分布的区别,原理/图解/代码
其中μ是位置参数,b是尺度参数。拉普拉斯分布的核心特征是其指数部分包含绝对值项,这使得它具有更重的尾部。:高斯分布呈现平滑的钟形曲线,而拉普拉斯分布在均值处有一个尖锐的峰值,两侧对称下降但比高斯分布更陡峭。其中μ是均值,σ是标准差。高斯分布的核心特征是其指数部分包含平方项,这使得它在均值附近快速下降。:当两个分布有相同方差时,拉普拉斯分布的尺度参数b = σ/√2。:拉普拉斯分布的尾部比高斯分布更重,意味着极端值出现的概率更高。:高斯分布在均值处可导,而拉普拉斯分布在均值处不可导(有尖点)。
2025-07-18 10:33:00
838
原创 损失函数的等高线与参数置零的关系
每条等高线上的所有点都有相同的损失值内层等高线损失小,外层等高线损失大我们的目标是找到最内层的等高线(最小损失)
2025-07-17 16:30:07
424
原创 从高斯噪声的角度分析MAE和MSE
特性MSEMAE对离群点敏感度高(平方放大误差)低(线性处理误差)噪声分布假设高斯分布拉普拉斯分布梯度特性梯度随误差减小而衰减梯度恒定(除零点外)稀疏性不易产生稀疏解易产生稀疏解优化稳定性平滑优化,数值稳定性好非光滑优化,可能需要特殊处理在实际应用中,如果数据包含较多离群点或需要进行特征选择,MAE是更合适的选择;如果追求预测精度且噪声近似高斯分布,MSE通常表现更好。
2025-07-17 11:14:57
1536
原创 核密度图vs直方图:原理/差异/代码实现
核密度图和直方图均为数据可视化工具,能够呈现数据分布状况,不过它们在原理与表现形式上存在差异。下面将对它们的原理、差异进行详细介绍,并给出代码示例。通过这些可视化工具,我们可以更好地理解数据的分布特征,为后续的数据分析和建模工作提供有力支持。
2025-07-15 20:26:58
588
原创 Kronecker product/克罗内克积:原理、代码与图解详解
Kronecker积(也称为张量积或直积)是两个矩阵的一种运算,记作A ⊗ B。对于矩阵A(m×n) 和矩阵B[⋮ ⋮ ⋱ ⋮ ]其中aᵢⱼ是矩阵A的第i行第j列元素。理论基础:具有丰富的数学性质和理论支撑应用广泛:在信号处理、量子计算、图像处理等领域都有应用可分离性:可以将高维问题分解为低维问题的组合。
2025-07-15 10:06:14
544
原创 RoPE vs ALiBi: 原理、图解与代码对比
优点性能优秀,在大多数任务上表现最佳相对位置编码,具有良好的理论基础被广泛采用,生态成熟缺点实现复杂度较高计算开销相对较大原始版本长度外推能力有限。
2025-07-15 09:42:53
766
原创 位置编码/绝对位置编码/相对位置编码/Rope原理+公式详细推导及代码实现
位置编码是Transformer架构中的关键组件,用于为序列中的每个位置提供位置信息。由于自注意力机制本身是位置无关的,需要额外的位置信息来理解序列中元素的顺序。绝对位置编码:简单高效,适用于固定长度序列相对位置编码:关注位置关系,泛化能力更强RoPE:通过旋转矩阵优雅地处理位置信息,支持长度外推选择合适的位置编码方式需要根据具体应用场景和性能需求来决定。现代大语言模型(如GPT、LLaMA等)普遍采用RoPE,因为它在处理长序列时表现出色。
2025-07-14 21:01:20
601
原创 Post-Norm/Pre-Norm图解对比及解决方案ResiDual
对比项Post-NormPre-Norm归一化时机残差连接(相加)之后送入注意力/FFN之前残差保留相加后被归一化,原始残差信息被缩放直接与计算结果相加,原始残差信息完整保留梯度传播深层时易因多次归一化导致梯度消失梯度传播更顺畅,适合深层模型问题Post-LN原因Pre-LN原因ResiDual解决方案梯度消失低层输出被多次归一化,梯度指数衰减无(梯度直接流动)双残差分支保障梯度下界,避免衰减表征坍塌无(表征变化稳定)高层表征差异随深度衰减至0。
2025-07-11 11:41:28
551
原创 图解对比:Batch Norm vs Layer Norm vs RMSNorm
RMS Norm:同样沿feature维度,但只用RMS(图中青色高亮)Batch Norm:需要γ和β两组参数,训练时需要维护移动平均。Layer Norm:RNN,Transformer,变长序列。RMS Norm:大型语言模型(如LLaMA),追求效率的场景。RMS Norm:只使用单个样本内的均方根,不计算均值。Layer Norm:需要γ和β两组参数,训练推理一致。Batch Norm:使用batch内的均值和方差。Layer Norm:使用单个样本内的均值和方差。是可学习的缩放和平移参数,
2025-07-11 10:33:50
1287
原创 RMSNorm/LayerNorm原理/图解及相关变体详解
RMSNorm 是一种简单而有效的归一化技术,通过去除均值中心化步骤,在保持性能的同时大幅提升了计算效率。它在现代大语言模型中得到了广泛应用,是深度学习中归一化技术的重要发展。核心价值简单高效的设计哲学良好的性能表现广泛的应用前景选择 RMSNorm 还是 LayerNorm 应该基于具体的应用场景、计算资源和性能需求来决定。
2025-07-10 15:35:21
1152
原创 门控线性单元GLU详解,包含SigmoidGLU/GELUGLU/SwiGLU
SigmoidGLU: 经典实现,门控值在 (0,1) 范围GELUGLU: 平滑激活,适合 NLP 任务SwiGLU: 现代推荐,平衡性能和效率对于新项目,推荐使用SwiGLU对于 NLP 任务,可以考虑GELUGLU对于需要严格门控的场景,使用SigmoidGLU这些变体在现代深度学习架构(如 Transformer、LLaMA)中得到了广泛应用,是提升模型性能的重要技术。
2025-07-10 14:19:27
923
原创 深入理解GELU,从标准公式到近似公式的推导
GELU(Gaussian Error Linear Unit)的近似公式推导源于对其原始公式的简化,核心是用更易计算的函数(如。是标准正态分布 $ \mathcal{N}(0,1) $ 的 CDF,表示随机变量取值小于等于 $ x $ 的概率。它表示正态分布概率密度函数下,从 0 到 x 的积分的 2/√π 倍,用于描述连续随机变量的概率累积特性。这个近似公式在保持精度的同时,避免了直接计算误差函数的复杂性,因此被广泛采用(如PyTorch的。计算成本较高(需积分),因此需要用更简单的函数逼近。
2025-07-09 16:08:10
1291
1
原创 常用激活函数原理+图解 Sigmoid/tanh/ReLU/Leaky ReLU/Swish/GeLU
【代码】常用激活函数原理+图解 Sigmoid/tanh/ReLU/Leaky ReLU/Swish/GeLU。
2025-07-09 15:35:04
661
原创 指标RSE/CORR/MAE/MSE/RMSE/MAPE/MSPE/SMAPE/WMAPE代码及对比
预测值与真实值的皮尔逊相关系数,衡量线性相关性,范围[-1, 1],绝对值越接近1越好。:对称平均绝对百分比误差,通过对称分母解决MAPE的不对称问题。:预测误差相对于基线模型(用均值预测)的比例,值越小越好。:预测误差的百分比平方平均,进一步放大相对大误差的影响。:MSE的平方根,恢复原始数据单位,平衡大误差的影响。:预测误差的平均绝对值,直观反映预测偏差的大小。:预测误差的百分比平均,直观反映相对误差。:预测误差的平方平均,强调大误差的影响。
2025-06-03 14:57:27
924
原创 einops库介绍(安装/主要函数/应用场景)
函数功能是否修改形状rearrange重排、reshape、transpose✅reduce降维(如 mean、max)✅repeat张量复制✅asnumpy转换为 numpy array❌解析张量形状❌。
2025-05-30 12:54:04
1183
原创 手写multi-head Self-Attention,各个算子详细注释版
multi-head Self-attention实现,attention_mask维度解释,matmul/transpose/view/masked_fill等算子解释
2025-05-30 11:28:41
1316
原创 【已解决】windows gitbash 出现CondaError: Run ‘conda init‘ before ‘conda activate‘
【代码】【已解决】windows gitbash 出现CondaError: Run ‘conda init‘ before ‘conda activate‘
2025-05-28 20:18:32
857
原创 argparse 参数为 0 时的布尔值判断逻辑错误及解决方案
在 Python 中使用argparse解析命令行参数时,若参数类型为数值型(如int/float),当用户传入值为0时,后续代码中若直接通过布尔值判断(如if value:)会导致逻辑错误。这是因为 Python 中0的布尔值为False,而实际业务逻辑中可能需要将0视为有效数值而非 “空值” 或 “假值”。若业务逻辑需要区分 “未传参” 和 “传参为 0”,需显式判断参数是否为None或具体数值。argparse将命令行参数解析为具体类型(如int),不会改变其布尔值特性。
2025-05-15 16:15:18
358
翻译 Shapelets介绍-时序分类方法
由于大多数时间序列数据在子序列中而非整个序列中表现出类间差异,因此 Shapelet 旨在表示这些具有判别性的时序数据子序列。简而言之,我们在序列中识别一个形状,以将其与该领域中的其他类区分开来。Shapelet 的示例如下所示。上图显示了叶子的时间序列一维表示。突出显示的部分显示了最能代表此叶子的子序列。有多种方法可以识别 Shapelet,并使用一些技术来优化发现和分类时间。一些著名的 Shapelet 算法包括“快速 Shapelet”和“学习时间序列 Shapelet。
2025-05-08 10:46:03
118
翻译 deepseek-PPO和GRPO的区别,无强化学习基础也能看懂,适合小白
在强化学习 (RL) 中,仅仅知道“你得了多少分”通常是不够的。单纯追求高分可能会导致各种副作用,例如过度探索、模型不稳定,甚至偏离合理策略的“捷径”行为。为了应对这些挑战,RL 采用了多种机制,例如Ctritic(价值函数)、Clip操作、Reference模型以及较新的组相对策略优化 (GRPO)。为了使这些概念更加直观,我们打个比方:将强化学习的训练过程想象成小学考试场景。我们(正在训练的模型,Actor)就像努力取得高分的学生,给我们考试评分的老师就像奖励模型。
2025-03-03 14:55:46
406
原创 linux下,huggingface的默认下载路径和modelscope魔搭的默认下载路径
huggingface的模型默认下载路径。modelscope的模型默认下载路径。
2025-02-11 10:20:08
354
原创 BertTokenizerFast 和 BertTokenizer 的区别
都是用于对文本进行标记化的工具,主要用于处理和输入文本数据以供 BERT 模型使用。它们都属于 HuggingFace 的库。
2025-01-13 14:18:03
706
原创 huggingface/bert/transformer的模型默认下载路径以及自定义路径
如果由于某些原因您需要更改默认的缓存路径,可以通过设置环境变量来指定新的路径。import os。
2025-01-10 16:12:59
1640
原创 从预训练的BERT中提取Embedding
注意力掩码:下一步,要让模型理解[PAD]标记只是为了匹配标记的长度,而不是实际标记的一部分。我们将所有位置的注意力掩码值设置为1,将[PAD]标记的位置设置为0,如下所示。填充:为了保持所有标记的长度一致,我们将数据集中的所有句子的标记长度设为7。句子I loveParis的标记长度是5,为了使其长度为7,需要添加两个标记来填充,即[PAD]。ID 101表示标记[CLS],1045表示标记I,2293表示标记love,以此类推。添加标记:在开头添加[CLS]标记,在结尾添加[SEP]标记,如下所示。
2025-01-10 15:53:02
1316
原创 【已解决】tokenizer.chat_template is not set and no template argument was passed
在模型合并后,我只复制了tokenizer.json到合并模型的文件夹,没有把tokenizer_config.json也复制过去。
2024-08-16 20:53:00
5013
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人