自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(832)
  • 资源 (1)
  • 收藏
  • 关注

原创 pytorch view、expand、transpose、permute、reshape、repeat、repeat_interleave

【代码】pytorch view、expand、transpose、permute、reshape。

2024-04-11 17:56:25 1118

原创 kvcache原理、参数量、代码详解

kvcache一句话来说就是把。训练的时候不需要保存。推理解码生成时都是自回归auto-regressive的方式,也就是每次生成一个token,都要依赖之前token的结果。如果没生成一个token的时候乘以W_K,W_V这俩参数矩阵要对所有token都算一遍,代价非常大,所以缓存起来就叫kvcache。举个例子,假如prompt=“The largest city of China is”,输入是6个tokens,返回是"Shang Hai"这两个tokens。

2024-04-08 00:21:52 587 1

原创 [WIP]Sora相关工作汇总VQGAN、MAGVIT、VideoPoet

视觉任务相对语言任务种类较多(detection, grounding, etc.)、粒度不同 (object-level, patch-level, pixel-level, etc.),且部分任务差异较大,利用,目前SOTA工作MAGVIT-v2,VideoPoet。

2024-04-06 16:17:05 931

原创 小于n的最大数 Leetcode 902 Numbers At Most N Given Digit Set

这两个题目的写法差别还比较大。

2024-03-31 16:26:47 599 1

原创 Deepspeed、ZeRO、FSDP、ZeRO-Offload、all reduce、reduce-scatter

FSDP可以看成PyTorch中的DDP优化版本,本身也是数据并行,但是和DDP不同的是,FSDP采用了parameter sharding,所谓的parameter sharding就是将模型参数也切分到各个GPUs上,而DDP每个GPU都要保存一份parameter,FSDP可以实现更好的训练效率(速度和显存使用),,而这一部分除了相对算子简单以外,最重要的是Adam优化器本身是32bit的,把它放在CPU的内存上,会极大的节省GPU的显存。

2024-03-29 20:43:10 718

原创 Pytorch实现卷积、Depthwise Convolution、分组卷积、动态卷积和转置卷积、反卷积、全卷积、空洞卷积、可变形卷积、深度可分离卷积等操作

底层是用img2col实现的,但是如果想用pytorch来实现,可以试试torch.unfold这个函数,

2024-03-04 17:17:36 920

转载 直观理解(加权、模版匹配与几何)神经网络最后一层全连接+Softmax

转载自: https://cloud.tencent.com/developer/article/1376756。

2024-03-04 14:54:58 41

原创 线性 Transformer变长思路汇总Dilated Sliding window、LongFormer、BigBird、LongNet、Reformer、GAU、RWKV

线性 Transformer变长思路汇总Dilated Sliding window、LongFormer、BigBird、LongNet、Reformer、GAU、RWKV

2024-03-03 13:22:41 956

转载 ChatGLM、Baichuan、LLaMA、Vicuna对比总结

这部分转载自 https://www.zhihu.com/question/608732789/answer/3141379386。

2024-02-28 23:14:54 246

转载 多线程,多进程,多协程,多核总结

转载自: https://zhuanlan.zhihu.com/p/82123111。

2024-02-28 21:19:46 29

转载 均匀分割数组 负载均衡问题

这个问题转自:http://www8.cs.umu.se/kurser/TDBAfl/VT06/algorithms/BOOK/BOOK2/NODE45.HTM。给定一个非负正整数数组S={s1, s2, s3, …, sn},和一个正整数k。要求把S分割成k个部分,使得每个部分的和的最大值是最小的。例如,S={2,2,3,4},k=3. 那么应该分成{2,2},{3},{4}.

2024-02-28 14:48:12 28

转载 为什么使用torch.cuda.synchronize和cuda stream

from https://zhuanlan.zhihu.com/p/667225351from https://www.zhihu.com/question/586553133/answer/2935266767

2024-02-27 18:49:47 39

转载 浅析PyTorch的Join原理和torch.cuda.synchronize卡顿原因

转载自https://zhuanlan.zhihu.com/p/630904458 和 https://pytorch.org/tutorials/advanced/generic_join.html#how-does-join-work。

2024-02-26 17:32:59 22

原创 稀疏计算、彩票假说、MoE、SparseGPT

稀疏计算可能是未来10年内最有潜力的深度学习方向之一,稀疏计算模拟了对人脑的观察,人脑在处理信息的时候只有少数神经元在活动,多数神经元是不工作的。而稀疏计算的基本思想是:在计算过程中,将一些不重要的参数设置为0,从而减少计算量。而这种计算量的减少规模经常是10倍级别,这为部署提速提供了想象力。

2024-02-23 18:09:13 894

原创 邻接矩阵乘法 最短距离

