家专注于大模型的开源,致力于去中心化的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. 分布式算力在模型训练上落地 从中长期来看,虽然面临很大的挑战和技术瓶颈,承接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 从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大模型的潮水中被过早地忽视。 来源:金色财经lg...