首页 > 极速快讯 > 矿圈资讯 > Foresight Ventures: 理性看待去中心化算力网络

Foresight Ventures: 理性看待去中心化算力网络

时间: 2023-06-05 来源:极速科技
作者: Ian Xu@Foresight Ventures

TL;DR
现在AI + Crypto结合的点首要有2个比较大的方向:散布式算力和ZKML;关于ZKML能够参看我之前的一篇文章。本文将盘绕去中心化的散布式算力网络做出剖析和反思。

在AI大模型的打开趋势下,算力资源会是下一个十年的大战场,也是未来人类社会最重要的东西,而且不只是停留在商业竞赛,也会成为大国博弈的战略资源。未来关于高功能核算基础设施、算力储藏的出资将会指数级上升。

去中心化的散布式算力网络在AI大模型练习上的需求是最大的,可是也面对最大的应战和技能瓶颈。包含需求杂乱的数据同步和网络优化问题等。此外,数据隐私和安全也是重要的制约要素。尽管有一些现有的技能能供给开端处理计划,但在大规划散布式练习使射中,因为核算和通讯开支巨大,这些技能仍无法运用。比特币矿机

去中心化的散布式算力网络在模型推理上更有时机落地,能够猜测未来的增量空间也满意大。但也面对通讯推迟、数据隐私、模型安全等应战。和模型练习比较,推理时的核算杂乱度和数据交互性较低,更适合在散布式环境中进行。

经过Together和Gensyn.ai两个草创公司的事例,分别从技能优化和鼓动层规划的视点说清楚去中心化的散布式算力网络全体的研讨方向和详细思路。蚂蚁矿机

一、散布式算力—大模型练习
咱们在评论散布式算力在练习时的运用,一般集合在大言语模型的练习,首要原因是小模型的练习对算力的需求并不大,为了做散布式去搞数据隐私和一堆工程问题不划算,不如直接中心化处理。而大言语模型对算力的需求巨大,而且现在在爆发的开端阶段,2012-2018,AI的核算需求大约每4个月就翻一倍,现在更是对算力需求的会集点,能够预判未来5-8年依然会是巨大的增量需求。

在巨大时机的一起,也需求清楚的看到问题。咱们都知道场景很大,可是详细的应战在哪里?谁能target这些问题而不是盲目入局,才是判别这个赛道优异项目的中心。



(NVIDIA NeMo Megatron Framework)
1.全体练习流程
以练习一个具有1750亿参数的大模型为例。因为模型规划巨大,需求在许多个GPU设备上进行并行练习。假定有一个中心化的机房,有100个GPU,每个设备具有32GB的内存。

数据预备:首要需求一个巨大的数据集,这个数据集包含例如互联网信息、新闻、书本等各种数据。在练习前需求对这些数据进行预处理,包含文本清洗、符号化(tokenization)、词表构建等。

数据切开:处理完的数据会被切开成多个batch,以在多个GPU上并行处理。假定挑选的batch巨细是512,也便是每个批次包含512个文本序列。然后,咱们将整个数据集切开成多个批次,构成一个批次队伍。

设备间数据传输:在每个练习进程开端时,CPU从批次队伍中取出一个批次,然后将这个批次的数据经过PCIe总线发送到GPU。假定每个文本序列的均匀长度是1024个符号,那么每个批次的数据巨细约为512 * 1024 * 4B = 2MB(假定每个符号运用4字节的单精度浮点数标明)。这个数据传输进程一般只需求几毫秒。

并行练习:每个GPU设备接收到数据后,开端进行前向传达(forward pass)和反向传达(backward pass)核算,核算每个参数的梯度。因为模型的规划十分大,单个GPU的内存无法寄存悉数的参数,因而咱们运用模型并行技能,将模型参数散布在多个GPU上。

梯度聚合和参数更新:在反向传达核算完毕后,每个GPU都得到了一部分参数的梯度。然后,这些梯度需求在悉数的GPU设备之间进行聚合,以便核算大局梯度。这需求经过网络进行数据传输,假定用的是25Gbps的网络,那么传输700GB的数据(假定每个参数运用单精度浮点数,那么1750亿参数约为700GB)需求约224秒。然后,每个GPU依据大局梯度更新其存储的参数。

