当前位置:   article > 正文

从Ray到Chronos:在Ray之上使用BigDL构建端到端AI用例_bigdl init_orca_context

bigdl init_orca_context

目录

介绍

RayOnSpark:在Apache Spark之上无缝运行Ray应用程序

AutoML(orca.automl):使用Ray Tune轻松调整AI应用程序

什么是orca.automl?

Chronos:使用AutoTS on Ray构建自动时间序列分析

为什么我们需要Chronos?

Chronos架构介绍

AutoTS工作流程的Chronos动手示例

使用Chronos AutoTS 进行5G网络时间序列分析

结论


介绍

Ray是一个具有简单通用API的框架,用于构建创新的AI应用程序。BigDL是一个开源框架,用于在分布式大数据上构建可扩展的端到端AI。它利用Ray及其原生库来支持高级AI用例,例如AutoML和自动时间序列分析。

在本篇博客中,我们将介绍BigDL中的一些核心组件,并展示BigDL如何利用Ray及其原生库构建底层基础架构(如RayOnSparkAutoML等),以及这些将如何帮助用户构建AI应用程序,例如使用Project Chronos的自动时间序列分析。

RayOnSpark:在Apache Spark之上无缝运行Ray应用程序

Ray是一个开源分布式框架,用于轻松运行新兴AI应用程序,例如深度强化学习和自动化机器学习。BigDL通过RayOnSparkRay无缝集成到大数据预处理管道中,并已用于为AutoMLChronos等特定领域构建多个高级端到端AI应用程序。RayOnSpark在大数据集群(例如,Apache Hadoop*Kubernetes*集群)上的Apache Spark之上运行Ray程序,因此,内存中DataFrame等对象可以直接流式传输到Ray应用程序中,用于高级AI应用程序。借助RayOnSpark,用户可以在生产环境中在现有的大数据集群上直接试用各种新兴的AI应用。此外,它还允许Ray应用程序无缝集成到大数据处理管道中,并直接在内存中的DataFrame上运行。

1RayOnSpark架构

1说明了RayOnSpark的架构。在Spark实现中,Spark程序在驱动节点上运行,并创建一个带有SparkContext对象的SparkSession,负责在集群上启动多个Spark执行程序以运行Spark作业。在RayOnSpark中,Spark驱动程序额外创建了一个RayContext对象,该对象将自动启动Ray进程以及跨同一集群的每个Spark执行程序。RayContext还将在每个Spark执行器内部创建一个RayManager来管理Ray进程(例如,当程序退出时自动关闭进程)。下面的代码块演示了用户如何在初始化RayOnSpark后直接在标准Spark应用程序中编写Ray代码。

  1. import ray
  2. from bigdl.orca import init_orca_context
  3. from bigdl.orca.ray import RayContext
  4. # Initialize SparkContext on the underlying cluster (e.g. the Hadoop/Yarn cluster)
  5. sc = init_orca_context(cluster_mode="yarn", cores=...,memory=...,num_nodes=...)
  6. # Initialize RayContext and launch Ray under the same cluster.
  7. ray_ctx = RayContext(sc, object_store_memory=...,...)
  8. ray_ctx.init()
  9. @ray.remote
  10. class Counter(object)
  11. def __init__(self):
  12. self.n = 0
  13. def increment(self):
  14. self.n += 1
  15. return self.n
  16. # The Ray actors are created across the big data cluster
  17. counters = [Counter.remote() for i in range(5)]
  18. ray.get([c.increment.remote() for c in counters])
  19. ray_ctx.stop()
  20. sc.stop()

2RayOnSpark 的示例代码

AutoML(orca.automl):使用Ray Tune轻松调整AI应用程序

超参数优化(HPO)对于数据科学家在机器学习或深度学习模型的准确性、性能等方面实现其目标非常重要。但是,手动HPO调整可能是一个耗时的过程,其结果可能优化得不够彻底。另一方面,分布式环境中的HPO可能难以实现。BigDL引入了建立在Ray Tune之上的AutoML功能(通过orca.automl),让数据科学家的生活更轻松。

什么是orca.automl

在许多情况下,数据科学家更愿意在他们的笔记本电脑上对他们的AI应用程序进行原型设计、调试和调整,如果可以将相同的代码原封不动地移动到集群中并直接运行,它将大大提高端到端的生产力。

BigDLOrca项目帮助用户将他们的代码从笔记本电脑无缝扩展到大数据集群。此外,BigDL的orca.automl还利用了RayOnSpark和Ray Tune,并提供了一个名为AutoEstimator的分布式超参数调优API 。由于Ray Tune与框架无关,因此AutoEstimator适用于PyTorchTensorFlow模型。用户可以在他们的笔记本电脑、本地服务器、K8s集群、Hadoop/YARN集群等上以一致的方式调整他们的模型。

借助这些功能,BigDL中的orca.automl可用于自动探索许多AI应用程序的搜索空间(包括模型、超参数等)。例如,我们使用BigDLorca.automl实现了AutoXGBoost(带有HPOXGBoost)来自动拟合和优化XGBoost模型。与Nvidia A100上的类似解决方案相比,使用AutoXGBoost进行训练的速度提高了约1.7倍,并且最终模型更准确。请在博客中查看更多信息。您还可以参考orca.automl用户指南了解设计细节,并参考AutoXGBoost快速入门任意模型的Auto Tuning以获得动手实践知识。

Chronos:使用AutoTS on Ray构建自动时间序列分析

我们还开发了一个用于自动时间序列分析的框架,称为Project Chronosorca.automl用于在自动分析期间调整超参数。

为什么我们需要Chronos