先从一个问题说起,输入 = [4, 1, 4, 6, 4, 0, 6]代表依赖关系,从1开始,0代表ROOT节点。第二个元素为1代表第二个term在依赖树上的父节点为第1个term。​输出​这个题目的下标和方向非常别扭,等于7个数表示了8个节点,画成图就下面这样。

2024-02-23 00:35:19 284

原创 Leetcode 910 smallest range II 缩小极值之间的间距

【代码】Leetcode 910 smallest range II 缩小极值之间的间距。

2024-02-21 10:44:20 374

原创 数矩形个数

给定平面整数网格上的点,计算长方形的个数,例如输入:[(0, 0), (0, 1), (1, 0), (1, 1)] ,输出:1​输入:[(0, 0), (0, 1), (1, 0), (1, 1), (2, 0), (2, 1)],输出:3 ​。

2024-02-14 16:38:51 148

转载 一副扑克54张,等分成三份,两张王在同一个人手中的概率是多大?

其实你可以把随机分布看成一个环,总能把大王转到第一张。那么在头18张里17张有小王可能;除了第一张大王,剩下53张都有小王可能。大小王在同一份 N=(C3,1)×(C52,16)×(C36,18)×(C18,18)转载自https://www.zhihu.com/question/28877683。总的分法 M=(C54,18)×(C36,18)×(C18,18)

2024-02-12 17:09:14 47

原创 Grouped-query Attention(GQA)、Multi-query Attention(MQA)

Grouped-query attention an interpolation of multi-query and multi-head attention that achieves quality close to multi-head at comparable speed to multi-query attention.

2024-02-12 16:45:14 272

转载 集齐108将、集卡、集盲盒概率

转载自 https://zhuanlan.zhihu.com/p/140537355。

2024-02-08 11:35:34 34

原创 torch.Tensor和torch.tensor有什么区别

在PyTorch 中,torch.Tensor是主要的tensor类,所有的tensor都是torch.Tensor的实例。torch.Tensor是torch.FloatTensor的别名。最主要的是code上有一些区别。

2024-01-31 00:04:04 120

原创 PreNorm和PostNorm对比

标准的Transformer使用的是PostNorm在完全相同的训练设置下Pre Norm的效果要优于Post Norm,这只能显示出Pre Norm更容易训练,因为Post Norm要达到自己的最优效果,不能用跟Pre Norm一样的训练配置(比如,这里说的warmup是指先给一个小的学习率warmup,然后再Linear decay)。Attention is all you need其实介绍过这种warmup(如下面截图)

2024-01-27 01:17:34 791

原创 torch.matmul和torch.bmm区别

用torch.bmm也可以实现self_attention,参考。

2024-01-25 13:45:52 569

转载 Introduction to Deterministic Policy Gradient (DPG)

DPG介绍

2024-01-06 22:24:40 61

转载 贝尔曼最优方程收敛性证明

贝尔曼方程有两种形式「贝尔曼期望方程」和「贝尔曼最优方程」,贝尔曼期望方程是在求解价值函数。

2023-11-01 00:06:01 232

原创 Multi Label Classification with Missing Labels(MLML)的几种loss设计

多标签学习这个方向问题比较多,可以参考和这两篇偏综述性质的解释。

2023-10-05 16:49:41 386

转载 深度学习中的batchsize对学习效果有何影响?

大的batchsize减少训练时间,提高稳定性大的batchsize导致模型泛化能力下降。研究[6]表明大的batchsize收敛到sharp minimum,而小的batchsize收敛到flat minimum,后者具有更好的泛化能力。Hoffer[7]等人的研究表明,大的batchsize性能下降是因为训练时间不够长,本质上并不少batchsize的问题,在同样的epochs下的参数更新变少了,因此需要更长的迭代次数。

2023-10-01 21:49:06 163

转载 神经网络中参数的初始化问题

转载自https://zhuanlan.zhihu.com/p/75879624。

2023-09-19 23:49:19 87

转载 结合TRL的PPO的分析

以下转载自:https://zhuanlan.zhihu.com/p/635757674。

2023-09-19 22:14:10 729

原创 R-Drop和SimCSE解读

R-Drop的基本思想是:同一个step里面,对于同一个样本,前向传播两次,由于Dropout的存在,会得到两个不同但差异很小的概率分布,通过在原来的交叉熵损失中加入这两个分布的KL散度损失,来共同进行反向传播,参数更新。在下游任务上可以普遍地涨点。

2023-09-17 16:32:27 118

转载 贝叶斯优化/Bayesian Optimization 和Optuna

转载自 https://zhuanlan.zhihu.com/p/76269142。

2023-09-14 20:26:30 86

转载 多模态训练如何平衡不同模态