同步:在参数更新后,悉数的GPU设备需求进行同步,以保证它们都运用一起的模型参数进行下一步的练习。这也需求经过网络进行数据传输。

重复练习进程:重复上述进程,直到完毕悉数批次的练习,或许抵达预定的练习轮数(epoch)。

这个进程触及到许多的数据传输和同步,这或许会成为练习功率的瓶颈。因而,优化网络带宽和推迟,以及运用高效的并行和同步战略,关于大规划模型练习十分重要。

2.通讯开支的瓶颈:
需求留心的是,通讯的瓶颈也是导致现在散布式算力网络做不了大言语模型练习的原因。

各个节点需求再三地交流信息以协同作业,这就产生了通讯开支。关于大言语模型,因为模型的参数数量巨大这个问题尤为严峻。通讯开支分这几个方面:

数据传输:练习时节点需求再三地交流模型参数和梯度信息。这需求将许多的数据在网络中传输,耗费许多的网络带宽。假定网络条件差或许核算节点之间的间隔较大,数据传输的推迟就会很高,进一步加大了通讯开支。

同步问题:练习时节点需求协同作业以保证练习的正确进行。这需求在各节点之间进行再三的同步操作,例如更新模型参数、核算大局梯度等。这些同步操作需求在网络中传输许多的数据,而且需求等候悉数节点完毕操作,这会导致许多的通讯开支和等候时间。

梯度累积和更新:练习进程中各节点需求核算自己的梯度,并将其发送到其他节点进行累积和更新。这需求在网络中传输许多的梯度数据,而且需求等候悉数节点完毕梯度的核算和传输,这也是导致许多通讯开支的原因。

数据一起性:需求保证各节点的模型参数坚持一起。这需求在各节点之间进行再三的数据校验和同步操作,这会导致许多的通讯开支。

尽管有一些方法能够削减通讯开支,比方参数和梯度的紧缩、高效并行战略等,可是这些方法或许会引进额外的核算背负,或许对模型的练习作用产生负面影响。而且,这些方法也不能完全处理通讯开支问题,特别是在网络条件差或核算节点之间的间隔较大的状况下。

举一个比方:

去中心化散布式算力网络

GPT-3模型有1750亿个参数,假定咱们运用单精度浮点数(每个参数4字节)来标明这些参数,那存储这些参数就需求~700GB的内存。而在散布式练习中,这些参数需求在各个核算节点之间再三地传输和更新。

假定有100个核算节点,每个节点每个进程都需求更新悉数的参数,那么每个进程都需求传输约70TB(700GB*100)的数据。假定咱们假定一个进程需求1s(十分豁达的假定),那么每秒钟就需求传输70TB的数据。这种对带宽的需求现已远超过了大多数网络,也是一个可行性的问题。

实践状况下,因为通讯推迟和网络拥堵,数据传输的时间或许会远超1s。这意味着核算节点或许需求花费许多的时间等候数据的传输,而不是进行实践的核算。这会大大下降练习的功率,而这种功率上的下降不是等一等就能处理的,而是可行和不可行的不同,会让整个练习进程不可行。

中心化机房

就算是在中心化的机房环境下,大模型的练习依然需求很重的通讯优化。

在中心化的机房环境中,高功能核算设备作为集群,经过高速网络进行联接来同享核算使命。可是,即使在这种高速网络环境中练习参数数量极大的模型,通讯开支依然是一个瓶颈,因为模型的参数和梯度需求在各核算设备之间进行再三的传输和更新。

就像开端提到的,假定有100个核算节点,每个服务器具有25Gbps的网络带宽。假定每个服务器每个练习进程都需求更新悉数的参数,那每个练习进程需求传输约700GB的数据需求~224秒。经过中心化机房的优势,开发者能够在数据中心内部优化网络拓扑,并运用模型并行等技能,明显地削减这个时间。

