挖一挖
单车变摩托

DEKUBE.AI挖矿常见问题

常见问题
1.AI 训练需要非常高的带宽才能进行 GPU 到 GPU 的通信。集中式集群具有NVLink和Infinity Band,以保证传输速率。分布式 AI 训练如何满足这一要求?

分布式AI训练需要对网络传输的数据进行压缩。

目前,AI训练的网络数据压缩主要基于两个事实:

1. 基于AI训练的数据大多稀疏,分布式随机梯度下降训练中99.9%的梯度交换是冗余的。

2.可以压缩激活值的变化。

因此,存在大幅压缩通信传输数据的基础。

参考文献见附录。

一般来说,目前业界的压缩技术可以将1GBps网络带宽下的训练速度保持在10GBps网络带宽的80%,导致20%的性能损失。

图片来源:NeurIPS : 2022克服分散式培训的沟通瓶颈 (2/2)

附录:

AI训练网络传输数据压缩的行业研究:

https://together.ai/blog/neurips-2022-overcoming-communication-bottlenecks-for-decentralized-training-2

https://arxiv.org/abs/1712.01887

2.如何证明人工智能训练的工作量?

所有模型都生成具有特定标签的结构化数据。

集群的主节点对计算结果进行汇总处理时,会对获取的数据进行语法和语义检查。

计算节点容器只能加载用户在需求端指定的容器镜像。此检查是通过容器和 K8S 的原生函数完成的:验证加载图像的哈希值和标签。

计算任务、过程和结果将被记录在区块链上,以供后续审查。

在这种模式下,如果一个人想造假,成本大于它能得到的回报,就会变成严重的损失,这在经济上是不可行的。

3.它与传统的计算集群和现有的分布式计算项目有什么区别?

传统的集群是以太网固定IP,现有的分布式计算项目只能使用公网固定IP,只能由专业人员部署配置,在服务器之间连接。DEKUBE是互联网上的非固定IP。普通PC用户不了解传统集群是如何部署和配置的,因此使用普通用户的计算资源存在两个问题:

1、点对点网络(P2P网络)一般用于互联网上非固定IP之间的相互传输,如BT、eMule、传统区块链等。但这种传输速度低且不稳定。因此,我们增强了点对点网络层,将速度和稳定性提高了许多倍,以满足 GPU 间通信的需求。

2.我们做了全球唯一的计算节点客户端,让普通用户的整个集成过程变得简单,无需输入命令或编写代码即可直接使用。传统的集群,包括云计算服务提供商,以及现有的分布式计算项目,都无法做到这一点。

4.AI大模型训练如何容错?

在大规模训练过程中,由于节点数量较多,硬件、软件和网络不可避免地会出现间歇性故障和中断,例如A100卡满载运行一天,损坏率为1/10000。

因此,大型语言模型的训练过程往往有其自身的容错机制。

具体解决方案请参考:

https://arxiv.org/abs/2205.01068

https://arxiv.org/abs/2204.02311

5.DEKUBE如何确保安全?

用户的模型数据和输出结果经过加密并存储在存储节点上,只能访问用户自己的机密信息。即使是系统管理员也无法访问它。

主机与集群主节点和客户端服务器的通信是在加密通道中进行的,其信息无法被外界读取。

客户端监视主机用户操作,如果主机用户尝试读取客户端的数据,则主机将被踢出群集。

6.家用电脑的GPU卡种类很多,性能也参差不齐,训练大模型时对GPU卡有什么对齐要求吗?

大型模型训练通常对GPU性能有对齐要求,因此在DEKUBE任务分配系统中,相同的任务会分配性能相似的GPU。

7.AI训练对CPU、主板、内存有哪些要求?

典型的 GPU 需要四个 CPU 内核。

需要两倍于 GPU 的 CPU 内存容量。

CPU 和主板需要为每个 GPU 分配至少 8 个 PCI-E 通道。

8.大型模型AI训练的GPU内存消耗非常大,普通游戏显卡的GPU内存非常小。如何解决这个问题?

深度学习的 GPU 内存消耗有两种类型:

模型状态和残差状态,两者都会消耗大量 GPU 内存。

1. 模型状态主要有三种类型:优化器、梯度和参数。

将这三种类型的数据拆分为每个 GPU 可以产生三种拆分方法:

(其中模型参数的数量为 Ψ,K 是优化器数据量与参数之间的比率,Nd 是拆分的 GPU 数量)

POS:只有优化器状态是平均分配的。

POS+g:平均划分梯度状态和优化器状态。

POS+g+p:平均划分优化器状态、梯度和参数。

