DataRobotのデータサイエンティストの濱上です。このブログ記事では、DataRobot とApache Airflow を連携することで、機械学習 (ML) パイプラインを自動化し、MLOps ワークフローを強化する方法について説明します。
DataRobot とは
DataRobotは、データ前処理からモデル構築、デプロイ、モデル運用までを自動化するエンタープライズ向けAIプラットフォームです。DataRobotは、多様なデータソースからデータを簡単に取り込み、さまざまな機械学習アルゴリズムを使用して、ビジネスニーズに合った高精度なモデルを迅速に構築します。さらに、モデルの稼働状況や精度・データドリフト・バイアスと公平性など様々な観点でモデルのパフォーマンスを監視し、持続可能なモデル運用を実現します。
Apache Airflow とは
Apache Airflowは、オープンソースのワークフローオーケストレーションツールです。データ取得、ETLジョブ、機械学習タスクなど、さまざまなタスクをスケジュールして実行するために使用できます。スケーラブルで信頼性の高いワークフローを構築するための強力なフレームワークを提供します。
Apache AirflowとDataRobotを連携するメリット
DataRobotとApache Airflowを連携するとMLOpsワークフローを強化できます。これにより次のようなメリットが享受できます。
メリット1:モデルトレーニングとデプロイの自動化
機械学習のビジネス利用ではモデルトレーニング、デプロイ、予測を定義したMLOpsワークフローが必要となるケースがあります。特に定期的にモデルを再トレーニングするケースや、頻繁にデータドリフトが起こりその都度再トレーニングが必要となるケースではMLOpsワークフローの構築は必須です。MLOpsワークフローを事前に作成することで、外部環境の変化に迅速に対応し、モデルの品質とパフォーマンスを維持できます。
DAG (Directed Acyclic Graph)構築
DataRobotとApache Airflowを連携することで、たとえば図1のようなMLOpsワークフローを構築できます。この例では、Apache Airflowを使用して、DataRobotのジョブ(モデルトレーニング、デプロイ、予測)をスケジュールして実行しています。
図1. DAG: Directed Acyclic Graph (有向非巡回グラフ)
なおDataRobot単独でも再トレーニングの自動化機能があり、再トレーニングのスケジュール実行や異常時の実行が可能です。それに対し、DataRobotとApache Airflowを連携することのメリットは、データ取得、ETLジョブまで含めたパイプラインをより柔軟にカスタマイズできる点にあるといえます。
メリット2:MLOpsワークフローの可視化とデバッグ
図1のようにApache Airflowは、MLOpsワークフローの実行状況を可視化するための強力なダッシュボードを提供します。また、ワークフローの進行状況をリアルタイムに確認でき、問題が発生した場合にはログを解析できます(図2)。これにより、ワークフローを監視し、問題をデバッグします。
図2. ログ
メリット3:マルチクラウドへの対応
近年、企業におけるクラウド利用において、単一のクラウドベンダーに依存するのではなく、複数のクラウドサービスを組み合わせる「マルチクラウド」を採用するケースがあります。「マルチクラウド」には主に以下のようなメリットがあります。
ベンダーロックインの回避
可用性の向上
柔軟性の向上
一方で、複数のクラウドに分散したデータやモデルを管理するためには、適切なガバナンス体制を構築したりスキル人材を獲得したりする必要があります。これは、特に大規模な組織においては大きな課題となります。
その課題に対して、Apache Airflowは各クラウドと接続することができるため、データが複数のクラウドに分散していてもワークフローを構築できます。
これはApache Airflowを利用すればデータのサイロ化を解決できると言っているわけではありません。マルチクラウド環境でも、機械学習に用いるデータは1つのデータウェアハウスやデータレイクに集約することがマルチクラウドの複雑さを解決する直接的な方法です。
1つのデータウェアハウスやデータレイクにデータを集約しておけば、データの管理コストを減らせるだけでなくチーム内外でのコラボレーションが加速するからです。
Apache AirflowとDataRobotを連携する方法
DataRobotとApache Airflowを連携するには、次の手順を実行します。詳細はApache Airflow用のDataRobot プロバイダー をご覧ください。
Apache AirflowとDataRobotを連携する際の前提条件
DataRobotプロバイダーを使用するには、以下の依存関係をインストールした環境が必要です。
Apache Airflow >= 2.0
DataRobot Python API Client >= 2.27.1
Apache AirflowとDataRobotの連携手順
(手順1) DataRobot APIキーを取得し、Apache Airflow上で接続設定を行います(図3)。
図3. 接続を追加 ダイアログボックス
(手順2)Apache Airflow環境にDataRobotプロバイダーをインストールします。Apache Airflow DAGページにインストールしたDataRobotプロバイダーが表示されます(図4)。
図4. Apache Airflow DAGページ
Apache Airflow用のDataRobotプロバイダーは、公開されているGitHubレポジトリ からダウンロードできます。
DataRobotプロバイダーのモジュールには、DataRobot MLパイプラインのステップを自動化する複数のDataRobotオペレータとセンサーがあります。以下に代表的なオペレーターやセンサーを示します。各オペレータは特定のジョブを実行し、各センサーは事前に設定された動作が完了するのを待ちます。
オペレータ
CreateProjectOperator: DataRobotプロジェクトを作成し、そのIDを返します。
TrainModelsOperator: DataRobotのオートパイロットを実行し、モデルをトレーニングします。
DeployModelOperator: 特定のモデルをデプロイし、デプロイIDを返します。
DeployRecommendedModelOperator: 推奨モデルをデプロイし、デプロイIDを返します。
ScorePredictionsOperator: デプロイしたモデルに対して予測を行い、バッチ予測ジョブ ID を返します。
センサー
AutopilotCompleteSensor: Autopilotが完了したかどうかをチェックします。
ScoringCompleteSensor: バッチスコアリングが完了したかどうかをチェックします。
(手順3)Apache Airflow DAGを用いて、DataRobotジョブをスケジュールします。
Apache AirflowとDataRobotの連携でMLOpsワークフロー強化を実現
DataRobotとApache Airflowを連携することで、機械学習パイプラインを自動化しMLOpsワークフローを強化できます。これにより、データからより多くの価値を引き出すことができます。ぜひ、DataRobotとApache Airflowの組み合わせでMLOpsの可能性を広げてください。
機械学習プロジェクトの効率化を図るなら「DataRobot」
DataRobotでは、トライアル環境を提供しています。以下のURLから、アカウントを作成することができます。
https://www.datarobot.com/jp/trial/
トライアル環境では、DataRobotの主要な機能を使用することができます。機械学習モデルの開発や運用に興味がある方やすでに携わっている方も、ぜひこの機会にDataRobotを体験してみてください。
執筆者について
濱上 大基(Hiroki Hamagami)
データサイエンティスト
DataRobot データサイエンティストとして、小売・流通業界のお客さまの AI 活用/推進を支援。博士(工学)修了後、大手電機メーカーにて研究開発に従事。AIを用いた需要予測や材料の配合最適化シミュレーションに取り組んだ経験を有する。現在は、小売・流通業界を中心に複数のプロジェクトに従事し、AIによる継続的な価値創出を支援。
濱上 大基(Hiroki Hamagami) についてもっとくわしく