The Parallel Universe

55

Ray から Chronos へ

Ray 上に BigDL でエンドツーエンドの AI ユースケースを構築

Wesley Du、 Junwei Deng、 Kai Huang、 Shan Yu、 Shane Huang
インテル コーポレーション AI & アナリティクス担当ソリューション ・ アーキテクト[ この記事は anyscale.com （英語） に掲載された記事を許可を得て掲載したものです。 ]Ray （英語） は、 革新的な AI アプリケーションを開発するシンプルなユニバーサル API を備えたフレームワークです。 BigDL （英語） は、 分散したビッグデータ上にスケーラブルなエンドツーエンドの AI を構築するオープンソースのフレームワークです。 Ray とそのネイティブ ・ ライブラリーを活用して、 AutoML や自動時系列解析などの高度な AI ユースケースをサポートします。 この記事では、 BigDL のコア ・ コンポーネントの一部を紹介し、 Ray を活用して基礎となるインフラストラクチャー （RayOnSpark、 AutoML など） を構築し、これらが Chronos （英語） プロジェクトを使用した AI アプリケーションの構築にどのように役立つかを説明します。

コンパイラーの最適化に関する詳細は、 最適化に関する注意事項を参照してください。

The Parallel Universe

56

RayOnSpark ： Apache Spark* 上で Ray アプリケーションをシームレスに実行
Ray （英語） は、 深層強化学習 （英語） や自動マシンラーニング （AutoML） などの新しい AI アプリケーションを簡単に実行するためのオープンソースの分散型フレームワークです。 BigDL は、 RayOnSpark を利用して Rayをビッグデータの前処理パイプラインにシームレスに統合します。 すでに、 AutoML や Chronos などの特定分野において、 複数の高度なエンドツーエンド AI アプリケーションの構築に使用されています。 RayOnSpark は、ビッグデータ ・ クラスター （Apache Hadoop* や Kubernetes* クラスターなど） 上の Apache Spark* 上で Rayプログラムを実行します。 その結果、 インメモリー DataFrame などのオブジェクトを Ray アプリケーションに直接ストリーミングし、 高度な AI アプリケーションを実現することが可能です。 RayOnSpark を使用することで、ユーザーは新しい革新的な AI アプリケーションを本番環境にある既存のビッグデータ ・ クラスター上で直接試すことができます。 また、Ray アプリケーションをビッグデータ処理パイプラインにシームレスに統合し、インメモリーDataFrame 上で直接実行できるようになります。

図 1. RayOnSpark アーキテクチャー

コンパイラーの最適化に関する詳細は、 最適化に関する注意事項を参照してください。

The Parallel Universe

57

図 1 に RayOnSpark のアーキテクチャーを示します。 Spark* の実装では、 Spark* プログラムはドライバーノード上で実行し、 Spark* ジョブを実行するためクラスター上で複数の Spark* エグゼキューターを起動する
SparkContext オブジェクトを持つ SparkSession を作成します。 RayOnSpark では、 Spark* ドライバープログラムはさらに RayContext オブジェクトを作成し、 同じクラスターで各 Spark* エグゼキューターとともに Rayプロセスを自動的に起動します。 また、 RayContext は各 Spark* エグゼキューター内に RayManager を作成し、Ray プロセスを管理します （例えば、 プログラム終了時にプロセスを自動的にシャットダウンするなど）。 図 2 は、RayOnSpark を初期化した後、 標準的な Spark* アプリケーション内で Ray コードを直接記述する方法を示しています。

図 2. RayOnSpark のコード例

AutoML （orca.automl) ： Ray Tune で AI アプリケーションを簡単にチューニング
マシンラーニング （ML） やディープラーニング （DL） モデルの精度やパフォーマンスなどを実現するには、ハイパーパラメーター最適化 （HPO） が重要です。 しかし、 手作業による HPO は時間がかかり、 十分に最適化されない可能性があります。 一方、 分散環境での HPO は、 実装が困難な場合があります。 BigDL は、 データ・サイエンティストを支援するため、Ray Tune （英語） 上に構築された AutoML 機能 （orca.automl を使用） を提供しています。

