利用 Ray 扩展 Python 应用:云与无服务器模式探索
1. 计算趋势与 Ray 的诞生背景
在当今的计算领域,可扩展计算的需求日益增长,这主要归因于机器学习(ML)在众多行业的广泛应用,以及实际进行 ML 所需的计算资源不断增加。回顾过去十年,计算领域发生了显著变化。2012 年,许多 ML 工作在单台笔记本电脑或服务器上进行,且不少从业者使用 Matlab。而那一年深度学习在 ImageNet 竞赛中以惊人优势获胜,成为一个转折点,此后多年来,对更多数据进行更多计算带来了更好的结果。这一趋势不仅没有放缓,近年来随着大语言模型的出现还进一步加速。
从处理小数据的小模型到处理大数据的大模型的转变,改变了 ML 的实践方式。软件工程在 ML 中占据核心地位,成功利用 ML 的团队和组织通常会组建大型内部基础设施团队,以支持将 ML 应用扩展到数百甚至数千台机器所需的分布式系统。
然而,随着 ML 能力的增强和对各类业务的重要性提升,实施 ML 的难度也在增加,因为需要大量的基础设施投资。为了让每个企业都能轻松利用 ML 并从中获取价值,必须降低实践难度,消除开发者成为分布式系统和基础设施专家的需求。
Ray 的诞生正是为了实现这一目标,即让可扩展计算和可扩展 ML 变得简单。这是计算领域发展的自然延续,就像过去开发者需要使用汇编语言等低级机器语言编程,如今很少有开发者再考虑汇编语言,因为它已不再是应用开发的关键路径,更多人因此能够开发应用和打造优秀产品。同样,未来基础设施也将像汇编语言一样,不再是构建可扩展应用和产品的障碍,届时会有更多人能够开发此类应用。
2. 无服务器计算与 Ray 的优势
无服务器计算让开发