- 博客(22)
- 收藏
- 关注
原创 基于 DeepSpeed-Ulysses 的 SequenceParallel 介绍及软件实现
他的作用相当于分布式转置。第一步,对 K、Q、V,分别按照序列长度进行分割,得到 Local-Q、Local-K、Local-V,这里的 P 表示分割的数量,也就是对每一个 GPU 放入的序列长度是 N/P,通过 All-to-All 通信,获取序列长度为 N 但进行注意力头切割的。由于官方示例中使用的 deepspeed-ulysses 是 基于 megatron-deepspeed 的,而对于普通的 deepspeed 并没有例程,这里的实现仅按照个人想法实现,如果有问题,欢迎与我交流讨论。
2024-04-15 17:42:50 1496
原创 一套用于处理有序数据集合的 Python multiprocessing 多进程数据分割使用范例
之前很多博文是写有关分布式训练过程,即将模型放到多个 GPU 上进行训练,而对于一些跑在 CPU 上的密集型任务处理时,应该使用模块进行处理。Python 的模块提供了一个与线程类似的 API,用于创建和管理进程。多进程可以利用多核 CPU 的优势,执行 CPU 密集型任务时可以显著提高性能,因为每个进程可以在不同的 CPU 核心上运行。在一种使用场景中,假设我们需要对一套数据集进行处理,然而这一套数据集是有序的,也就是说,对于有序数据集,我们该如何并行的执行处理呢?
2024-04-08 10:23:28 918
原创 谈谈 Tokenization 如何注入攻击防御,防止原语料中 special tokens被编码
在自然语言处理(NLP)和机器学习领域,特别是在使用预训练的大语言模型(如BERT、GPT、Llama等)前,往往需要用特定的 tokenizer ,将原始语料文本分解成一个个 tokens ,以让模型理解,这一过程被称为 tokenization,tokenization 是文本预处理的关键步骤,它影响着模型的性能,"special tokens" 是指一些具有特殊意义的 tokens,它们不对应于实际的单词或短语,但在模型的架构和处理流程中扮演重要角色。然而,需要注意的是,例如,在BERT模型中,
2024-04-07 11:11:29 533
原创 详解 DeepSpeed Zero 的各个 Stage 状态及日常使用
通过运行发现,如果我们的模型本身占用的显存不大,比如选用了较小参数模型,那么绝大部分显存是被前向传播过程中产生的激活值所占用,这是很好理解的,激活内存用于存储神经网络在前向传播过程中计算的中间激活值。的设置,在每次进行反向传播的过程中,梯度被平均放在了各个设备上,在做梯度下降的过程中,会对梯度打包成一个个 chunk ,再进行梯度下降,当然这样做的原因就在于提高效率,但是当打包的尺寸太大时,也会导致显存占用的增加,控制这个打包尺寸的参数可以通过修改。相反,在前向传递中,将保存输入元组和函数参数。
2024-04-04 10:30:14 4554 3
原创 深度学习模型训练显存占用分析及DP、MP、PP分布式训练策略
模型并行在这样的背景下应运而生,MP 算法不同于 DP 将模型复制到每个设备上,MP 选择将模型拆开,每个 GPU 设备只保存模型权重的一部分,在 forward 前向传递过程中,数据将依次通过各个设备,一个设备的输出作为另外一个设备的输入。模型并行的优势在于面对参数量很大的模型,能够有效减少模型对显存的占用,带来的缺点也是明显的,假设我们有三个 GPU 设备,数据并行会同时使用这三个 GPU 进行训练,而模型并行用这三个设备执行一次训练,带来的时间损耗很大。
2024-03-31 22:33:12 1942 1
原创 如何不中断连接保持linux服务器持续运行 —— screen 使用介绍
在 linux 服务器上跑模型的时候,有时会在终端会话中持续了一段时间后超时断开,或者因为意外情况断网,如果正常在命令行终端执行程序时,此时会中断程序的进行,这很恼火,这就意味着要让程序持续运行,就必须得保持主机和服务器的连接,程序跑一晚上,主机就得开一晚上,那我还要服务器干什么,为了解决这个问题, screen 是个及其有用的方法。也可以启动一个会话,会自动命名,这里这个session_name 用处并不大,你既可以通过这个名字来访问会话,也可以通过 ID 来访问会话,而 ID 可以通过下条命令获取。
2024-03-17 21:47:43 1079 3
原创 更换电脑后,如何迁移 hexo 博客?包括建立本地 Git 与 Github 的公钥连接步骤详解
一般在 C:\\Users\\用户名\\.ssh 文件夹下(记得显示隐藏文件夹),生成了这个 id_rsa.pub 文件,即公钥,我们可以先用记事本打开,把里面的字符串保存一下,一会会用到。需要拷贝原电脑项目文件中的_config.yml,themes,source,scaffolds,package.json,.gitignore 等文件到新电脑新建的文件夹中或者建议直接将原文件夹整个打包拷贝到新电脑上。近日更换电脑后,想迁移本地的 hexo 博客,网上教程很多,但想做一个系统且全面的记录,故作此文。
2024-03-13 22:52:38 976
原创 如何理解深度学习领域中的端到端 (end to end)
CNN,卷积神经网络,算是我进入深度学习领域接触到的第一个应用级别的神经网络,他以及众多神经网络模型的端到端体现在于可以直接向模型输入原始图像,而不需要如提取特征这样的处理,根本原因在于,CNN 一连串的隐藏层在不断训练和学习的过程中,已经学会了自动识别输入图像的特征,这也是深度学习神经网络里最强大的能力之一,就是抽象输入原始数据特征。现在博客网站如 博客园、CSDN 、知乎乃至国外的博客网站很多,当我想写一点东西,或者想学一点东西的时候,我发现,博客上已经总结的很到位了,写的也很出色。
2024-03-13 22:41:05 990
原创 Qt C++ Python 混合编程测试文档
首先是.py程序的名称,别命名为test.py,会和python定义的重复的,随便都想,就是别用这个名字,否则不管你里面写什么函数一律找不到,以为它压根读到的就不是这个文件。PyObject 为 C++ 中 Python 的数据类型,传入 Python 函数的参数和从 Python 函数得到的返回值,必须以 PyObject 的形式存在。首先你导入库正确了,就像第三条说的那样做就行,接下来是这里的问题: 你只需要更改下构建的路径就行了,或者更简单的直接将对号去掉构建在当前工程同一个文件夹下。
2023-03-09 20:49:11 341
原创 Qt C++ Matlab 混合编程测试使用文档
其中.lib和.h文件是在Qt项目编译时需要用到的,.dll文件是程序运行时需要用到的。注意:需要多个 Matlab 函数时,需要将各个文件保存到不同的Matlab文件中,在下面的步骤中统一集合成相关动态链接库和头文件。为了方便查看matAdd.h的内容,还可以将matAdd.h文件添加到项目中,但是要注意不要修改matAdd.h文件的内容。除了自己编译生成的DLL相关的.lib文件和头文件,要编译此Qt项目,还需要用到MATLAB的几个.lib文件和.h文件。这里的N是按列排列的元素的总的序号。
2023-03-09 20:41:29 330
原创 机器学习(一)线性模型————理论篇 线性回归模型、对数几率模型、线性判别分析模型、多分类学习模型
线性模型(linear model)是通过学习一个属性的线性组合来进行预测的函数。线性模型形式简单,可解释性高,蕴含着机器学习中的重要思想,所以将线性模型列为机器学习的第一个模型。fxwTxbfxwTxb其中,ww1;w2;;wdw_2;\ldots;w2;;wd,反映了各个属性在预测中的重要性,当 $\boldsymbol{w} $和bbb确定后, 模型随之确定。基本线性回归模型。
2023-03-09 20:14:43 612
原创 信号与系统 Matlab 实验 画连续离散系统零极点图 分析连续、离散系统的频率特性 幅频特性曲线 相频特性曲线
信号与系统 Matlab 实验 画连续离散系统零极点图 分析连续、离散系统的频率特性 幅频特性曲线 相频特性曲线
2021-12-15 11:28:48 12829 4
原创 Verilog 学习使用 24译码器、编码器、奇偶效验电路、八位数值比较器、加法器、D锁存器、四位二进制计数器、通用四位移位寄存器
Verilog 学习使用 24译码器、编码器、奇偶效验电路、八位数值比较器、加法器、D锁存器、四位二进制计数器、通用四位移位寄存器
2021-12-15 11:22:26 5345 3
原创 LaTeX 常用语法格式总结 列表计数、图、公式、表格、参考文献环境
作为一名 LaTeX 深度爱好者,却因为常常忘记 LaTex 相关语法而被迫停止写作去浪费一定的时间查询相关内容,但长久以来,我发现自己常常查询的也就是这些常用而难以熟记的语法,现将其总结如下:
2021-12-15 11:18:22 2285
原创 基于深度优先搜索回溯法的人狼羊菜过河模型
本文介绍了一种合理规划农夫携带狼、羊、菜安全过河问题。对问题合理分析,将人、狼、羊、菜四者的某时刻状态量化为一向量,基于此结构建立安全位置状态集合,与安全运输状态集合,存储运输过程中可能的位置状态与运输状态。以初始状态向量为起点,采用回溯法,深度优先遍历所有可行路径,将符合题目条件并未重复的可行路径添入历史路径集合中,并记录此时的位置状态。递归至搜索到终止状态集合,输出所有历史位置状态集合,即为一条可行方案。回溯弹出,即可搜寻到所有可行路径。并根据所搜寻到的可行路径输出最短路径。
2021-12-15 11:15:34 4393 1
原创 机器学习之 Logistic 回归算法及其 Python 实现
机器学习之 Logistic回归算法及其 Python实现前言:机器学习分类算法初步感知器自适应线性神经元及其学习的收敛性逻辑斯蒂( Logistic)回归基本模型介绍通过代价函数获得权重ogistic I的 Python实现实现方式一:不使用机器学习第三方库实现方式二:使用 sklearn模块实现方式三:使用 Pytorch模块参考博文
2021-12-15 11:11:37 2817 2
原创 灰色预测模型
灰色预测模型是通过少量的、不完全的信息,建立数学模型做出预测的一种预测方法。基于客观事物的过去和现在的发展规律,借助于科学的方法对未来的发展趋势和状况进行描述和分析,并形成科学的假设和判断。对于时间序列短,统计数据少,信息不完全系统的分析与建模,具有独特的功效
2021-12-15 11:08:32 1126
原创 综合评价理想解法(TOPSIS解法)
问题的理想解法,理想解法亦称为 TOPSIS 法,是一种有效的多指标评价方法。这种方法。通过构造评价问题的正理想解和负理想解, 即各指标的最优解和最劣解,通过计算每个方案到理想方案的相对贴近度,即靠近正理想解和远离负理想解的程度,来对方案进行排序,从而选出最优方案。
2021-12-15 11:03:53 11266
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人