コンパイラーの最適化に関する詳細は、 最適化に関する注意事項を参照してください。

The Parallel Universe

58

orca.automl とは ?
多くの場合、データ・サイエンティストは AI アプリケーションのプロトタイプ、デバッグ、チューニングをラップトップで行いたいと考えており、 同じコードをそのままクラスターに移行できれば、 エンドツーエンドの生産性が大幅に向上します。 BigDL の Orca プロジェクトは、 ユーザーがラップトップからクラスターにコードをシームレスにスケールするのを支援します。 さらに、BigDL の orca.automl は、RayOnSpark と Ray Tune を活用し、 AutoEstimator （英語） という分散型のハイパーパラメーター ・ チューニング API を提供します。 Ray Tune はフレームワークに依存しないので、AutoEstimator は PyTorch* と TensorFlow* の両方のモデルに適しています。ユーザーは、ラップトップ、ローカルサーバー、 Kubernetes* クラスター、 Hadoop*/YARN クラスターなどで、 一貫した方法でモデルをチューニングできます。
これらの機能により、多くの AI アプリケーションでは、BigDL の orca.automl を使用して検索空間 （モデル、ハイパーパラメーターなどを含む） を自動検索できます。 一例として、 BigDL の orca.automl を使用して、 XGBoost モデルを自動的に適合して最適化する AutoXGBoost （HPO 対応の XGBoost） を実装したところ、 NVIDIA* A100 上の同様のソリューションと比較して、 AutoXGBoost によるトレーニングは約 1.7 倍高速になり、 より高い最終モデルの精度を達成しました。 詳細は、「Analytics Zoo の AutoML を使用したスケーラブルな AutoXGBoost」 （英語）を参照してください。 『orca.automl ユーザーガイド』 （英語） の設計情報と、『AutoXGBoost クイックスタート』 （英語）や 「任意のモデルの自動チューニング （英語） の演習も参考にしてください。

Chronos ： Ray 上での AutoTS を使用した自動時系列解析の構築
別の例として、 Chronos プロジェクト （英語） と呼ばれる自動時系列解析のフレームワークも構築しました。
Chronos プロジェクトでは、 自動解析中にハイパーパラメーターを調整するため orca.automl を利用しています。

Chronos が必要な理由
時系列 （TS） 解析は、 現在、 多くの実世界のアプリケーション （通信におけるネットワーク品質解析、 データセンター運用のログ解析、 高価値機器の予知保全など） で広く利用されており、その重要性はますます高まっています。
正確な予測や検知は最も求められている課題であり、 従来のアプローチでは大きな困難が伴うことが分かっています。 DL 手法は、 時系列の予測と検出をシーケンスモデル問題として捉えることが多く、 近年、 これらの問題に適用され、 多くの成功を収めています。
一方、 時系列の予測と検出を行う ML アプリケーションの構築は、 手間がかかり、 多くの知識を必要とします。
ハイパーパラメーターの設定、 前処理、 特徴量エンジニアリングのすべてが、 専用の DL モデルのボトルネックになる可能性があります。 効率良く、 強力で、 使いやすい時系列解析ツールキットを提供するため、 大規模時系列解析アプリケーションを構築するフレームワークである Chronos プロジェクトが立ち上げられました。 Chronos
は、 Ray Tune、 Ray Train （英語）、 および RayOnSpark 上に構築されているため、 AutoML や分散トレーニングを適用することが可能です。

コンパイラーの最適化に関する詳細は、 最適化に関する注意事項を参照してください。

The Parallel Universe

59

