自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(285)
  • 收藏
  • 关注

原创 【大模型LLM基础】自回归推理生成的原理以及什么是KV Cache?

通过缓存以前的键(Key)和值(Value),我们可以只关注计算新token的注意力。如下图,每当来一个新的tokenqnewq_{new}qnew​时,计算得到新的knewk_{new}knew​和vnewv_{new}vnew​,并将其拼接(concat)到缓存的KprevK_{prev}Kprev​和VprevV_{prev}Vprev​中。假设TTT是序列长度,DDD。

2024-03-25 18:47:34 1134

原创 【Bit-level量化】BSQ: Exploring Bit-Level Sparsity for Mixed-Precision Neural Network Quantization

论文题目:[ICLR 2021] BSQ: Exploring Bit-Level Sparsity for Mixed-Precision Neural Network Quantization其中,www是浮点表示,wqw_qwq​是对应的nnn-bit定点表示。反向传播时,由于Round函数不可微分,所以求导时用浮点www代替wqw_qwq​进行梯度计算。前向传播使用wqw_qwq​计算模型输出和损失函数,反向传播使用浮点www计算梯度,并且www在整个训练过程中都保持浮点表示!第1步:提取W的动态

2024-02-06 17:32:56 797

原创 由vscode自动升级到1.86导致的“终端可以ssh服务器,但是vscode无法连接服务器”

简单来说就是,ssh配置没动,前两天还可以用vscode连接服务器,今天突然就连不上了,但是用本地终端ssh可以顺利连接。

2024-02-03 17:38:27 1493 4

原创 快速数论变换NTT学习笔记

数论变换(number-theoretic transform, NTT)是离散傅里叶变换(DFT)在数论基础上的实现。NTT是一种计算卷积的快速算法,FFT也是其中一种。但是FFT具有一些实现上的缺点,举例来说,向量必须乘上复数系数的矩阵进行处理,而且每个复数系数的实部和虚部是一个正弦及余弦函数,因此大部分的系数都是浮点数,也就是说,必须做浮点复数运算,计算量会比较大,并且浮点数运算产生的误差会比较大。NTT解决的是多项式乘法带模数的情况,受到模数的限制,数也比较大。

2024-01-25 13:17:08 930

原创 快速傅立叶变换FFT学习笔记

FFT(Fast Fourier Transformation) 是离散傅氏变换(DFT)的快速算法,即快速傅氏变换。FFT使计算机计算离散傅里叶变换所需要的乘法次数大为减少,特别是被变换的抽样点数N越多,FFT算法计算量的节省就越显著。FFT可以将多项式乘法的复杂度从On2降到Onlogn。下图是FFT的整体计算流程,FFT变换的复杂度为Onlogn,FFT域上的pointwise乘法的复杂度为On,逆FFT变换的复杂度为Onlogn,总体复杂度为On。

2024-01-21 23:09:14 1082

原创 PyTorch中定义可学习参数及放入cuda时的坑

必须要注意的是,新定义的self.alpha必须要放入optimizer中才可以训练,因此,上面这段预推理的代码必须要放在声明optimizer之前!采用这种写法的话,必须要在正式训练模型之前进行一次预推理,该预推理可以是伪输入数据的推理,目的是预推理时构建好每一层所需要的self.alpha可学习参数。写法1先定义nn.Parameter,后放入cuda,会导致参数重新变回到tensor,从而不可学习;写法2先放入cuda,后定义nn.Parameter,可以成功定义参数,可以学习。

2024-01-18 19:04:47 577

原创 Pruning Papers

slS1−nl−1nlnl−1∗nl)1−nl−1nlwlhlnl−1∗nl∗wl∗hl。

2024-01-03 13:39:51 1037

原创 去掉乘法运算的加法移位神经网络架构

Adder层的输出都是负的,所以网络中引入batch normalization(BN)层和激活函数层。可以看到,AdderNet在三个CNN模型上都掉点很少,并且省去了所以乘法,也没有BNN中的XNOR操作,只是有了更多的加法,效率应该显著提高。但是,signSGD几乎没有采取最陡的下降方向,随着维度的增长,下降方向只会变得更糟,所以不适用于大参数量的模型优化。一种最直接的思路就是采用更大的学习率,本文发现不同层的梯度值差异很大,所以为了考虑不同层的filter情况,提出了不同层的自适应学习率。

2023-12-19 02:20:18 1529

原创 音频ncm格式转mp3格式

做个笔记,ncm格式转mp3格式

2023-12-15 20:00:10 792

原创 【数字电路】MacBook使用iverilog进行数字电路仿真

MacBook使用iverilog进行数字电路仿真