我们在进行多模态训练时,会出现模态不平衡的问题,往往使用了文本预训练模型的文本模态由于大量的预训练会容易出现过拟合现象,在文本模态过拟合的时候,视觉模态还处在欠拟合状态,则会导致视觉模态无法训练到最佳状态。如何平衡不同模态的性能,让多模态都能发挥自己最佳状态,从而提升整体多模态特征性能呢?

2023-09-07 23:38:40 196

原创 CLIP、Vilt、ALBEF、CoCa、FLAVA、VLMO、Beit v3、BLIP、BLIP2、InstructBLIP、LLava要点总结

两个ITC+两个MIM+1个ITM。ITM是基于ground truth的,必须知道一个pair是不是ground truth,同时ITM loss是用了hard negative,这个是和Momentum Distillation(动量蒸馏)是有冲突的,所以ITM只有一个loss没有给基于Momentum Distillation的loss。而另外两个都有基于Momentum Distillation版本的loss。

2023-09-04 00:21:39 519

原创 信息熵 条件熵 交叉熵 联合熵 相对熵 KL散度 SCE MAE 互信息(信息增益)

如果一个样本是n类其中之一,也就是说target是onehot形式,例如三类那么target=[0,0,1],拿target=[0,0,1]来说就是p00p_0=0p0​0p10p_1=0p1​0p21p_2=1p2​1。写成表达式可以是pip_ipi​,n=3那么经过神经网络运算出来的Logits可能是在(-inf,inf)之间,那么一般会通过softmax归一化到(0,1)之间,这个归一化到(0,1)之间的数我们可以用qiq_iqi​。

2023-09-03 16:45:26 421

转载 Torch类型转换type、type_as

【代码】Torch类型转换type、type_as。

2023-09-02 23:52:33 624

转载 大模型训练的性能指标:吞吐率 Throughput 是指什么?

经常看大模型的论文,特别是Megatron-LM的好几篇论文做了大量的性能对比,各种并行切分的策略。里面有大量的 throughput(吞吐量)。那么这个throughput 吞吐率或者吞吐量到底值得是什么?为什么会使用这个指标作为大模型的一个很重要的性能指标。以下转载自 https://www.zhihu.com/question/596311688/answer/2989554131。神经网络的吞吐量(Throughput)定义为网络模型在单位时间内(例如,1s)可以处理的最大输入的训练样本数据。

2023-08-30 23:13:29 1101

原创 量化QAT QLoRA GPTQ

模型量化的思路可以分为PTQ(Post-Training Quantization,训练后量化)和QAT(Quantization Aware Training,在量化过程中进行梯度反传更新权重,例如QLoRA),GPTQ是一种PTQ的思路。

2023-08-25 21:15:17 2361

转载 Wide&Deep中为什么带L1正则化项的FTRL作为wide部分的优化器,AdaGrad作为deep部分的优化器

为什么在Google的Wide&Deep模型中,要使用带L1正则化项的FTRL作为wide部分的优化方法,而使用AdaGrad作为deep部分的优化方法?论文原文的描述是这样的:这个问题是一个很有意思的问题,因为原文中一带而过,所以很多同学也没有注意到这一点。但深究起来,这又是一个关键的问题,它涉及到不同训练方法的区别联系,涉及到模型的稀疏性,甚至涉及到特征选择和业务理解。我们这篇文章就深入到Wide&Deep模型中去,从FTRL和AdaGrad出发,再剖析一次Wide&Deep模型(简称W&D)

2023-08-15 23:20:17 110

转载 梯度消失和梯度爆炸及解决方法

目前优化神经网络的方法都是基于BP,即根据损失函数计算的误差通过梯度反向传播的方式,指导深度网络权值的更新优化。其中将误差从末层往前传递的过程需要链式法则(Chain Rule)的帮助,因此反向传播算法可以说是梯度下降在链式法则中的应用。而链式法则是一个连乘的形式,所以当层数越深的时候,梯度将以指数形式传播。梯度消失问题和梯度爆炸问题一般随着网络层数的增加会变得越来越明显。在根据损失函数计算的误差通过梯度反向传播的方式对深度网络权值进行更新时,得到的梯度值接近0或特别大,也就是梯度消失或爆炸。

2023-08-14 23:31:46 187

原创 Dropout的rescale

dropout 有两种实现方式,Vanilla Dropout 和inverted Dropout。前者是 原始论文 中的朴素版后者在 Andrew Ng 的 cs231 课程中(https://cs231n.github.io/neural-networks-2/#init)有介绍。部分转述自: https://www.zhihu.com/question/60874090/answer/181672076?

2023-08-14 00:14:59 167

CH09-virtual memory1

虚拟内存 LRU 虚拟地址 物理地址 伙伴系统 Thrashing Belady

2014-05-29

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除