来源:Zeke, YBB Capital
前言
自 GPT-3 诞生以来,生成式 AI 以其惊人的表现以及广阔的应用场景,让人工智能领域迎来了爆炸式的拐点,科技巨头开始扎堆抱团跳入 AI 赛道。但问题也随之而来,大型语言模型(LLM)训练和推理的运行需要大量算力支撑,伴随着模型的迭代升级,算力需求和成本更是呈指数级的增加。以 GPT-2 和 GPT-3 为例,GPT-2 和 GPT-3 之间的参数量相差 1166 倍(GPT-2 为 1.5 亿参数,GPT-3 为 1750 亿参数),GPT-3 的一次训练成本以当时公有 GPU 云的价格模型计算最高可达 1200 万美元,为 GPT-2 的 200 倍。而在实际使用过程中,用户的每次提问都需要推理运算,按今年年初 1300 万独立用户访问的情况来说,对应的芯片需求是 3 万多片 A100GPU。那么初始投入成本将达到惊人的 8 亿美元,每日模型推理费用预估费用 70 万美元。
算力不足和成本过高成为整个 AI 行业面临的难题,然而同样的问题似乎也将困扰区块链行业。一方面比特币的第四次减半与 ETF 通过即将到来,随着未来价格攀升,矿商对于算力硬件的需求必然大幅提高。而另一方面零知识证明(”Zero-Knowledge Proof”,简称 ZKP)技术正在蓬勃发展,Vitalik 也曾多次强调 ZK 在未来十年内对区块链领域的影响将与区块链本身一样重要。虽然这项技术的未来被区块链行业寄予厚望,但 ZK 由于复杂的计算过程,在生成证明过程中同 AI 一样也需要消耗大量的算力与时间。
在可预见的未来里,算力短缺将成为必然,那么去中心化算力市场是否会是一门好生意?
去中心化算力市场定义
去中心化算力市场其实基本等价于去中心化云计算赛道,但相比于去中心化云计算,我个人认为这个词来描述之后所讲的新项目会更为贴切。去中心化算力市场应属于 DePIN(去中心化物理基础设施网络)的子集,其目标旨在创建一个开放的算力市场,通过代币激励使得任何拥有闲置算力资源的人都可以在此市场上提供他们的资源,主要服务于 B 端用户及开发者群体。从较为熟知的项目来说,比如基于去中心化 GPU 的渲染解决方案网络 Render Network 和用于云计算的分布式点对点市场 Akash Network 都属于这条赛道。
而下文将从基础概念开始,再展开讨论该赛道下的三个新兴市场:AGI 算力市场、比特币算力市场以及 ZK 硬件加速市场中的 AGI 算力市场,后两个将在《潜力赛道前瞻:去中心化算力市场(下)》中进行讨论。
算力概述
算力概念的起源可以追溯到计算机发明之初,最初的计算机是由机械装置完成计算任务,而算力指的是机械装置的计算能力。随着计算机技术的发展,算力的概念也随之演化,现在的算力通常指的是计算机硬件(CPU、GPU、FPGA 等)和软件(操作系统、编译器、应用程序等)协同工作的能力。
定义
算力(Computing Power)是指计算机或其他计算设备在一定时间内可以处理的数据量或完成的计算任务的数量。算力通常被用来描述计算机或其他计算设备的性能,它是衡量一台计算设备处理能力的重要指标。
衡量标准
算力可以用各种方式来衡量,例如计算速度、计算能耗、计算精度、并行度。在计算机领域,常用的算力衡量指标包括 FLOPS(每秒浮点运算次数)、IPS(每秒指令数)、TPS(每秒事务数)等。
FLOPS(每秒浮点运算次数)是指计算机处理浮点运算(带有小数点的数字进行数学运算,需要考虑精度问题和舍入误差等问题)的能力,它衡量的是计算机每秒能够完成多少次浮点运算。FLOPS 是衡量计算机高性能计算能力的指标,通常用于衡量超级计算机、高性能计算服务器和图形处理器(GPU)等的计算能力。例如,一个计算机系统的 FLOPS 为 1 TFLOPS(1 万亿次浮点运算每秒),意味着它每秒可以完成 1 万亿次浮点运算。
IPS(每秒指令数)是指计算机处理指令的速度,它衡量的是计算机每秒能够执行多少条指令。IPS 是衡量计算机单指令性能的指标,通常用于衡量中央处理器(CPU)等的性能。例如,一个 CPU 的 IPS 为 3 GHz(每秒可以执行 3 亿次指令),意味着它每秒可以执行 3 亿次指令。
TPS(每秒事务数)是指计算机处理事务的能力,它衡量的是计算机每秒可以完成多少个事务。通常用于衡量数据库服务器的性能。例如,一个数据库服务器的 TPS 为 1000,意味着它每秒可以处理 1000 个数据库事务。
此外,还有一些针对特定应用场景的算力指标,例如推理速度、图像处理速度、语音识别准确率。
算力的类型
GPU 算力指的是图形处理器(Graphics Processing Unit)的计算能力。与 CPU(Central Processing Unit)不同,GPU 是专门设计用于处理图像和视频等图形数据的硬件,它具有大量的处理单元和高效的并行计算能力,可以同时进行大量的浮点运算。由于 GPU 最初是用于游戏图形处理的,因此它们通常比 CPU 拥有更高的时钟频率和更大的内存带宽,以支持复杂的图形运算。
CPU 和 GPU 的区别
架构:CPU 和 GPU 的计算架构不同。CPU 通常采用一或多个核心,每个核心都是一个通用的处理器,能够执行各种不同的操作。而 GPU 则拥有大量的流处理器(Stream Processors)和着色器(Shader),这些处理器专门用于执行图像处理相关的运算;
并行计算:GPU 通常具有更高的并行计算能力。CPU 的核心数量有限,每个核心只能执行一条指令,但 GPU 可以拥有数千个流处理器,可以同时执行多个指令和操作。因此,GPU 通常比 CPU 更适合执行并行计算任务,例如机器学习和深度学习等需要大量并行计算的任务;
程序设计:GPU 的程序设计相对于 CPU 来说更为复杂,需要使用特定的编程语言(如 CUDA 或 OpenCL),并使用特定的编程技巧来利用 GPU 的并行计算能力。相比之下,CPU 的程序设计更为简单,可以使用通用的编程语言和编程工具。
算力的重要性
在工业革命时代,石油是世界的血液,渗透到各个产业之中。算力在区块链中而在即将到来的 AI 时代,算力会是全世界的「数字石油」。从各大企业对于 AI 芯片的疯抢以及 Nvidia 股票突破万亿,再到美国近期对中国的高端芯片封锁详细到算力大小、芯片面积,甚至计划禁用 GPU 云,其重要性已不言而喻,算力将是下个时代的大宗商品。
人工通用智能概述
人工智能 (Artificial Intelligence),是研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门新的技术科学。它起源于 20 世纪五六十年代,经过半个多世纪的演变,经历了符号主义、连接主义和行为主体三次浪潮的相互交织发展,到如今,作为一项新兴的通用技术,正在推动着社会生活与各行各业的巨变。而现阶段常见的生成式 AI 更具体的定义是:人工通用智能(Artificial General Intelligence, 简称 AGI),一种具有广泛理解能力的人工智能系统,它能在多种不同任务和领域中表现出与人类相似或超越人类的智能。AGI 基本需要三个要素组成,深度学习(deep learning,简称 DL)、大数据、大规模算力。
深度学习
深度学习是机器学习(ML)的一个子领域,深度学习算法是仿照人脑建模的神经网络。例如,人脑包含数百万个相互关联的神经元,它们协同工作以学习和处理信息。同样,深度学习神经网络(或人工神经网络)是由在计算机内部协同工作的多层人工神经元组成的。人工神经元是称为节点的软件模块,它使用数学计算来处理数据。人工神经网络是使用这些节点来解决复杂问题的深度学习算法。
从层次上划分神经网络可分为输入层、隐藏层、输出层,而不同层之间连接的便是参数。
输入层(Input Layer):输入层是神经网络的第一层,负责接收外部输入数据。输入层的每个神经元对应于输入数据的一个特征。例如,在处理图像数据时,每个神经元可能对应于图像的一个像素值;
隐藏层(Hidden Layers):输入层处理数据并将其传递到神经网络中更远的层。这些隐藏层在不同层级处理信息,在接收新信息时调整其行为。深度学习网络有数百个隐藏层,可用于从多个不同角度分析问题。例如,你得到了一张必须分类的未知动物的图像,则可以将其与你已经认识的动物进行比较。比如通过耳朵形状、腿的数量、瞳孔的大小来判断这是什么动物。深度神经网络中的隐藏层以相同的方式工作。如果深度学习算法试图对动物图像进行分类,则其每个隐藏层都会处理动物的不同特征并尝试对其进行准确的分类;
输出层(Output Layer):输出层是神经网络的最后一层,负责生成网络的输出。输出层的每个神经元代表一个可能的输出类别或值。例如,在分类问题中,每个输出层神经元可能对应于一个类别,而在回归问题中,输出层可能只有一个神经元,其值表示预测结果;
参数:在神经网络中,不同层之间的连接由权重(Weights)和偏置(Biases)参数表示,这些参数在训练过程中被优化以使网络能够准确地识别数据中的模式和进行预测。参数的增加可以提高神经网络的模型容量,即模型能够学习和表示数据中复杂模式的能力。但相对应的是参数的增加会提升对算力的需求。
大数据
为了有效训练,神经网络通常需要大量、多样及质量高和多源的数据。它是机器学习模型训练和验证的基础。通过分析大数据,机器学习模型可以学习数据中的模式和关系,从而进行预测或分类。
大规模算力
神经网络的多层复杂结构、大量参数、大数据处理需求、迭代训练方式(在训练阶段,模型需要反复迭代,训练过程中需要对每一层计算前向传播和反向传播,包括激活函数的计算、损失函数的计算、梯度的计算和权重的更新)、高精度计算需求、并行计算能力、优化和正则化技术以及模型评估和验证过程共同导致了对高算力的需求,随着深度学习的推进,AGI 对大规模算力的要求每年增加 10 倍左右。截止目前最新的模型 GPT-4 包含 1.8 兆参数,单次训练成本超 6000 万美元,所需算力 2.15e25 FLOPS(21500 万亿次浮点计算)。而接下来的模型训练对算力的需求还在不断扩大,新的模型也在不断增加。
AI 算力经济学
未来市场规模
根据最权威的测算,国际数据公司 IDC(International Data Corporation)与浪潮信息和清华大学全球产业研究院联合编制的《2022-2023 全球计算力指数评估报告》,全球 AI 计算市场规模将从 2022 年的 195.0 亿美元增长到 2026 年的 346.6 亿美元,其中生成式 AI 计算市场规模将从 2022 年的 8.2 亿美元增长到 2026 年的 109.9 亿美元。生成式 AI 计算占整体 AI 计算市场的比例将从 4.2% 增长到 31.7%。
算力经济垄断
AI GPU 的生产已被 NVIDA 独家垄断,还极其昂贵(最新的 H100,单片售价已炒至 4 万美元),并且 GPU 一经发售就遭硅谷巨头抢购一空,这些设备的其中一部分用于自家新模型的训练。而另外一部分则通过云平台出租给 AI 开发者,如 Google、Amazon 和 Microsoft 的云计算平台掌握了大量的服务器、GPU 和 TPU 等算力资源。算力已然成为巨头垄断的新资源,大量 AI 相关开发者甚至购买不到一张不加价的专用 GPU,为了使用最新的设备,开发者不得不租用 AWS 或者 Microsoft 的云服务器。从财报上看这项业务拥有极高的利润,AWS 的云服务有 61% 的毛利率,而微软则更高有 72% 的毛利率。
那么我们是否不得不接受这种集中式的权威和控制,并为算力资源支付 72% 的利润费用?垄断 Web2 的巨头还会垄断下一个时代吗?
去中心化 AGI 算力的难题
提到反垄断,去中心化通常都是最优解,从现有的项目看我们是否能通过 DePIN 中的存储项目加 RDNR 之类的空闲 GPU 利用协议来实现 AI 所需的大规模算力?答案是否定的,屠龙的道路并没有那么简单,早期的项目并没有为 AGI 算力而专门设计,不具备可行性,算力上链至少需要面临以下五个挑战:
1. 工作验证:构建一个真正无需信任的计算网络,并为参与者提供经济激励,网络必须有办法验证深度学习计算工作是否实际执行。这个问题的核心是深度学习模型的状态依赖性;在深度学习模型中,每一层的输入都依赖于前一层的输出。这意味着,不能仅仅验证模型中的某一层而不考虑它之前的所有层。每一层的计算都是基于它前面所有层的结果。因此,为了验证特定点(比如特定的层)完成的工作,必须执行从模型的开始到那个特定点的所有工作;
2. 市场:AI 算力市场作为一个新兴市场受制于供求困境,比如冷启动问题,供应和需求流动性需要从一开始就大致匹配,以便市场能够成功地增长。为了捕获潜在的算力供应,必须为参与者提供明确的奖励以换取他们的算力资源。市场需要一个机制来跟踪完成的计算工作,并及时向提供者支付相应的费用。传统的市场中,中介负责处理管理和入职等任务,同时通过设定最低支付额度来减少运营成本。然而,这种方式在扩展市场规模时成本较高。只有少部分供应能够在经济上被有效捕获,这导致了一个阈值平衡状态,即市场只能捕获和维持有限的供应,而无法进一步增长;
3. 停机问题:停机问题是计算理论中的一个基本问题,它涉及到判断一个给定的计算任务是否会在有限的时间内完成或者永远不会停止。这个问题是不可解的,意味着不存在一个通用的算法能够对所有的计算任务预判它们是否会在有限时间内停止。比如在以太坊上智能合约执行也面临着类似的停机问题。即无法预先确定一个智能合约的执行需要多少计算资源,或者是否会在合理的时间内完成;
(在深度学习的背景下,这个问题将更复杂,因为模型和框架将从静态图构建切换到动态构建和执行。)
4. 隐私:对隐私意识的设计和开发是项目方必须要做的。虽然大量的机器学习研究可以在公开数据集上进行,但为了提高模型的性能和适应特定的应用,通常需要在专有的用户数据上对模型进行微调。这种微调过程可能涉及到个人数据的处理,因此需要考虑隐私保护的要求;
5. 并行化:这一点是当前项目不具备可行性的关键因素,深度学习模型通常在拥有专有架构和极低的延迟的大型硬件集群上并行训练,而分布式计算网络中的 GPU 需要进行频繁的数据交换将会带来延迟,并且会受限于性能最低的 GPU。算力源存在不可信与不可靠的情况下,如何异构并行化是必须解决的问题,目前可行的方法是通过变压器模型(Transformer Model)来实现并行化,比如 Switch Transformers,现在已经具有高度并行化的特性。
解决方案:虽然目前对于去中心化 AGI 算力市场的尝试还处于早期,但恰好存在两个项目初步解决了去中心化网络的共识设计及去中心化算力网络在模型训练和推理上的落地过程。下文将以 Gensyn 和 Together 为例进行分析去中心化 AGI 算力市场的设计方式与问题所在。
Gensyn
Gensyn 是一个还处于构建阶段的 AGI 算力市场,旨在解决去中心化深度学习计算的多种挑战,以及降低当前深度学习的费用。Gensyn 本质上是基于 Polkadot 网络上的第一层权益证明协议,它通过智能合约直接奖励求解者(Solver)换取他们的闲置 GPU 设备用于计算,并执行机器学习任务。
那么回到上文的问题,构建一个真正无需信任的计算网络核心在于验证已完成的机器学习工作。这是一个高度复杂的问题,需要在复杂性理论、博弈论、密码学和优化的交汇之间找到一个平衡点。
Gensyn 提出一个简单的解决方案是,求解者提交他们完成的机器学习任务的结果。为了验证这些结果是否准确,另一个独立的验证者会尝试重新执行相同的工作。这个方法可被称为单一复制,因为只有一个验证者会进行重新执行。这意味着只有一次额外的工作来验证原始工作的准确性。然而,如果验证工作的人不是原始工作的请求者,那么信任问题仍然存在。因为验证者本身可能也不诚实,而且他们的工作需要被验证。这导致了一个潜在问题,即如果验证工作的人不是原始工作的请求者,那么就需要另一个验证者来验证他们的工作。但这个新的验证者也可能不被信任,因此需要另一个验证者来验证他们的工作,这可能会一直延续下去,形成一个无限的复制链。此处需要引入三个关键概念并将其交织构建四个角色的参与者系统来解决无限链问题。
概率学习证明:使用基于梯度的优化过程的元数据来构建完成工作的证书。通过复制某些阶段,可以快速验证这些证书,从而确保工作已经如期完成。
基于图的精确定位协议:使用多粒度、基于图的精确定位协议,以及交叉评估器的一致性执行。这允许重新运行和比较验证工作以确保一致性,并最终由区块链本身确认。
Truebit 风格的激励游戏:使用抵押和削减来构建激励游戏,确保每个经济上合理的参与者都会诚实行事并执行其预期的任务。
参与者系统由提交者、求解者、验证者和举报者组成。
提交者(Submitters):
提交者是系统的终端用户,提供将被计算的任务,并支付已完成工作单位的费用;
求解者(Solvers):
求解者是系统的主要工作者,执行模型训练并生成由验证者检查的证明;
验证者(Verifiers):
验证者是将非确定性训练过程与确定性线性计算联系起来的关键,复制解决者的证明的一部分并将距离与预期阈值进行比较;
举报者(Whistleblowers):
举报者是最后一道防线,检查验证者的工作并提出挑战,希望获得丰厚的奖金支付。
系统运作
该协议设计的博弈系统运作将包括八个阶段,涵盖四个主要参与者角色,用于完成从任务提交到最终验证的完整流程。
任务提交 (Task Submission): 任务由三个特定的信息组成:
描述任务和超参数的元数据;
一个模型二进制文件(或基本架构);
公开可访问的、预处理过的训练数据。
为了提交任务,提交者以机器可读的格式指定任务的详细信息,并将其连同模型二进制文件(或机器可读架构)和预处理过的训练数据的公开可访问位置提交给链。公开的数据可以存储在简单的对象存储如 AWS 的 S3 中,或在一个去中心化的存储如 IPFS、Arweave 或 Subspace 中。
分析(Profiling): 分析过程为学习验证的证明确定了一个基线距离阈值。验证者将定期抓取分析任务,并为学习证明比较生成变异阈值。为了生成阈值,验证者将确定性地运行和重运行训练的一部分,使用不同的随机种子,生成并检查自己的证明。在此过程中,验证者将建立一个可用作验证解决方案的非确定性工作的总体预期距离阈值。
训练(Training): 在分析之后,任务进入公共任务池(类似于以太坊的 Mempool)。选择一个求解者来执行任务,并从任务池中移除任务。求解者根据提交者提交的元数据以及提供的模型和训练数据执行任务。在执行训练任务时,求解者还通过定期检查点并存储训练过程中的元数据(包括参数)来生成学习证明,以便验证者尽可能准确地复制以下优化步骤。
证明生成(Proof generation): 求解者周期性地存储模型权重或更新以及与训练数据集的相应索引,以识别用于生成权重更新的样本。可以调整检查点频率以提供更强的保证或节省存储空间。证明可以「堆叠」,这意味着证明可以从用于初始化权重的随机分布开始,或从使用自己的证明生成的预训练权重开始。这使协议能够建立一组已经证明的、预训练的基础模型(即基础模型),这些模型可以针对更具体的任务进行微调。
证明的验证(Verification of proof): 任务完成后,求解者向链注册任务完成,并在公开可访问的位置展示其学习证明,以便验证者访问。验证者从公共任务池中提取验证任务,并执行计算工作以重运行证明的一部分并执行距离计算。然后链(连同在分析阶段计算的阈值)使用得到的距离来确定验证是否与证明匹配。
基于图的精确定位挑战(Graph-based pinpoint challenge): 在验证学习证明之后,举报者可以复制验证者的工作以检查验证工作本身是否正确执行。如果举报者认为验证已被错误执行(恶意或非恶意),他们可以向合约仲裁发起挑战以获得奖励。这种奖励可以来自解决者和验证者的存款(在真正积极的情况下),或来自彩票库奖金池(在假阳性的情况下),并使用链本身执行仲裁。举报者(在他们的例子中是验证者)只有在期望收到适当的补偿时才会验证并随后挑战工作。实际上,这意味着举报者预计会根据其他活动的举报者的数量(即,具有实时存款和挑战)加入和离开网络。因此,任何举报者的预期默认策略是在其他举报者数量较少时加入网络,发布存款,随机选择一个活动任务,并开始他们的验证过程。在第一个任务结束后,他们将抓取另一个随机活动任务并重复,直到举报者的数量超过其确定的支付阈值,然后他们将离开网络(或更可能地,根据他们的硬件能力转向网络中执行另一个角色——验证者或求解者),直到情况再次逆转。
合约仲裁(Contract arbitration):当验证者被举报人质疑时,他们会与链条进入一个流程,以找出有争议的操作或输入的位置,最 终由链条执行最终的基本操作并确定质疑是否有理。为了保持举报人的诚实可信并克服验证者的困境,此处引入定期强制错误和头奖支付。
结算(Settlement): 在结算过程中,根据概率和确定性检查的结论来支付参与者。根据先前验证和挑战的结果,不同的场景会有不同的支付。如果认为工作已正确执行且所有检查都已通过,则根据执行的操作奖励解决方案提供者和验证者。
项目简评
Gensyn 在验证层和激励层上设计了一套精彩的博弈系统,通过找出网络中的分歧点能快速锁定错误所在,但目前的系统中还缺少很多细节。比如说如何设置参数才能保证奖惩合理,又不会门槛过高?博弈中的环节是否有考虑过极端情况与求解者算力不同的问题?在当前版本的白皮书中也没有异构并行化运行的详细说明,目前来看 Gensyn 的落地还道阻且长。
Together.ai
Together 是一家专注于大模型的开源,致力于去中心化的 AI 算力方案的公司,希望任何人在任何地方都能接触和使用 AI。严格来说 Together 并非区块链项目,但项目目前已经初步解决了去中心化 AGI 算力网络中的延迟问题。所以下文只分析 Together 的解决方案,对项目不做评价。
在去中心化网络比数据中心慢 100 倍的情况下,如何实现大模型的训练和推理?
让我们想象一下去中心化的情况下,参与网络的 GPU 设备分布情况会是怎么样?这些设备将分布于不同的大洲,不同的城市,设备之间需要连接,而连接的延迟和带宽又各不相同。如下图所示,模拟了一个分布式的情况,设备分布处于北美洲、欧洲和亚洲,设备之间的带宽和延迟各不相同。那么需要如何做才能将其串联?
分布式训练计算建模:下图为在多台设备上进行基础模型训练的情况,从通信类型来看具有前向激活 (Forward Activation)、反向梯度(Backward Gradient)、横向通信三种通信类型。
结合通信带宽和延迟,需要考虑两种形式的并行性:管道并行性和数据并行性,对应于多设备情况下的三种通信类型:
在管道并行中,模型的所有层都分为多个阶段,其中每个设备处理一个阶段,该阶段是连续的层序列,例如多个 Transformer 块;在前向传递中,激活被传递到下一个阶段,而在后向传递中,激活的梯度被传递到前一阶段。
在数据并行中,设备独立计算不同微批次的梯度,但需要通过通信来同步这些梯度。
调度优化:
在一个去中心化的环境中,训练过程通常受到通信限制。调度算法一般会将需要大量通信的任务分配给连接速度更快的设备,考虑到任务之间的依赖关系和网络的异构性,首先需要对特定的调度策略的成本进行建模。为了捕捉训练基础模型的复杂通信成本,Together 提出了一个新颖的公式,并通过图论将成本模型分解为两个层次:
图论是数学的一个分支,主要研究图(网络)的性质和结构。图由顶点(节点)和边(连接节点的线)组成。图论中的主要目的是研究图的各种性质,如图的连通性、图的色彩、图中路径和循环的性质。
第一层是一个平衡图划分(将图的顶点集合分割成几个相等大小或近似相等大小的子集,同时使得子集之间的边的数量最小。在这种分割中,每个子集代表一个分区,并且通过最小化分区间的边来减少通信成本)问题,对应于数据并行的通信成本。
第二层是一个联合图匹配和旅行商问题(联合图匹配和旅行商问题是一个组合优化问题,它结合了图匹配和旅行商问题的元素。图匹配问题是在图中找到一个匹配,使得某种成本最小化或最大化。而旅行商问题是寻找一条访问图中所有节点的最短路径),对应于管道并行的通信成本。
上图为流程示意图,由于实际的实现过程中涉及一些复杂的计算公式。为了便于理解,下文将把图中的流程说的通俗一些,详细的实现过程可以自行查询 Together 官网中的文档。
假定有一个包含 N 个设备的设备集 D,其间的通信有不确定的延迟(A 矩阵)和带宽(B 矩阵)。基于设备集 D,我们首先生成一个平衡的图分割。每个分割或设备组中的设备数量大致相等,并且它们都处理相同的流水线阶段。这确保了数据并行时,各设备组执行相似量的工作。(数据并行是指多个设备执行相同的任务,而流水线阶段则是指设备按照特定的顺序执行不同的任务步骤)。根据通信的延迟和带宽,通过公式可以计算出在设备组间传输数据的「成本」。每个平衡的设备组都被合并,生成一个全连接的粗糙图,其中每个节点代表流水线的阶段,边代表两个阶段之间的通信成本。为了最小化通信成本,使用匹配算法来确定哪些设备组应该一起工作。
为了进一步优化,还可以把这个问题被建模成一个开环的旅行商问题(开环意味着不需要返回路径起点),从而找到一个在所有设备间传输数据的最优路径。最后 Together 再通过一个他们创新的调度算法找到给定成本模型的最佳分配策略,从而实现最小化通信成本,最大化训练吞吐量。根据实测,在这个调度优化下即使网络慢 100 倍,端到端的训练吞吐量大概只慢了 1.7 至 2.3 倍。
通信压缩优化:
对于通信压缩的优化,Together 引入了 AQ-SGD 算法(详细计算过程,可参考论文 Fine-tuning Language Models over Slow Networks using Activation Compression with Guarantees),AQ-SGD 算法是为了解决在低速网络上进行管道并行训练的通信效率问题而设计的一种新颖的活性压缩技术。与以往直接压缩活性值的方法不同,AQ-SGD 聚焦于压缩同一训练样本在不同时期的活性值的变化,这种独特的方法引入了一个有趣的「自我执行」动态,随着训练的稳定,该算法的表现预计会逐渐提高。AQ-SGD 算法经过严格的理论分析,证明了在一定的技术条件和有界误差的量化函数下具有良好的收敛率。该算法不仅可以有效实现,而且不会增加额外的端到端运行时开销,尽管它需要利用更多的内存和 SSD 来存储活性值。通过在序列分类和语言建模数据集上的广泛实验验证,AQ-SGD 可以将活性值压缩到 2-4 位而不牺牲收敛性能。此外,AQ-SGD 还可以与最先进的梯度压缩算法集成,实现「端到端通信压缩」,即所有机器之间的数据交换,包括模型梯度、前向活性值和反向梯度,都被压缩成低精度,从而大幅提高分布式训练的通信效率。与在中心化算力网络(比如 10 Gbps)无压缩情况下的端到端训练性能相比,目前只慢了 31%。结合调度优化的数据来看,虽然距离中心化算力网络还有一定差距,但未来追赶的希望是比较大的。
结语
在 AI 浪潮带来的红利期下,AGI 算力市场无疑是诸多算力市场中潜力最大、需求最多的市场。但开发难度、硬件要求、资金需求也是最高的。结合上文两个项目来看,我们距离 AGI 算力市场的落地还有一定的时间,真正的去中心化网络也要比理想情况复杂得多,目前显然还不足以跟云巨头竞争。
在撰写这篇文章时,也观察到现在一些处于襁褓期(PPT 阶段)体量不大的项目已经开始探寻一些新的切入点,比如将重心放在难度更低的推理阶段或者是小模型的训练上。这些都是很好的尝试,从长远来看去中心化和无需许可的意义是重要的,访问与训练 AGI 算力的权利不该集中于少数几个中心化巨头。人类不需要新的「神教「也不需要新的「教皇」,更不该缴纳昂贵的会费。
本文来自投稿,不代表 Bitbili 的观点
文章来源于互联网:潜力赛道前瞻:去中心化算力市场(上)