2023-12-15 10:34:33 809

原创 【隐私计算】tf-encrypted隐私计算框架/库基础

make build编译到最后可能出现如下问题:原因就是系统中g++的版本过低,需要升级,以至少支持g++14版本。

2023-12-13 01:29:57 585

原创 【密码学基础】Diffie-Hellman密钥交换协议

Diffie-Hellman密钥协议算法是一种确保共享密钥安全穿越不安全网络的方法。这个机制的巧妙在于需要安全通信的双方可以用这个方法确定对称密钥,然后可以用这个密钥进行加密和解密。但是注意,这个密钥交换协议双方确定要用的密钥后,要使用其他对称密钥操作加密算法实际加密和解密消息。

2023-12-10 10:20:29 1640

原创 【模型量化】神经网络量化基础及代码学习总结

量化是减少神经网络计算时间和能耗的最有效的方法之一。在神经网络量化中,权重和激活张量存储在比训练时通常使用的16-bit或32-bit更低的比特精度。当从32-bit降低到8-bit,存储张量的内存开销减少了4倍,矩阵乘法的计算成本则二次地减少了16倍。神经网络已被证明对量化具有鲁棒性,这意味着它们可以被量化到较低的位宽,而对网络精度的影响相对较小。然而,神经网络的量化并不是自由的。低位宽量化会给网络带来噪声,从而导致精度的下降。

2023-12-08 17:02:29 1515

原创 【隐私计算】安全三方计算(3PC)协议

由此可见,3PC和2PC都在本地计算加法,他们最大的不同就是乘法:在2PC乘法中,交叉项需要借助OT或HE计算,带来巨大的通信或计算开销;而基于复制秘密分享的3PC乘法完全在本地计算交叉项,无需通信,在re-sharing时需要少量的通信。ABY3中采用replicated secret sharing(复制秘密分享)机制,即2-out-of-3秘密分享,三个参与方的每一方都拥有share中的两份。下面来看一下这样做有什么好处。

2023-12-05 22:43:39 1063

原创 【隐私计算】VOLE (Vector Oblivious Linear Evaluation)学习笔记

近年来,VOLE(向量不经意线性评估)被用于构造各种高效安全多方计算协议,具有较低的通信复杂度。最近的CipherGPT则是基于VOLE对线性层进行计算。

2023-11-30 15:00:17 1663 3

原创 【隐私计算】算术秘密分享的加法和乘法运算(Beaver Triple预处理)

在安全多方计算中(MPC)中,算术秘密分享是最基础的机制。一直有在接触,但是一直没有整理清楚最基础的加法和乘法计算流程。

2023-11-29 22:55:51 1271

原创 【科研绘图】MacOS上的LaTeX公式插入工具——LaTeXiT

在Mac上经常用OmniGraffle绘图,但是有个致命缺点是没办法插入LaTeX公式,很头疼。之前有尝试用Pages文稿插入公式,但是调字体和颜色很麻烦。并且,PPT中的公式插入感觉也不太好看。偶然机会了解到了LaTeXiT这个工具,可以输入LaTeX公式,然后导出各种各样的格式(pdf、png、svg等),非常方便插入到各种绘图软件中。安装LaTeXiT则需要LaTeX环境,在MacOS上直接一键安装MacTex集成环境即可!使用方式非常简单,直接看下面的例子就OK了。

2023-11-10 14:58:40 663

原创 MacOS升级后命令行出现xcrun: error: invalid active developer path报错信息

