当前位置:   article > 正文

初窥Ray框架_ray和tensorflow是什么意思

ray和tensorflow是什么意思

本文首发于:行者AI

随着各行各业数字化的不断推进,AI需要处理的数据越来越多,单一服务器已经难以满足当前产业的发展需求,服务器集群成为企业用AI处理数据的标配硬件,而分布式计算成为人工智能应用的标配软件。

从图1可以看出,现今有很多开源的分布式计算框架,从模型的训练、调参到部署;从NLP、CV到RS;这些框架覆盖到了AI产业生命周期的各个方面。本文就选取其中的Ray框架进行简单的介绍。

图1. 各种分布式计算框架

图1. 各种分布式计算框架

Ray 是伯克利大学在2017年开源的分布式计算框架,对应的论文是《Ray: A Distributed Framework for Emerging AI Applications》。强化学习任务需要与环境进行大量的交互(毫秒级),且在时间上支持异构性。该框架专门为机器学习与强化学习设计,相较于其他框架,ray具有以下优势:

  • 轻量级
  • 可快速构建
  • 通用性强
  • 性能优异

下面就这四个优点为大家进行详细介绍。

1. Ray框架的优势

1.1 轻量级

相较于传统的分布式框架(尤其是hadoop、spark等),Ray可以直接通过pip进行安装,且对系统版本无要求。

pip install -U ray
  • 1

Ray是一个简单的分布式策略,而非完整的生态,因而不需要复杂的构建。

另一方面,轻量而优秀的框架往往可以作为企业数据处理的基础框架,企业不断在该框架的基础上增加生态,从而形成企业独有的应用生态。

1.2 可快速构建

如hadoop等传统框架,要对原有的单机程序进行分布式化,需要修改整个代码逻辑,以MapReduce的编程方案重构各个计算模块,这使得hadoop等传统框架有着良好的可编辑性,算法工程师可以根据业务需求进行详细的修改。强大的可编辑性也带来了学习成本高,代码重构困难等诸多问题。人工智能日新月异,模型在不断更迭,敏捷开发成为了很多AI企业的开发模式,AI应用的复杂构建会大大影响整个项目的推进。

如下代码,将一个简单的单机程序函数,转换为Ray分布式的函数,只是在原有函数的基础上加入了ray.remote的装饰器,便完成了分布式化的工作。

### 原始单机代码
def f(x):
    return x * x

futures = [f.remote(i) for i in range(4)]
print(ray.get(futures))

### Ray分布式代码
import ray
ray.init()
@ray.
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop】
推荐阅读
相关标签
  

闽ICP备14008679号