比较之下,假定在一个散布式环境中进行相同的练习,假定仍是100个核算节点,散布在全球各地,每个节点的网络带宽均匀只要1Gbps。在这种状况下,传输相同的700GB数据需求~5600秒,比在中心化机房需求的时间长得多。而且,因为网络推迟和拥塞,实践所需的时间或许会更长。

不过比较于在散布式算力网络中的状况,优化中心化机房环境下的通讯开支相对容易。因为在中心化的机房环境中,核算设备一般会联接到同一个高速网络,网络的带宽和推迟都相对较好。而在散布式算力网络中,核算节点或许散布在全球各地,网络条件或许会相对较差,这使得通讯开支问题更为严峻。

OpenAI 练习 GPT-3 的进程中采用了一种叫Megatron的模型并行框架来处理通讯开支的问题。Megatron 经过将模型的参数切开并在多个 GPU 之间并行处理,每个设备只担任存储和更新一部分参数,然后削减每个设备需求处理的参数量,下降通讯开支。一起,练习时也采用了高速的互连网络,并经过优化网络拓扑结构来削减通讯途径长度。



(Data used to train LLM models)
3.为什么散布式算力网络不能做这些优化
要做也是能做的,但比较中心化的机房,这些优化的作用很受限。

网络拓扑优化:在中心化的机房能够直接控制网络硬件和布局,因而能够依据需求规划和优化网络拓扑。可是在散布式环境中,核算节点散布在不同的地理位置,甚至一个在我国,一个在美国,没方法直接控制它们之间的网络联接。尽管能够经过软件来优化数据传输途径,但不如直接优化硬件网络有用。一起,因为地理位置的差异,网络推迟和带宽也有很大的改动,然后进一步捆绑网络拓扑优化的作用。

模型并行:模型并行是一种将模型的参数切开到多个核算节点上的技能,经过并行处理来进步练习速度。可是这种方法一般需求再三地在节点之间传输数据,因而对网络带宽和推迟有很高的要求。在中心化的机房因为网络带宽高、推迟低,模型并行能够十分有用。可是,在散布式环境中,因为网络条件差,模型并行会遭到较大的捆绑。

4.数据安全和隐私的应战
几乎悉数触及数据处理和传输的环节都或许影响到数据安全和隐私:

数据分配:练习数据需求被分配到各个参与核算的节点。这个环节数据或许会在散布式节点被恶意运用/走漏。

模型练习:在练习进程中,各个节点都会运用其分配到的数据进行核算,然后输出模型参数的更新或梯度。这个进程中,假定节点的核算进程被盗取或许作用被恶意解析,也或许走漏数据。

参数和梯度聚合:各个节点的输出需求被聚合以更新大局模型,聚合进程中的通讯也或许走漏关于练习数据的信息。

关于数据隐私问题有哪些处理计划?

安全多方核算:SMC在某些特定的、规划较小的核算使射中现已被成功运用。但在大规划的散布式练习使射中,因为其核算和通讯开支较大,现在还没有广泛运用。

差分隐私:运用在某些数据收集和剖析使射中,如Chrome的用户计算等。但在大规划的深度学习使射中,DP会对模型的准确性产生影响。一起,规划恰当的噪声生成和添加机制也是一个应战。

联邦学习:运用在一些边缘设备的模型练习使射中,比方Android键盘的词汇猜测等。但在更大规划的散布式练习使射中,FL面对通讯开支大、谐和杂乱等问题。

同态加密:在一些核算杂乱度较小的使射中现已被成功运用。但在大规划的散布式练习使射中,因为其核算开支较大,现在还没有广泛运用。

小结一下

以上每种方法都有其习惯的场景和局限性,没有一种方法能够在散布式算力网络的大模型练习中完全处理数据隐私问题。

寄予厚望的ZK是否能处理大模型练习时的数据隐私问题?

理论上ZKP能够用于保证散布式核算中的数据隐私,让一个节点证明其现已按照规矩进行了核算,但不需求泄漏实践的输入和输出数据。

但实践大将ZKP用于大规划散布式算力网络练习大模型的场景中面对以下瓶颈:

核算和通讯开支up:结构和验证零常识证明需求许多的核算资源。此外,ZKP的通讯开支也很大,因为需求传输证明本身。在大模型练习的状况下,这些开支或许会变得特别明显。例如,假定每个小批量的核算都需求生成一个证明,那么这会明显添加练习的全体时间和本钱。

ZK协议的杂乱度:规划和完毕一个适用于大模型练习的ZKP协议会十分杂乱。这个协议需求能够处理大规划的数据和杂乱的核算,而且需求能够处理或许呈现的反常报错。

硬件和软件的兼容性:运用ZKP需求特定的硬件和软件支撑,这或许在悉数的散布式核算设备上都不可用。

小结一下

要将ZKP用于大规划散布式算力网络练习大模型,还需求长达数年的研讨和开发,一起也需求学术界有更多的精力和资源放在这个方向。

二、散布式算力—模型推理
散布式算力其他一个比较大的场景在模型推理上,按照咱们关于大模型打开途径的判别,模型练习的需求会在经过一个高点后跟着大模型的老练而逐渐放缓,但模型的推理需求会相应地跟着大模型和AIGC的老练而指数级上升。

推理使命相较于练习使命,一般核算杂乱度较低,数据交互性较弱,更适合在散布式环境中进行。



(Power LLM inference with NVIDIA Triton)
1.应战
通讯推迟:

在散布式环境中,节点间的通讯是必不可少的。在去中心化的散布式算力网络中,节点或许广泛全球,因而网络推迟会是一个问题,特别是关于需求实时呼应的推理使命。

模型安置和更新:

模型需求安置到各个节点上。假定模型进行了更新,那么每个节点都需求更新其模型,需求耗费许多的网络带宽和时间。

数据隐私:

尽管推理使命一般只需求输入数据和模型,不需求回传许多的中心数据和参数,可是输入数据依然或许包含活络信息,如用户的个人信息。

模型安全:

在去中心化的网络中,模型需求安置到不受信任的节点上,会导致模型的走漏导致模型产权和乱用问题。这也或许引发安全和隐私问题,假定一个模型被用于处理活络数据,节点能够经过剖析模型行为来推断出活络信息。

质量控制:

去中心化的散布式算力网络中的每个节点或许具有不同的核算才华和资源,这或许导致推理使命的功能和质量难以保证。

2.可行性
核算杂乱度:

在练习阶段,模型需求重复迭代,练习进程中需求对每一层核算前向传达和反向传达,包含激活函数的核算、损失函数的核算、梯度的核算和权重的更新。因而,模型练习的核算杂乱度较高。

在推理阶段,只需求一次前向传达核算猜测作用。例如,在GPT-3中,需求将输入的文本转化为向量,然后经过模型的各层(一般为Transformer层)进行前向传达,终究得到输出的概率散布,并依据这个散布生成下一个词。在GANs中,模型需求依据输入的噪声向量生成一张图片。这些操作只触及模型的前向传达,不需求核算梯度或更新参数,核算杂乱度较低。

数据交互性:

在推理阶段,模型一般处理的是单个输入,而不是练习时的大批量的数据。每次推理的作用也只依托于当时的输入,而不依托于其它的输入或输出,因而无需进行许多的数据交互,通讯压力也就更小。

以生成式图片模型为例,假定咱们运用GANs生成图片,咱们只需求向模型输入一个噪声向量,然后模型会生成一张对应的图片。这个进程中,每个输入只会生成一个输出,输出之间没有依托联系,因而无需进行数据交互。

以GPT-3为例,每次生成下一个词只需求当时的文本输入和模型的状况,不需求和其他输入或输出进行交互,因而数据交互性的要求也弱。

小结一下

不管是大言语模型仍是生成式图片模型,推理使命的核算杂乱度和数据交互性都相对较低,更适合在去中心化的散布式算力网络中进行,这也是现在咱们看到大多数项目在发力的一个方向。

三、项目
去中心化的散布式算力网络的技能门槛和技能广度都十分高,而且也需求硬件资源的支撑,因而现在咱们并没有看到太多查验。以Together和Gensyn.ai举例:

1.Together


