最近一段时间,文本生成的人工智能在互联网上掀起了一阵风暴:ChatGPT 因为可以对人们能想到的几乎任何问题提供非常详细、近乎逼真的回答而受到追捧。大模型应用的出现让人们对于 AI 技术突破充满了信心,不过很少有人知道在其背后,一个分布式机器学习框架正为这场生成式 AI 革命提供动力。
分布式计算框架 Ray 来自 A16z 支持的初创公司 Anyscale,它是使 OpenAI 能够强化其训练 ChatGPT 等模型的关键。在 OpenAI 最近的所有大型语言模型背后都有 Ray 的身影 —— 它可能也会是 OpenAI 备受期待的 GPT-4 背后的框架。随着大模型技术的不断落地,业内人士认为通过生成接近人类的内容,一个价值数十亿美元的产业正在形成。
在这一领域,Ray 是影响力最大的框架。在它出现之前,OpenAI 使用自定义工具集合来开发大模型。但 OpenAI 总裁 Greg Brockman 在今年早些时候的 Ray 峰会上就表示,随着面临的挑战增多,该公司已转而使用 Ray。
软件公司 Weights & Biases 的 CEO Lukas Biewald 认为,Ray 已是 AI 世界中炙手可热的后起之秀。「因为新工具出现,你可以在笔记本电脑和大型分布式服务器上运行相同代码。这是巨大的改变,随着模型变得更大,它的重要性也会随之增加,」Biewald 表示。
十亿美元的赌注
随着技术的成熟,Ray 引来了资本市场的关注。Anyscale 的股权成为了一种稀缺的商品,据 Business Insider 报道,有知情人士称,其最近一轮融资是 C 轮融资的延伸,估值超过 10 亿美元,几天内就结束了。
一些投资者将 Anyscale 描述为 Horowitz 充满希望的「下一个 Databricks」—— 这个描述看来不无道理,因为这家初创公司的创始人之一 Ion Stoica 是市值 310 亿美元的数据巨头 Databricks 的联合创始人。
「人工智能的发展速度令人难以置信,人们一直在尝试新方法,」Anyscale 首席执行官 Robert Nishihara 表示。「ChatGPT 结合了此前大语言模型上的大量工作。在此基础上,你需要拥有能够实现灵活性、快速创新,并扩展不同算法和方法的基础设施。」
由于像 ChatGPT 这样热门的新工具背后是越来越大的模型,科技公司不得不重新考虑从头开始开发 AI 的方式。Ray 应运而生,使训练这些庞大的模型变得更加容易,并且可以包含数千亿个数据点,让每个响应都具有准栩栩如生的感觉。
Ray 如何成为机器学习的首选工具
Ray 是一个基于内存共享的分布式计算框架,适用于细粒度的并行计算和异构计算,其提供了一个底层基础架构,用于管理分配机器学习模型训练工作的复杂任务。
在 2017 年,UC Berkeley 的研究人员首次提交了 Ray 的论文《 Ray: A Distributed Framework for Emerging AI Applications 》:
- 论文链接:https://arxiv.org/abs/1712.05889
- GitHub:https://github.com/ray-project/ray
在该工作中,研究人员预测了下一代 AI 应用程序的形态:与环境存在连续的交互,并从交互动作中进行学习。这些应用必然越来越多地在动态环境中来完成任务,根据环境的变化作出反应,并执行一系列的动作来达到长期目标。这些特性对于运行环境性能和灵活性等方面提出了全新且苛刻的系统要求,因此研究者提出了基于分布式的 Ray 框架。
Ray 实现了统一接口,可以表达任务并行和基于参与者的计算,由单个动态执行引擎支持。为了满足性能要求,Ray 采用分布式调度程序和分布式容错存储来管理系统的控制状态。它是首个将训练、仿真和服务统一起来的分布式计算框架,基于动态任务执行引擎统一了角色并行(actor)和任务并行(task)的计算,并保障了框架的高可扩展性和高容错性。
Ray 的架构。
基于该工作,2019 年 12 月,UC Berkeley 的 Robert Nishihara、Philipp Moritz 和 Ion Stoica 以及伯克利教授 Michael I. Jordan 创立了 Anyscale,迄今为止该公司已融资 2.6 亿美元。
机器学习从业者通常可以在自己的笔记本电脑上运行使用有限数据集的小型模型,例如预测用户购买产品的简单模型。然而,像 ChatGPT 这样的超大型模型,笔记本电脑是行不通的,这些模型需要大量服务器来训练。
使用大量设备训练一个模型要面对一个重要挑战 —— 在不同硬件上协调训练。而 Ray 恰好解决了这个难题,它为从业者提供了一种将不同硬件作为一个单元来管理的机制,用于确定什么数据去哪里,处理故障等等,硬件种类横跨谷歌云、AWS 和其他处理相同问题的产品组合。此外,Ray 还将其他语言中的一个关键编程概念「actor」扩展到 Python,众所周知 Python 是机器学习程序的首选语言。
作为一个分布式计算框架,Ray 有两个关键优势,分别是位置感知(Locality-aware)和任务分配(task placement)。如下图所示,Ray 能够横向扩展系统,以支持高吞吐量的细粒度任务,同时保持容错和低延迟任务调度。
Ray 为 OpenAI 训练大模型消除了巨大的复杂性,为该公司腾出更多时间和精力专注于模型的关键能力。
新一代 AI 需要新的开发工具,Ray 只是一系列迅速兴起的下一代机器学习工具中的一个,这些工具正在迅速颠覆 AI 的开发方式。例如,Google 的 JAX 框架也获得了巨大关注,JAX 有望成为谷歌核心机器学习工具的支柱,已经在 DeepMind 和 Google Brain 被广泛采用。
类似地,由 FirstMark Capital 和 Bessemer Venture Partners 支持的初创公司 Coiled 开发了一个名为 Dask 的并行计算框架。
近来大型语言模型正在释放更多潜力,这些新型机器学习工具将为业内科技巨头和初创公司构建更强大的语言模型。