Chronos アーキテクチャー
Chronos は、 時系列予測、 検出、 シミュレーション用の 10 以上の組込み DL/ML モデル、 および 70 以上のデータ処理 / 特徴エンジニアリング ・ ユーティリティーを備えています。 ユーザーは、 スタンドアロン ・アルゴリズ
ムやモデル （予測、 検出、 シミュレーター） を呼び出すことで、 高い柔軟性を得ることができます。 また、 高度に統合されたスケーラブルな自動時系列ワークフロー （AutoTS） を使用することもできます。 推論プロセスは、ONNX* ランタイム （英語） の統合など、 さまざまな方法で最適化されています。
図 3 は、 BigDL と Ray 上の Chronos アーキテクチャーを示したものです。 ここでは、 AutoTS コンポーネントに注目します。 AutoTS フレームワークは、 ハイパーパラメーター検索エンジン （RayOnSpark 上で実行） としてRay Tune を使用します。 自動データ処理では、 検索エンジンが予測タスクに最適なルックバック値を選択します。
自動特徴抽出では、 さまざまな特徴生成ツール （tsfresh など） により自動生成された特徴のセットから、 検索エンジンが最適なサブセットを選択します。自動モデル化では、検索エンジンが隠れた次元、学習率などのハイパーパラメーターを検索します。

図 3. Chronos プロジェクトのアーキテクチャー

Chronos の AutoTS ワークフローの演習
次のコードは、 Chronos のフレンドリーで高度に統合された AutoTS ワークフローを使用した時系列予測パイプラインのトレーニングと推論プロセスを示しています。

コンパイラーの最適化に関する詳細は、 最適化に関する注意事項を参照してください。

The Parallel Universe

60

このワークフローでは、 TSDataset のシンプルでわかりやすい API を利用して、 典型的な時系列処理 （インピュテーション、 スケーリングなど） と特徴量の生成を行います。
次に、 モデル （組込みモデル名 / サードパーティー ・ モデルの場合はモデル作成関数 )、 ルックバック、 層位を指定して、 AutoTSEstimator を初期化できます。 AutoTSEstimator は、 Ray Tune 上で検索処理を実行します。 各実行では、 一度に複数の試行 （それぞれ異なるハイパーパラメーターと特徴のサブセットの組み合わせ） を生成し、 試行を Ray クラスターに分散させます。 すべての試行が終了すると、 ターゲットメトリックに従って、最適なハイパーパラメーターのセット、 最適化されたモデル、 およびデータ処理手順が取得され、 それらを使用して TSPipeline が構成されます。

TSPipeline は、 予測、 評価、 インクリメンタルな適合に使用できます。

詳細は、 『Chronos ユーザーガイド』 （英語） を参照してください。

コンパイラーの最適化に関する詳細は、 最適化に関する注意事項を参照してください。

The Parallel Universe

61

Chronos AutoTS を使用した 5G ネットワークの時系列解析
Chronos は、 通信や AI の運用など、 多くの分野で広く採用されています。 Capgemini Engineering は、 5G
媒体アクセス制御 （MAC） で Chronos AutoML ワークフローと推論の最適化を活用し、 「Intelligent to RANController」 ノードの一部として認識機能を実現しています。 Capgemini Engineering のタスクでは、 UE のモビリティー予測に Chronos を使用し、 2 つのキーの KPI に基づいて MAC スケジューラーが効率良くリンク適合を行えるように支援しています。 Chronos AutoTS を利用して、 モデルを組込み TCN モデルに変更し、 ルックバック値を大きくすることで、Capgemini Engineering は、AI の精度を 55% 向上させることに成功しました。 詳細は、ホワイトペーパー （英語） を参照してください。

まとめ
この記事では、BigDL で Ray とそのライブラリーを活用して、ビッグデータ向けのスケーラブルな AI アプリケーションの構築 （RayOnSpark を使用 )、エンドツーエンドの AI 開発の生産性の向上 （RayTune 上で AutoML を使用 )、Chronos プロジェクトによる自動時系列解析などのドメイン固有の AI ユースケースの構築を行えることを紹介しました。 BigDL は、ほかでも Ray を採用しています。 例えば、Ray Train （英語） は、BigDL の Orca プロジェクトで、シングルノードの Python* ノートブックを大規模クラスター間でシームレスにスケールアウトするために使用されています。 Ray 上に構築された AutoML 機能を活用する推薦システム、 強化学習などのほかのユースケースも検討されています。

ヘテロジニアス ・アプリケーションの開発を高速化
次のハードウェア・プラットフォーム向けにコードを書き直すのではなく、 イノベーションに取り組む
インテル® oneAPI ツールキット >コンパイラーの最適化に関する詳細は、 最適化に関する注意事項を参照してください。