
算法
文章平均质量分 60
大模型算法
苍墨穹天
长路漫漫,唯代码与吾长伴
展开
-
Flash Attention与Attention
伪代码:4d(分别代表Q\K\V\O)Flash Attention优化了。原创 2025-02-05 17:20:04 · 235 阅读 · 0 评论 -
大模型算法题(9)
比如在水果图片三分类任务,共有三个类别 [菠萝,榴莲,甘蔗],teacher model 对一张图片给出 [0.7, 0.2, 0.1] 的结果,除了正确答案0.7以外,0.2和0.1这两个分支提供了一个信息:榴莲和菠萝的相似程度大于甘蔗和菠萝,这是one-hot label提供不了的。经典的模型蒸馏过程中,student model会学习teacher model的softmax输出,在teacher model的输出进入softmax前,会除以一个温度T>1。(3)训练框架:使用。原创 2025-01-09 15:34:29 · 396 阅读 · 0 评论 -
大模型算法题(8)
我们需要保存模型中每个节点的激活值,比如使用一个4层的模型,每层的和输出大小都为8,那么一共就要保存32个激活值。更小的expert在同样总参数量和激活参数的情况下,可以提供更多的排列组合,使得每个expert在训练过程中能达到更高程度的专家化。之前比较常用的激活函数ReLU具有计算快,有激活值的时候不容易出现梯度消失等优点,但是ReLU是个分段函数,存在不可导的断点,可能会对模型效果有所影响。(4)专家的数量多,模型的总参数量更大,理论上模型能具有更大的容量,上限更高。的情况,实际使用中效果也较好。原创 2025-01-08 10:01:19 · 743 阅读 · 0 评论 -
大模型算法题(7)
负载平衡loss有不同的设计和计算方式,但是大致的思路都是迫使模型均匀地使用不同的专家,如果出现某些专家被选中的概率过高,就会进行惩罚。依照ResNet的实验结果,如果一开始模型就跑偏了,那后面再怎么训练,收敛效果都会比较差,说明早期太大的学习率导致模型过早收敛到不太好的局部最优了。另外,模型刚开始训练的时候,大学习率带来的大更新值,会导致模型参数的震荡会很大,使得模型学到的参数很不稳定,这也不利于训练。而这些常用的专家由于使用得更多,训练得更好,又会提升被路由到的概率,导致大部分模型参数几乎没有被用上。原创 2025-01-07 14:01:16 · 676 阅读 · 0 评论 -
大模型算法题(6)
因为ReLU会抛弃掉小于0的值,对于一个均值为0的输入数据,这就相当于砍掉了一半的值,这样输出的方差和均值就变了。(1)避免梯度消失或梯度爆炸:在深度神经网络中,如果层与层之间的输出方差相差很大,就会有很大的值出现,那么在反向传播过程中,梯度可能会变得非常小(梯度消失)或者非常大(梯度爆炸)导致梯度更新缓慢,或者训练过程不稳定。(2)保持信号的传播:通过保持每一层的输出方差大致相等,可以确保网络中的信号在前向传播和反向传播时不会因为方差的变化而减弱或增强,从而有助于网络更好地学习和传递信息。原创 2025-01-06 11:27:04 · 617 阅读 · 0 评论 -
大模型算法题(5)
PI/NTK/NTK-by-parts主要的做法都是使用插值,而随着插值进行,token之间的距离变得更近(因为现在每一个位置旋转角度变小了),平均最小距离在减小,这样注意力softmax的分布会变得更尖,也就是都集中在某个区间。相比于fp16,bf16牺牲了一些尾数位以增加指数位,扩大了表达的范围,但是精度降低了,因此对于对精度需求比较高的模型,模型可能效果不如fp16。1.在NTK插值之前,线性插值通过在原模型训练的两个位置编码中间,插入新的位置编码,使得同样的取值范围可以容纳更多位置。原创 2025-01-03 10:10:48 · 891 阅读 · 0 评论 -
大模型算法题(4)
在混合精度训练中,使用半精度进行前向计算和梯度计算,同时优化器备份一份单精度的优化器状态、梯度和参数用于更新参数,因此共有(Φ+Φ)*2+(Φ+Φ+2Φ)*4=20Φ,除去参数和梯度,优化器占部分16Φ。2.view()方法需要tensor满足连续性,操作后返回一个引用,返回值是视图,没有改变原储存空间的值,多个视图共享同一个物理储存空间的内容。1.模型参数Φ:词表部分VH,每层参数12H^2+13H,总共有Φ=VH+L(12H^2+13H),如果是半精度就是2Φ。,是我们想要最终获得的模型;原创 2025-01-02 09:09:00 · 887 阅读 · 0 评论 -
大模型算法题(3)
的方式实现了相对位置编码,使得能够在不破坏注意力形式的情况下,以“加性编码”的方式让模型学习相对位置。②可以应用于线性注意力。缺点:RoPE相比训练式的绝对位置编码具有一定的外推能力,如可以在2k数据长度训练的模型进行略长于2k的推理。一般来说,相比单头的情况,多个头能够分别关注到不同的特征,增强了表达能力。比如部分头关注语法信息,部分头关注知识内容,部分头关注近距离文本,部分头关注远距离文本,这样减少信息缺失,提升模型容量。在进行自回归解码的时候,新生成的token会加入序列,一起作为下一次解码的输入。原创 2024-12-31 14:11:20 · 276 阅读 · 0 评论 -
大模型算法题(2)
论文认为:模型一般有多层,前一层的输出是后一层的输入,而训练中前一层的参数更新会导致后一层的输入数据分布变化导致ICS(internal covariate shift),这样后面的层就不得不频繁剧烈更新适应分布变化,导致分布偏移进入。1.原始的Transformer用的是post-norm,它在残差之后进行归一化(add & norm),对参数正则化的效果更强,模型更为鲁棒;的(部分)全连接层增加了LoRA旁路,前向和后向的计算量都在主干模型的基础上,增加了旁路部分的计算,因此相比全参数训练,略有增加。原创 2024-12-31 14:00:42 · 754 阅读 · 0 评论 -
大模型算法题(1)
本系列将整理一些LLM中关键的、细节的、值得关注的内容,持续更新~如有错误,欢迎指正~原创 2024-12-30 11:29:33 · 807 阅读 · 0 评论 -
常见激活函数
Sigmoid函数:能够将输入压缩到[0, 1]的范围内,通常用于二分类任务的输出层。 Tanh函数:与Sigmoid类似,但是它能将输入压缩到[-1, 1]的范围内,通常具有比Sigmoid更好的性能。 ReLU函数:修正线性单元,是目前最常用的激活函数之一,特别是在隐藏层中。它的优点是能够缓解梯度消失问题,并且计算简单。 Leaky ReLU / Parametric ReLU / Exponential LU (ELU):这些是ReLU的变种,旨在解决ReLU神经元“死亡”的问题,即一旦神经元激原创 2024-12-24 11:54:43 · 205 阅读 · 0 评论 -
随机森林模型
对应的模型分别为随机森林分类模型(RandomForestClassifier)和随机森林回归模型(RandomForestRegressor)。随机森林分类模型的弱学习器是分类决策树模型,随机森林回归模型的弱学习器则是回归决策树模型。随机的含义:双随机,数据样本随机选择,特征随机选择。随机森林模型既能进行分类分析,又能进行回归分析。bagging + 决策树 = 随机森林。原创 2024-12-17 10:23:24 · 231 阅读 · 0 评论 -
决策树算法模型介绍
决策树模型是机器学习的各种算法模型中比较好理解的一种模型,它的基本原理是通过对一系列问题进行if/else的推导,最终实现相关决策。基尼系数(gini)用于计算一个系统中的失序现象,即系统的混乱程度。基尼系数越高,系统的混乱程度就越高。建立决策树模型的目的就是降低系统的混乱程度,从而得到合适的数据分类效果。决策树模型的建树依据主要用到的是基尼系数的概念。找基尼系数越小越适合做根节点。1、回归决策树,解决回归问题。2、分类决策树,解决分类问题。原创 2024-12-17 09:45:14 · 369 阅读 · 0 评论 -
最简单的线性回归神经网络
【代码】最简单的线性回归神经网络。原创 2024-12-06 11:59:57 · 382 阅读 · 0 评论 -
二分查找算法(折半查找算法)
是一种在有序数组中查找特定元素的搜索算法。该算法通过将数组分成两半,逐步缩小查找范围来提高查找效率。具体来说,每次比较中间元素与目标值,根据比较结果决定是继续在左半部分还是右半部分进行查找,从而每次迭代都能排除一半的查找空间,时间复杂度对数级别O(logn)原创 2024-10-20 10:43:07 · 490 阅读 · 0 评论 -
冒泡,选择,快速-排序
冒泡print(l)选择print(l)快排return arrleft = []right = []if i!else:原创 2024-09-15 09:53:36 · 347 阅读 · 0 评论