赞
踩
近年来,人工智能有了很大的发展。为了获得洞察力并基于海量数据作出决策,我们需要拥抱先进的、新兴的人工智能技术,如深度学习、强化学习、自动机器学习(AutoML)等。
Ray 是由加州大学伯克利分校 RISELab 开源的新兴人工智能应用的分布式框架。它实现了一个统一的接口、分布式调度器、分布式容错存储,以满足高级人工智能技术对系统最新的、苛刻的要求。Ray 允许用户轻松高效地运行许多新兴的人工智能应用,例如,使用 RLlib 的深度强化学习、使用 Ray Tune 的可扩展超参数搜索、使用 AutoPandas 的自动程序合成等等。
在本文中,我们将介绍 RayOnSpark,这是新近添加到 Analytic Zoo 的功能之一。 Analytic Zoo 是开源的端到端数据分析 + 人工智能平台。RayOnSpark 允许用户直接在 Apache Hadoop/YANE 上运行 Ray 程序,这样用户就可以在现有的大数据集群上以分布式的方式轻松尝试各种新兴的人工智能应用。此外,大数据应用和人工智能应用并没有运行在两个独立的系统上,因为这往往会带来昂贵的数据传输成本和较高的端到端学习延迟。RayOnSpark 允许 Ray 应用无缝集成到 Apache Spark 数据处理管道中,并直接在内存中的 Spark RDD 或 DataFrame 上运行。
接下来,我们将重点阐述如何在 Hadoop/YARN 之上使用 PySpark 运行 Ray 集群和程序(见下面的图 1)。注意,虽然本文只展示了如何在 YARN 集群上运行 Ray,但同样的逻辑也可以应用于 Kubernetes 和 Apache Mesos。
为了说明预期的 RayOnSpark 工作流,我们将使用一个简单的 Ray 示例,它使用 Actor 收集服务器的 IP 并在 YARN 集群上运行该实例。
https://docs.conda.io/projects/conda/en/latest/user-guide/install/index.html
conda create -n zoo python=3.6 source activate zoo
source activate zoo
pip install analytics-zoo= =0.6.0.dev6 (or above version)
pip install pyspark= =2.4.3
pip install ray
conda install jupyter
conda install -c anaconda openjdk=8.0.152
Spark 需要 Java 环境设置。如果环境变量 JAVA_HOME 已经用 JDK8 设置好,则可以跳过这一步。
jupyter notebook
sc = init_spark_on_yarn( … ) ray_ctx = RayContext(sc=sc, … )
ray_ctx.init( … ) …
这样就可以在现有的 Hadoop/YARN 集群中直接运行构建在 Ray 之上的人工智能新的应用,这些应用可以无缝集成到 Spark 数据处理管道中。作为第一个用力,我们目前正在使用 RayOnSpark 来实现自动机器学习对时间序列预测的支持(包括自动特征生成、模型选择和超参数调优)。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。