解决方案:重新安装最新版的MacOS Command Line Tools。编译成功(忽略这个warning,是我代码中注释框不规范的问题…

2023-11-08 17:18:02 1361

原创 在MacBook上实现免费的PDF文件编辑

之前我想对PDF文件进行简单处理(比如删页面、添空白页、调整页面顺序),要么是开wps会员【花钱贵】,下载(盗版)Adobe Acrobat【macOS不好下载】,要么用福昕阅览器登陆学生账号(学校买过正版的话)。将PDF页面移动到另一个PDF中,所以相当于也能实现PDF的合并功能!具体操作很简单,打开左侧的缩略图中,用键盘的删除键进行页面删除,用鼠标拖动进行页面移动,点击左下角的小加号进行页面添加。今天看CVPR模版的时候,发现官方很贴心地给了免费调整PDF文件的方法,如图是Mac官方文档。

2023-11-07 21:03:51 836

原创 cp没有--exclude选项!Linux复制文件夹时如何排除一些文件?

之前使用tar命令压缩文件将时,使用了–exclude选项排除了一些不需要的文件。现在我想复制一个文件夹,但是其中一些文件不需要复制,此时注意到cp命令居然没有–exclude选项。

2023-11-05 21:18:07 1508

原创 Docker容器中执行throttle.sh显示权限报错:RTNETLINK answers: Operation not permitted

解决方案说简单也挺简单,只需要两步完成。但是其实又蛮繁琐,因为需要将现在的容器保存为镜像,然后从镜像重新创建容器(关键点是在创建新容器过程中加入权限指令)。但是,出现了权限的报错:RTNETLINK answers: Operation not permitted。

2023-11-05 17:00:56 1010

原创 上传LaTeX版本的NeurIPS文章到arXiv总是Failed的解决方案

总觉得这个问题的出现和模版息息相关,之前用ICCV之类的模版都非常顺利,也没有额外处理什么。这个报错我根本看不懂,其实也以为不重要,所以一直在解决前面说的图片问题。和别人交流后,发现这个位置可能才是报错的原因!而我之前上传ICCV文章时,同样的写法并没出错,由此可见,应该不是图片的错误,可能是模版里的固有错误(?然后再通过overleaf到处arXiv需要的bbl文件,上传到arXiv,惊喜地发现上传成功了!仍然是相同的错误,于是我又尝试去掉figs这个二级目录,也是同样的错误。

2023-11-03 14:50:33 277

原创 【Python】一个最基础,但是超难看出来的类声明为tuple的BUG

小结一句,Python末尾是没有分号或者逗号的,要防止误敲无关字符!为啥这个class是个tuple类型呀!原因非常简单,我在声明类的时候,

2023-10-25 11:54:14 74

原创 【Bash】记录一个长命令换行的BUG

最后,小结一句:在用bash写长命令时,可以分行,但是分行要带换行符 \,并且不要随意用注释,会导致后面的参数无法传入。实在不会的话,在bash里放不换行的长命令就行。由于这个命令太长了,有这样一些问题:1. 改起来不方便,2. 没法存档,3. 不方便在之前命令的基础上修改后并行跑模型。所以,这个长命令可以写成这样一个。接下来,就是我踩坑的地方了!

2023-10-24 16:21:11 714

原创 【C++】关于using namepace xxx 使用命名空间和冲突

命名空间是C++的一种机制,用来把单个标识符下的大量有逻辑联系的程序实体组合到一起。此标识符作为此组群的名字。

2023-08-30 12:54:44 220

原创 【关于乘法这些事儿】概念和代码的区分

这种运算方式得到的结果是一个标量。由此可见,内积和矩阵乘法中每个输出值的计算方式一致。

2023-08-25 22:10:22 157

原创 MacBook外接键盘修改键位

众所周知,MacBook的键盘和Windows差别很大,比如我们最常用的ctrl+cv在Mac下是command+cv…同时,也有其他的修改方案,适用于Win的操作习惯(ctrl+cv才是复制粘贴):https://blog.csdn.net/lg346426260/article/details/72518263。首先,我们要知道Win键在Mac系统中是多余的,并且command是最最最常用的按键(同时截图依赖于这个按键)。因此,我们的重点是将Mac的command映射到外接键盘的“空格左边”的按键上。

2023-07-21 14:21:13 3651

原创 【深度学习随笔】神经网络中去掉残差连接的工作

刚刚有个同学问我:“深层神经网络如果去掉一部分残差,到底还能不能正常训练呀?”这个问题着实很好,我也没思考过,也没尝试过,然后试着去Google Scholar检索了一下关键词“without shorcut”,于是看到了以下的文章。让我比较惊奇的是,这是个很多人研究的方向,并且近年来不少文章发表在AI三大会。其中包含:1)残差的融合提高效率(重参数化);2)去除一部分残差提高效率;3)用更好的架构替代传统残差等多个方面,还挺值得总结一下的。

2023-07-12 15:00:39 701

原创 【科研绘图】MacOS系统OmniGraffle实用指南(持续更新)

按住Shift后调整元素位置或调整线段,可以保证是沿着水平/垂直方向进行:锁定某个元素:导出文件各种格式(论文里常用jpg、png、pdf)得益于MacBook触控板的便捷,三指拖动对画图尤其方便右边栏版面可以设置无限版面或固定版面,方便导出图像时的自动裁剪,保证不留白矩形在形状中可以很方便地设置圆角从阿里的矢量图库获取矢量图插入OmniGraffle页面中:https://www.iconfont.cn。

2023-07-12 10:48:13 1512 8

原创 【密码学基础】半/全同态加密算法基础学习笔记