OS 和 OS+G 方法不会增加流量,并且是无损拆分方式,可以大大降低 GPU 内存需求。OS+G+P 方法可以在 GPU 足够的情况下无限降低 GPU 内存需求,让低端 GPU 可以参与超大型模型的训练,但会增加流量。当一个GPU的os+g+p数据拆分为64个GPU时,GPU之间的流量将增加50%。这种流量可以通过多种方式进行压缩,并且通常通信负载的增加并不大。

2.残余状态是指除模型状态之外的内存占用,包括激活值、各种缓冲区和不可用的内存碎片,其中主要内存占用来自激活值

激活优化还使用分片方法和检查点,这是一种将计算换成内存空间的方法,广泛用于GPU内存的存储优化。在 2017 年的 SKT 论文中,创建了一个检查点,将内存需求降低到原始内存需求的 1/3,性能为原始性能的 94%。

在模型训练过程中,经常会创建一些不同大小的临时缓冲区,解决方案是提前创建一个固定的缓冲区,在训练过程中不再动态创建,如果要传输的数据较小,则一次集成并传输多组数据,以提高效率。

GPU 内存碎片化的主要原因之一是,在检查点之后,那些未保存的激活值会不断创建和销毁,解决方案是预先分配一个连续的 GPU 内存,将模型状态和检查点存储在驻留的 GPU 内存中,并使用剩余的 GPU 内存进行动态创建和销毁。

9.如果大量矿工集中在一个地方,则需要有网络配置建议。

对于超过 100 张 GPU 卡,建议带宽大于 1 Gbps(上传带宽和下载带宽均大于 1 Gbps)。

建议10个以上GPU卡的带宽在500Mbit/s以上(上传带宽和下载带宽均大于500Mbps)。

10.请列出RX580或更高AMD卡和GTX1660或更高Nvidia卡与A100的计算能力/功耗比率。

亚马逊 8 卡 A100 80G 版本的当前价格为每小时 40.96 美元,或每张卡每月 3,686 美元。

假设NVIDIA A100 80G的训练性能为1,则各显卡的算力和功耗如下:

显卡

训练表现/

相对于 A100 80G

TDP/w

每瓦性能/

相对于 A100 80G

A100 80G

1

300

1

A100 40G

0.86

250

1.032

RTX4090

0.69

450

0.459

RTX4080

0.505

320

0.473

RTX4070

0.42

200

0.63

RTX3090

0.48

350

0.41

RTX3080

0.38

320

0.35

RTX3070Ti系列

0.34

290

0.35

RTX3060

0.24

170

0.42

RTX3050

0.16

130

0.37

RTX2080Ti系列

0.29

250

0.35

RTX2080

0.21

215

0.29

RTX2070

0.19

175

0.32

RTX2060

0.16

160

0.3

AMD Radeon VII

0.12

300

0.12

GTX1080Ti系列

0.2

250

0.24

GTX1070

0.13

150

0.26

GTX1660超级

0.09

125

0.216

AMD Rx580 8G

0.095

185

0.154

考虑到平均20%的网络损耗,实际分布式AI训练相对于集中式A100 80G计算集群的性能瓦特比如下:

显卡

训练表现/

相对于 A100 80G

TDP/w

每瓦性能/

相对于 A100 80G

RTX4090

0.552

450

0.367

RTX4080

0.404

320

0.378

RTX4070

0.336

200

0.504

RTX3090

0.384

350

0.328

RTX3080

0.304

320

0.28

RTX3070Ti系列

0.272

290

0.28

RTX3060

0.192

170

0.336

RTX3050

0.128

130

0.296

RTX2080Ti系列

0.232

250

0.28

RTX2080

0.168

215

0.232

RTX2070

0.152

175

0.256

RTX2060

0.128

160

0.24

AMD Radeon VII

0.096

300

0.096

GTX1080Ti系列

0.16

250

0.192

GTX1070

0.104

150

0.208

GTX1660超级

0.072

125

0.173

AMD Rx580 8G

0.076

185

0.123

11.如果我们遇到一个新的集中式竞争者,从零到1,我们可以期望开发和部署一个有效的竞争者系统多长时间?

预计开发、测试、部署一个云计算平台来管理分布式AI算力需要两年时间,这需要开发一个算力供需的集体招标系统,适配各种训练框架(TensorFlow、Pytorch、Kera、Theano等),并适配AMD的ROCm计算平台修改linux内核,形成多GPU运行环境, 开发适合为个人计算机提供分布式计算环境的虚拟机和客户端,为主节点提供灾难恢复处理和调度系统,开发网络压缩算法并优化点对点网络层以降低网络延迟等。

赞(0)
未经允许不得转载:io.net挖矿教程网 » DEKUBE.AI挖矿常见问题