时间序列(TS)分析现在广泛应用于许多现实世界的应用中(例如电信中的网络质量分析、数据中心运营的日志分析、高价值设备的预测性维护等),并且越来越重要。准确的预测和检测已成为最受追捧的任务,并被证明是对传统方法的巨大挑战。深度学习方法通​​常将时间序列预测和检测视为序列建模问题,并且最近已成功应用于这些问题。

另一方面,构建用于时间序列预测/检测的机器学习应用程序可能是一个费力且知识密集的过程。超参数设置、预处理和特征工程都可能成为专用深度学习模型的瓶颈。为了提供高效、强大且易于使用的时间序列分析工具包,我们推出了Project Chronos,这是一个用于构建大规模时间序列分析应用程序的框架。这可用于应用AutoML和分布式训练,因为它建立在Ray TuneRay TrainRayOnSpark之上。

Chronos架构介绍

Chronos具有多个(10+)内置深度学习和机器学习模型,用于时间序列预测、检测和模拟,以及许多(70+)数据处理和特征工程实用程序。用户可以自己调用独立的算法和模型(预测器、检测器、模拟器)以获得最高的灵活性,或者使用我们高度集成、可扩展和自动化的时间序列工作流程(AutoTS)。推理过程也以多种方式进行了优化,包括集成ONNX runtimec

下图说明了基于BigDLRayChronos架构。本节重点介绍AutoTS组件。AutoTS框架使用Ray Tune作为超参数搜索引擎(在RayOnSpark之上运行)。对于自动数据处理,搜索引擎为预测任务选择最佳回溯值。对于自动特征工程,搜索引擎从由各种特征生成工具(例如,tsfresh)自动生成的一组特征中选择最好的特征子集。对于自动建模,搜索引擎会搜索超参数,例如隐藏的暗淡、学习率等。

3Project Chronos 架构

AutoTS工作流程的Chronos动手示例

下面的代码说明了使用Chronos友好且高度集成的AutoTS工作流的时间序列预测管道的训练和推理过程。这个特定的工作流程利用简单直接的API TSDataset来进行一些典型的时间序列处理(例如,插补、缩放等)和特征生成。

  1. import pandas as pd
  2. from sklearn.preprocessing import StandardScaler
  3. from bigdl.chronos.data import TSDataset
  4. # data initialization and split
  5. df = pd.read_csv("table.csv")
  6. tsdata_train, tsdata_val, tsdata_test = TSDataset.from_pandas(df,
  7. dt_col="StartTime",
  8. target_col="AvgRate",
  9. with_split=True,
  10. val_ratio=0.1)
  11. # data processing and feature engineering
  12. standard_scaler = StandardScaler()
  13. for tsdata in [tsdata_train, tsdata_val, tsdata_test]:
  14. tsdata.gen_dt_feature()\
  15. .impute(mode="last")\
  16. .scale(standard_scaler, fit=(tsdata is tsdata_train))

然后用户可以通过说明模型(内置模型名称/3方模型的模型创建功能)、回溯和地平线来进行AutoTSEstimator初始化。在AutoTSEstimator Ray Tune之上运行搜索程序;每次运行一次生成多个试验(每个试验具有不同的超参数和特征子集的组合),并将试验分布在Ray集群中。在所有试验完成后,根据目标指标检索最佳超参数集、优化模型和数据处理过程,用于构成结果TSPipeline

  1. from bigdl.chronos.autots import AutoTSEstimator
  2. import bigdl.orca.automl.hp as hp
  3. # create a AutoTSEstimator
  4. auto_estimator = AutoTSEstimator(model='tcn',
  5. past_seq_len=hp.randint(50,100),
  6. future_seq_len=1)
  7. # fit on the AutoTSEstimator with HPO, auto feature, past_seq_len selector
  8. ts_pipeline = auto_estimator.fit(data=tsdata_train,
  9. validation_data=tsdata_val)

TSPipeline可用于预测、评估和增量拟合。

  1. # predict/evaluate with TSPipeline
  2. y_pred = ts_pipeline.predict(tsdata_test)
  3. test_mse = ts_pipeline.evaluate(tsdata_test, metrics = ['mse'])

有关详细信息,Chronos用户指南是一个很好的起点。

使用Chronos AutoTS 进行5G网络时间序列分析

Chronos已在许多领域得到广泛采用,例如电信和AIOpsCapgemini Engineering在其5G媒体访问控制器(MAC)中利用Chronos AutoML工作流程和推理优化来实现认知能力,作为智能到RAN控制器节点的一部分。在他们的任务中,Chronos用于预测UE的移动性,以帮助MAC调度器在2个关键KPI上进行有效的链路自适应。借助Chronos AutoTSCapgemini工程师将他们的模型更改为我们内置的TCN模型并扩大了回溯值,从而成功地将AI准确率提高了55%。详细信息请参阅白皮书

结论

在本文中,我们介绍了BigDL如何利用Ray及其库为大数据构建可扩展的AI应用程序(使用RayOnSpark)、提高端到端AI开发效率(在RayTune之上使用AutoML)以及构建特定领域的AI使用使用项目Chronos进行自动时间序列分析等案例。BigDL在其他方面也采用了Ray,例如在BigDL Orca项目中使用了Ray Train,以在大型数据集群中无缝扩展单节点Python notebook。我们还在探索其他用例,例如推荐系统、强化学习等,它们将利用基于Ray构建的AutoML功能。

本文最初发布于Anyscale - From Ray to Chronos: Build end-to-end AI use cases using BigDL on top of Ray

https://www.codeproject.com/Articles/5330192/From-Ray-to-Chronos-Build-end-to-end-AI-use-cases

声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号