这个过程就是同态函数D来实现的,D是密文空间中的同态解密算子,即用加密的私钥sk解密密文ct,得到加密的明文Enc(m),也就是密文ct本身。随机多项式e是服从高斯分布,大概率是非常小的,所以解密是可以被四舍五入掉(比如示例中的0.15x^2和0.04两项)。本质上,Bootstrapping的过程就是从密文ct到ct的变化,特别之处就是中间存在一步同态解密过程,消除了(累积的)噪声。定义:能在加密的数据上进行任意数量的加法和乘法运算的加密算法,使得密文计算结果解密后与明文直接计算结果相同。

2023-07-03 22:18:46 1994 2

原创 【Linux】常用文件压缩/解压命令

如果只打包代码(存储少),直接tar即可;如果项目中有模型权重文件(存储多),建议tar.gz好一些。每次压缩/解压文件都要搜一下命令,所以就在这里记录一下常用的命令吧。

2023-06-30 11:49:10 769

原创 【随机种子初始化】一个神经网络模型初始化的大坑

两个项目文件,看似模型、超参数、数据集、随机种子、服务器完全一致时,发现训练时两者无法保持完全一致,并且进一步发现两个项目文件在初始化模型参数时就不一致了。而单独地重复训练每一个项目文件,都能重复自身的结果。直观感觉就是随机种子并没有有效地作用到另一个项目上,是一个很奇怪的问题,有点违背常识。训练过程不一致是表象,实际上是模型初始化就不一致了。如果想要用随机种子控制模型初始化参数完全一致,就必须保证模型的架构完全一致!

2023-06-18 23:41:07 1224

原创 【Tmux】窗口周围出现大量点点导致窗口面积减小

某次打开tmux窗口后,发现了下图的问题,一直无法解决,也一直不知道原因。能做的要么是妥协,但是实在不方便,要么是kill-session后重新new一个,也实在是不方便。

2023-04-30 18:19:22 1383 5

原创 【C++】判断语句中对变量的合理定义

这里的m要么取2要么取4,所以会出现两条分支。int m = 2;// 分支1 mat G = {mat B = {mat A = {// 分支2 cout

2023-04-17 15:05:33 358 1

原创 【密码学基础】混淆电路(Garbled Circuit)

Alice和Bob完成上述的通信后(Alice替换真实值发给Bob,Bob从Alice手里取到对应替换值,Alice将混淆表发给Bob),Bob尝试进行电路解密。给Alice,Alice知道替换值与原始值的替换关系,所以可以快速替换回真实值,并且可以将最终的真实结果分享给Bob。中的其一,并且Alice无从知晓Bob到底取走了哪个,从而无法知道Bob手里的真实值是多少。使用这两个值,对混淆表进行对称密钥解密,最终,只有第3行是可以解密出结果的!随后,Alice也将混淆表发送给Bob进行后续的计算。

2022-12-12 18:43:12 3723 5

原创 【隐私计算】SIRNN: A Math Library for Secure RNN Inference

Paper: SIRNN: A Math Library for Secure RNN InferenceCode: https://github.com/mpc-msri/EzPC.2PC在整数上运算比在浮点数上运算更高效,在定点运算数中,⌊r2s⌋mod2l\lfloor r2^s\rfloor mod 2^l⌊r2s⌋mod2l,其中lll就是bitwidth,sss是scale。安全参数:λ=128\lambda=128λ=128基于4种构造块:(1)Extension(扩展)Z2m→Z2n

2022-12-01 01:32:45 1247

原创 【密码学基础】RSA加密算法

不能太小,如果他们足够大,那么根据目前的计算机技术和其他工具,至今也没能从。足够大(1024足够),基本上不可能从公钥信息推出私钥信息。最大公因数为1(互质),因此保证step 4生成解密密钥。首先选取两个互为质数的数。也就是说,只要密钥长度。根据欧拉函数,不大于。

2022-11-29 17:51:00 12376

原创 【密码学基础】Oblivious Transfer(不经意传输)

头一次开始学密码学相关的东西,未来的主要研究方向包括了隐私计算,即隐私保护下的机器学习算法。

2022-11-28 17:40:48 2975 3

原创 【tmux】终端复用器!让代码挂服务器后台执行

tmux终端复用器!实现窗口与会话的“解绑”。

2022-10-23 15:41:49 2620 2

原创 将CIFAR-10和CIFAR-100数据集处理成“标签文件夹”形式(ImageFolder可读)

将以下python脚本放置到数据集源文件中,执行即可。然后得到的数据格式就是ImageFolder可读的形式了(划分了train和val文件夹,并且每个文件夹下都有#classes个以label命名的文件夹)

2022-10-03 18:43:51 1132 3

空空如也

空空如也

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

TA关注的人

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