(RedPajama from Together)
Together是一家专心于大模型的开源,致力于去中心化的AI算力计划的公司,希望任何人在任何当地都能触摸和运用AI。Together刚完毕了Lux Capital领投的20m USD的种子轮融资。

Together由Chris、Percy、Ce联合创建,初衷是因为大模型练习需求许多高端的GPU集群和贵重的开支,而且这些资源和模型练习的才华也会集在少量大公司。

从我的视点看,一个比较合理的散布式算力的创业规划是:

Step1. 开源模型

要在去中心化的散布式算力网络中完毕模型推理,先决条件是节点必须能低本钱地获取模型,也便是说运用去中心化算力网络的模型需求开源(假定模型需求在相应的许可下运用,就会添加完毕的杂乱性和本钱)。比方chatgpt作为一个非开源的模型,就不适合在去中心化算力网络上实施。

因而,能够推测出一个供给去中心化算力网络的公司的隐形壁垒是需求具有强健的大模型开发和保护才华。自研并开源一个强健的base model能够必定程度上脱节对第三方模型开源的依托,处理去中心化算力网络最基本的问题。一起也更有利于证明算力网络能够有用地进行大模型的练习和推理。

而Together也是这么做的。最近发布的依据LLaMA的RedPajama是由Together, Ontocord.ai, ETH DS3Lab, Stanford CRFM和Hazy Research等团队联合发动的,方针是研制一系列完全开源的大言语模型。

Step2. 散布式算力在模型推理上落地

就像上面两节提到的,和模型练习比较,模型推理的核算杂乱度和数据交互性较低,更适合在去中心化的散布式环境中进行。

在开源模型的基础上,Together的研制团队针对RedPajama-INCITE-3B模型现做了一系列更新,比方运用LoRA完毕低本钱的微调,使模型在CPU(特别是运用M2 Pro处理器的MacBook Pro)上工作模型更加丝滑。一起,尽管这个模型的规划较小,但它的才华却超过了相同规划的其他模型,而且在法则、社交等场景得到了实践运用。

Step3. 散布式算力在模型练习上落地



(Overcoming Communication Bottlenecks for Decentralized Training的算力网络示意图)
从中长时间来看,尽管面对很大的应战和技能瓶颈,接受AI大模型练习上的算力需求必定是最诱人的。Together在建立之初就开端布局怎样打败去中心化练习中的通讯瓶颈方面的作业。他们也在NeurIPS 2022上发布了相关的论文:Overcoming Communication Bottlenecks for Decentralized Training。咱们能够首要归纳出以下方向:

调度优化

在去中心化环境中进行练习时,因为各节点之间的联接具有不同的推迟和带宽,因而,将需求重度通讯的使命分配给拥有较快联接的设备是很重要的。Together经过建立模型来描绘特定调度战略的本钱,更好地优化调度战略,以最小化通讯本钱,最大化练习吞吐量。Together团队还发现,即使网络慢100倍,端到端的练习吞吐量也只慢了1.7至2.3倍。因而,经过调度优化来追赶散布式网络和中心化集群之间的差距很有戏。

通讯紧缩优化

Together提出了关于前向激活和反向梯度进行通讯紧缩,引进了AQ-SGD算法,该算法供给了对随机梯度下降收敛的严格保证。AQ-SGD能够在慢速网络(比方500 Mbps)上微调大型基础模型,与在中心化算力网络(比方10 Gbps)无紧缩状况下的端到端练习功能比较,只慢了31%。此外,AQ-SGD还能够与最先进的梯度紧缩技能(比方QuantizedAdam)结合运用,完毕10%的端到端速度提高。

项目总结

Together团队装备十分全面,成员都有十分强的学术布景,从大模型开发、云核算到硬件优化都有行业专家支撑。而且Together在途径规划上的确展现出了一种长时间有耐性的姿态,从研制开源大模型到查验放置算力(比方mac)在散布式算力网络用语模型推理,再到散布式算力在大模型练习上的布局。— 有那种厚积薄发的感觉了:)

可是现在并没有看到Together在鼓动层过多的研讨作用,我认为这和技能研制具有相同的重要性,是保证去中心化算力网络打开的要害要素。

2.Gensyn.ai


