一个在互联网上训练大型神经网络的图书馆。想象一下,在来自大学、公司和志愿者的数千台计算机上培训一台巨大的变压器。
更大的神经网络正在取胜:通过转移学习,这些大型模型可以利用几乎无限的原始数据来提高学术基准的性能,并解决新的意想不到的任务。图片来源:[1]Kaplan等人。(2020),[2,3]Huang et al.。(2018年)。
也就是说,训练大型神经网络并不便宜。之前最大的语言型号使用的硬件价格超过2500万美元。一次针对GPT-3的培训将花费您至少460万美元的云GPU。因此,研究人员无法为最先进的深度学习模型做出贡献,而从业者如果没有大公司的支持,也无法构建应用程序。如果我们真的希望人工智能的未来是光明的,它就不能是私人的。
HiveMind是一个用于大型神经网络分散训练的库。简而言之,你想训练一个神经网络,但你所拥有的只是一群狂热分子,他们拥有不可靠的计算机,通过互联网进行通信。任何同龄人都可能在任何时候失败或离开,但培训必须继续进行。为了实现这一目标,Hivemind模型使用了一种特殊的层类型:分散的专家混合(DMoE)。以下是它的工作原理:
在hivemind实验中,所有的对等点组成一个分布式哈希表来发现彼此的专家-使用支持BitTorrent文件共享的相同类型的协议。
HiveMind使用基于Kademlia的分布式哈希表,它可以扩展到数万个对数搜索复杂度的对等点。
在每次向前传递时,对等点首先使用一个小的选通功能模块确定需要哪些专家的专长来处理当前的输入。然后,它使用分布式哈希表协议从网络中的其他对等体中找到k个(例如4个)最合适的专家。最后,它向选定的专家发送转发通行证请求,收集他们的输出,并对其进行平均,以得出最终预测。与传统架构相比,混合专家需要的带宽要少得多,因为每个输入只发送给所有专家的一小部分。
更重要的是,分散的专家混合层具有固有的容错性:如果一些选定的专家没有响应,模型将简单地对剩余的专家进行平均,并将其称为辍学。在所有k个专家同时失败的情况下,一个对等体将回溯并在分布式哈希表中找到另一个k个专家。最后,由于每个输入都可能由不同的专家处理,Hivemind对等点运行多个异步训练批次以更好地利用其硬件。
HiveMind的设计目的是让你:相反,这不是它的目的:培训小的,更具体地说,是适合单个员工记忆的模型。动态分配内部员工的型号:使用torch.elastic。
HiveMindV0.8处于早期的alpha阶段:训练分散模型的核心功能已经存在,但是接口仍在积极开发中。如果您想亲自尝试hivemind或为其开发做出贡献,请参阅快速入门教程。如有任何问题、反馈和问题,请随时在GitHub上与我们联系。