![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
学习笔记
文章平均质量分 85
哦豁灬
这个作者很懒,什么都没留下…
展开
-
LSTM 长短期记忆递归神经网络
人工神经网络(Aritificial Neural Networks, ANN)是一种仿生的网络结构,起源于对人类大脑的研究。人工神经网络(Aritificial Neural Networks)也常被简称为神经网络(Neural Networks, NN),基本思想是通过大量简单的神经元之间的相互连接来构造复杂的网络结构,信号(数据)可以在这些神经元之间传递,通过激活不同的神经元和对传递的信号进行加权来使得信号被放大或衰减,经过多次的传递来改变信号的强度和表现形式。原创 2024-03-04 01:43:36 · 1883 阅读 · 0 评论 -
Logistics人口模型
以 Logistics 模型为基础的人口模型优化。原创 2024-03-04 01:36:56 · 1682 阅读 · 2 评论 -
用 tensor-parallel 多卡并发推理大模型
利用 tensor-parallel 把模型训练与推理的 workload 平均分布到多块 GPU,一方面可以提高推理速度,另一方面 vram 的负载平衡也让复杂的 prompt 能被轻松处理。tensor parallel 在主流的推理框架已经很好的支持了,在这里,我们把我们的推理逻辑平均分布到了两块 GPU 上。原创 2024-03-02 01:16:42 · 993 阅读 · 0 评论 -
BP 神经网络原理
BP (Back Propagation) 神经网络是1986年由 Rumelhart 和 McClelland 为首的科学家提出的概念,是一种按照误差逆向传播算法训练的多层前馈神经网络,是应用最广泛的神经网络。原创 2024-03-02 01:14:21 · 1861 阅读 · 0 评论 -
关于all_reduce
假设每个worker的数据是一个长度为S的向量,那么个Ring AllReduce里,每个worker发送的数据量是O(S),和worker的数量N无关。一个略优的实现是利用主从式架构,将一个worker设为master,其余所有worker把数据发送给master之后,由master进行整合运算,完成之后再分发给其余worker。AllReduce具体实现的方法有很多种,最单纯的实现方式就是每个worker将自己的数据发给其他的所有worker,然而这种方式存在大量的浪费。原创 2024-03-01 00:56:03 · 940 阅读 · 0 评论 -
pytorch 多卡训练相关概念
如果GPU1和GPU2都分别得到两个特征层,那么两块GPU一共计算4个特征层的均值和方差,可以认为batch_size=4。注意:如果不用同步BN,而是每个设备计算自己的批次数据的均值方差,效果与单GPU一致,仅仅能提升训练速度;在混合精度训练上,Apex 的封装十分优雅。假设batch_size=2,每个GPU计算的均值和方差都针对这两个样本而言的。而BN的特性是:batch_size越大,均值和方差越接近与整个数据集的均值和方差,效果越好。Rank可以认为是这组能够互相通信的进程在World中的序号。原创 2024-02-29 00:24:57 · 570 阅读 · 0 评论 -
DDP(DistributedDataParallel) 分布式训练1——入门上手
DistributedDataParallel(DDP)是一个支持多机多卡、分布式训练的深度学习工程方法。原创 2024-02-28 01:30:48 · 2128 阅读 · 0 评论 -
DDP(DistributedDataParallel) 分布式训练2——原理与实践
DistributedSampler的实现方式是,不同进程会使用一个相同的随机数种子,这样shuffle出来的东西就能确保一致。一个分布式系统,相对于单机系统,其最大的特征就是,其数据、处理是分布在不同地方的。与此相伴的是,各节点间有交换数据的需求,为此需要定义交换数据的规范、接口。在DDP中,如果我们要在不同进程中维持相同的状态,我们不光要传递parameter的梯度,也要传递buffer。从本质上讲,当一个模型的网络结构被定义后,其状态就是由parameter和buffer的迭代组合表示的。原创 2024-02-28 01:31:56 · 532 阅读 · 0 评论 -
DDP(DistributedDataParallel) 分布式训练3——实践与技巧
1 在 DDP 中引入 syncBN1.1 syncBNSyncBN就是Batch Normalization(BN)。其跟一般所说的普通BN的不同在于工程实现方式:SyncBN能够完美支持多卡训练,而普通BN在多卡模式下实际上就是单卡模式。BN中有moving mean和moving variance这两个buffer,这两个buffer的更新依赖于当前训练轮次的batch数据的计算结果。但是在普通多卡DP模式下,各个模型只能拿到自己的那部分计算结果,所以在DP模式下的普通BN被设计为只利用主卡上的原创 2024-02-29 00:21:35 · 1410 阅读 · 0 评论 -
简单理解:CPU物理核心数,核心数,线程数,进程,线程,协程,并发,并行的概念
栈空间的使用是有明确限制的,栈中相邻的任意两条数据在地址上都是连续的。每隔一定时间,大概几十毫秒,就会切换线程,即切换任务(可能是同一个进程的线程,也可能是另外一个进程的线程,如果是其它进程的线程,会切换CR3)。thread_info 结构体中有一个 struct,即 task_struct *task,task 指向的就是这个进程或线程相关的 task_struct 对象(也在内核空间中),这个对象叫做进程描述符(叫做任务描述符更为贴切,因为每个线程也都有自己的 task_struct)。原创 2024-02-22 20:58:12 · 2402 阅读 · 2 评论 -
实时操作系统(RTOS)介绍
实时操作系统(RTOS)实时操作系统(Real-time operating system, RTOS),又称即时操作系统,它会按照排序运行、管理系统资源,并为开发应用程序提供一致的基础。实时操作系统与一般的操作系统相比,最大的特色就是“实时性”,如果有一个任务需要执行,实时操作系统会马上(在较短时间内)执行该任务,不会有较长的延时。这种特性保证了各个任务的及时执行。实时操作系统经常与嵌入式操作系统一起出现,实际上这是完全不同的两种东西。原创 2024-02-21 20:27:02 · 2613 阅读 · 0 评论 -
神经网络基本原理
下面是一个包含三个层次的神经网络。红色的是输入层,绿色的是输出层,紫色的是中间层(也叫隐藏层)。输入层有3个输入单元,隐藏层有4个单元,输出层有2个单元。设计一个神经网络时,输入层与输出层的节点数往往是固定的,中间层则可以自由指定;神经网络结构图中的拓扑与箭头代表着推理过程时数据的流向,跟训练时的数据流有一定的区别;结构图里的关键不是圆圈(代表“神经元”),而是连接线(代表“神经元”之间的连接)。每个连接线对应一个不同的权重(其值称为权值 tensor),这是需要训练得到的。原创 2024-02-05 01:59:22 · 2188 阅读 · 3 评论 -
深度学习预备知识2——数据预处理
Python中常用的数据分析工具中,通常使用pandas软件包。像庞大的Python生态系统中的许多其他扩展包一样,pandas可以与张量兼容。原创 2024-02-05 01:51:51 · 570 阅读 · 0 评论 -
深度学习预备知识1——数据操作
所有机器学习方法都涉及从数据中提取信息,因此需要一些关于数据的实用技能,包括存储、操作和预处理数据。机器学习通常需要处理大型数据集。线性代数和矩阵是计算大量数据的有力工具,需要一些矩阵运算相关的线性代数知识。深度学习是关于优化的学习。对于一个带有参数的模型,我们想要找到其中能拟合数据的最好模型。在算法的每个步骤中,决定以何种方式调整参数需要一点微积分知识。(autograd包会自动计算微分)机器学习还涉及如何做出预测:给定观察到的信息,某些未知属性可能的值是多少?因此需要一些统计与概率论相关的知识。原创 2024-02-04 23:20:51 · 546 阅读 · 0 评论 -
深度学习介绍
对于具备完善业务逻辑的任务,大多数情况下,正常的人都可以给出一个符合业务逻辑的应用程序。即使是顶级程序员也无难以提出完美的解决方案, 原因可能各不相同。有时任务可能遵循一种随着时间推移而变化的模式,我们需要程序来自动调整。有时任务内的关系可能太复杂(比如像素和抽象类别之间的关系),需要数千或数百万次的计算。即使人类的眼睛能毫不费力地完成这些难以提出完美解决方案的任务,这其中的计算也超出了人类意识理解范畴。机器学习(machine learning,ML)是一类强大的可以从经验中学习的技术。原创 2024-02-04 23:19:53 · 1687 阅读 · 0 评论