(Gensyn.ai)
从Together的技能途径咱们能够大致了解去中心化算力网络在模型练习和推理上的落地进程以及相应的研制要害。

另一个不能忽视的要害是算力网络鼓动层/一起算法的规划,比方一个优异的网络需求具有:

保证收益满意有吸引力;

保证每个矿工获得了应有的收益,包含防做弊和多劳多得;

保证使命在不同节点直接合理调度和分配,不会有许多放置节点或许部分节点过度拥堵;

鼓动算法简练高效,不会形成过多的体系背负和推迟;

……

看看Gensyn.ai是怎样做的:

成为节点

首要,算力网络中的solver经过bid的方法竞赛处理user提交的使命的权利,而且依据使命的规划和被发现做弊的风险,solver需求抵押必定的金额。

验证

Solver在更新parameters的一起生成多个checkpoints(保证作业的透明性和可追溯性),而且会守时生成关于使命的密码学加密推理proofs(作业进展的证明);

Solver完毕作业并产生了一部分核算作用时,协议会挑选一个verifier,verifier也会质押必定金额(保证verifier诚实地实施验证),而且依据上述供给的proofs来决议需求验证哪一部分的核算作用。

假定solver和verifier呈现不合

经过依据Merkle tree的数据结构,定位到核算作用存在不合的切当位置。整个验证的操作都会上链,做弊者会被扣除质押的金额。

项目总结

鼓动和验证算法的规划使得Gensyn.ai不需求在验证进程中去重放整个核算使命的悉数作用,而只需求依据供给的证明对一部分作用进行仿制和验证,这极大地进步了验证的功率。一起,节点只需求存储部分核算作用,这也下降了存储空间和核算资源的耗费。其他,潜在的做弊节点无法猜测哪些部分会被选中进行验证,所以这也下降了做弊风险;

这种验证不合并发现做弊者的方法也能够在不需求比较整个核算作用的状况下(从Merkle tree的根节点开端,逐渐向下遍历),能够快速找到核算进程中犯错的当地,这在处理大规划核算使命时十分有用。

总归Gensyn.ai的鼓动/验证层规划方针便是:简练高效。但现在仅限于理论层面,详细完毕或许还会面对以下应战:

在经济模型上,怎样设定适合的参数,使其既能有用地避免诈骗,又不会对参与者构成过高的门槛。

在技能完毕上,怎样拟定一种有用的周期性的加密推理证明,也是一个需求高档密码学常识的杂乱问题。

在使命分配上只是算力网络怎样挑选和分配使命给不同的solver也需求合理的调度算法的支撑,只是按照bid机制来分配使命从功率和可行性上看显然是有待商讨的,比方算力强的节点能够处理更大规划的使命,但或许没有参与bid(这儿就触及到对节点availability的鼓动问题),算力低的节点或许出价最高但并不适合处理一些杂乱的大规划核算使命。

四、对未来的一点考虑
谁需求去中心化算力网络这个问题其实一向没有得到验证。放置算力运用在对算力资源需求巨大的大模型练习上显然是最make sense,也是幻想空间最大的。但事实上通讯、隐私等瓶颈不得不让咱们重新考虑:

去中心化地练习大模型是不是真的能看到希望?

假定跳出这种咱们一起的,“最合理的落地场景”,是不是把去中心化算力运用在小型AI模型的练习也是一个很大的场景。从技能视点看,现在的捆绑要素都因为模型的规划和架构得到了处理,一起,从市场上看,咱们一向觉得大模型的练习从当下到未来都会是巨大的,但小型AI模型的市场就没有吸引力了吗?

我觉得未必。比较大模型小型AI模型更便于安置和管理,而且在处理速度和内存运用方面更有功率,在许多的运用场景中,用户或许公司并不需求大言语模型更通用的推理才华,而是只注重在一个十分细化的猜测方针。因而,在大多数场景中,小型AI模型依然是更可行的挑选,不应该在fomo大模型的潮水中被过早地忽视。
分享到:
共执行 177 个查询,用时 0.252338 秒,在线 15 人,Gzip 已启用,占用内存 4.359 MB