「時間がかかる」、「スムーズにいかない」、「エラーが発生しやすい」、AI プロジェクトのデリバリープロセスと言えば、そんなイメージがあるのではないでしょうか。
実際、そのプロセスは非常に困難で、これまでに実稼働まで至ることのできた AI プロジェクトは 38% に過ぎません。
そして、たとえ実現しても、多くの場合において、手作業が必要になり、立ち上げに時間がかかるだけでなく、拡張性にも乏しく、更新も容易ではありません。
AI プロジェクトで発生する問題のほとんどは、手作業によるプロセス、データと人材の連携不足、使用するテクノロジーに起因しています。
機械学習の自動化と継続的デリバリー(CD4ML)を実現すれば、時間のかかる工程を省いて時間を節約しながら、信頼性の高い機械モデルを本番環境に導入し、さまざまなメリットを得られるようになります。
CD4ML は、自動化、データ、コード、モデルを用いて、小規模でも再現性の高い機械学習アプリケーションを開発し、複数の部門にまたがる機械学習アプリケーションを本番環境に導入します。CD4ML では、新しいデータやトレーニングから生じる小さな変化に応じて、成長・適応できるモデルを作ることを最終的な目標とします。
これにより、機械学習モデルの作成が容易になるだけでなく、安全性も向上します。CD4ML のプロセスでは、標準的な AI プロジェクトのプロセスで生成される、大規模な 1 回限りのリリースで生じがちなエラーの可能性を低減することができます。
こう説明すると簡単に聞こえるかもしれませんが、実際に CD4ML モデルの導入は簡単です。
それでは、Alteryx と AWS を介した MLOPs ソリューションで、機械学習モデルを提供する方法をご紹介します。
包括的な CD4ML ソリューションを導入するには、まず次のような作業を行う必要があります。
Alteryx Analytic Process Automation (APA) Platform は、前述の課題に対応する以下の 4 つのコンポーネントで構成されています。
それぞれが CD4ML のプロセスにおいて、どのように役立つかをご説明します。
Alteryx Connect を使用すると、Alteryx がアドオンとして提供するデータセットをはじめとするさまざまなソースからのデータをカタログ化できます。
Alteryx Connect を使用してデータソースをカタログ化する方法
Connect を使用すると、ご自身やチームで関連するデータアセットを簡単に検出・把握できます。
Connect にデータソースが表示されると、組織内のユーザーは、投票、コメント、共有などのソーシャル検証ツール用いて、利用できるデータが有用かつ最新のものであるかどうかを確認することができます。
Connect をインストールしたら(Amazon EC2 上で動作する Windows Server 環境で可能)、25 以上の既存のデータベースメタデータローダーの 1 つ以上を使用してデータソースを追加することができます。これには、Amazon Redshift および Amazon S3 用ローダー、Amazon Aurora からメタデータをロードできる Postgres および MySQL 用ローダーが含まれます。
データソースにメタデータローダーがない場合、Alteryx が提供する SDK を使用すると、複数の言語や REST API をサポートする新しいローダーを簡単な手順で作成することができます。Connect はクロスプラットフォームで提供されるため、Desktop Designer や Server を使用するすべてのユーザーが、共有のメタデータに基づいてデータアセットを探索・活用することができます。
Alteryx Connect のデータアセットリネージ
また、データプロバイダのデータセットを使用して、ユーザーデータを強化することもできます。Alteryx Datasets と独自のデータと組み合わせることで、立地やビジネスに関する貴重なインサイトを得られるようになります。モデリングの領域では、このデータと独自のデータを組み合わせることで、人口動態や地理的な特徴をモデルに反映させることができます。
Alteryx Designer を使用すると、さまざまな予測モデリングや機械学習実験ツール群で使用するデータを取り込むことができます。各ツール群は、組織内のさまざまなレベルの機械学習の経験者に対応し、その学習を支援します。Alteryx Intelligence Suite 無料トライアルで、ぜひ一連のプロセスをご確認ください。
Alteryx Designer では、ユーザーの経験レベルに応じてモデリングや実験を行うことのできるオプションが用意されています。
チームがデータアーキテクチャを実装し、適切なデータアセットを特定したら、いよいよ分析を開始します。Designer では、コードフリー・コードフレンドリーな開発環境を通じて、あらゆるスキルレベルのアナリストが、機械学習を用いた自動分析のワークフローを作成することができます。
Designer は、ローカルの Windows マシンまたは クラウドで利用できます。
Alteryx では、80 以上のデータソースへのコネクタを提供しており、データの保存場所や保存方法にとらわれることなくデータを活用できます。Amazon Athena、Amazon Aurora、Amazon S3、Amazon Redshift 用のコネクタを含む AWS Starter Kit を利用することもできます。
Alteryx は複数のソースからのデータ処理に共通の基盤を提供するため、高パフォーマンスのワークロードにおいては、多くの場合、前処理のワークフローによってデータを共同化することがベストプラクティスとなります。例えば、オンプレミスのデータを AWS のソースに移動させれば、今後の処理のレイテンシーを軽減できるようになります。これはすべてドラッグ & ドロップで操作可能な、コードフリーのデータコネクタ用のビルディングブロックで実行できるため、基盤となるインフラストラクチャの CLI/SQL の複雑な知識は必要ありませんが、もちろん後者の方法でも実行可能です。
Designer には、コードフリーでデータ処理を行うことのできる 260 以上の自動化ビルディングブロックが含まれており、データの準備、クレンジング、ブレンディング、マッピング、可視化、モデリングなどを行うことができます。データのクレンジング、ブレンド、準備用のビルディングブロックは、機械学習を実施する前に、トレーニング、テスト、検証用のデータセットを準備するためによく使用されます。
Alteryx Designer で複雑な分析ワークフローを構築
モデリング前に行うデータ前処理の多くは、Alteryx のインデータベース機能を使用して実行することもできます。この機能では、データ処理タスクをデータベースにプッシュダウンし、処理の完了後、ローカルマシンのメモリ内のアクションが実行されるまで、データの取り込みを遅らせることができます。
Alteryx Designer では、さまざまな機械学習のオプションを利用できます。
Alteryx Predictive Suite では、記述的分析、予測分析、処方的分析のタスクの多くをコードフリーで実行できます。また、これらのビルディングブロックを動作させる基礎となる R コードをカスタマイズして、特定のユースケースに対応させることも可能です。
Alteryx Intelligence Suite では、機械学習パイプラインを構築するためのコードフリー機能と、テキスト分析用の追加機能を利用できます。
Intelligence Suite では、ビジネスアナリストが機械学習を使用して、特定のビジネス課題を解決する検証済みモデルを構築できるように設計された自動モデリング機能である「アシスト付きモデリング」も提供しています。
アシスト付きモデリングはオープンソースのライブラリで構築されており、ドラッグ & ドロップやウィザードで作成したモデルを Python スクリプトとして出力するオプションも利用できます。
これら 2 つのオプションを使用することで、R や Python をサポートするコードフレンドリーなビルディングブロックを使って、ワークフローに組み込む機械学習コードを作成することも、同じ作業をコードフリーで行うこともできます。ビルディングブロックを用いることで、好みのフレームワークやライブラリと連携したり、内蔵の Jupyter notebook との統合により、インタラクティブなデータ実験を行ったりすることが可能です。
アシスト付きモデリングのスコアボードでトレーニング済みのモデルを比較
Alteryx Server 活用することで、データガバナンスに使用するワークフローなどの運用を行うことができます。Server は、AWS でネイティブに動作するコンポーネント化されたインストール体験を提供します。
Alteryx Server の AWS へのインストールは簡単で、機械学習やデータガバナンスのワークフローを稼働させることができます。
Alteryx Server は、より大規模なトレーニングデータ、ハイパーパラメーターのチューニング、本番化をサポートするためのスケーリングをサポートしており、分析アセットの管理・導入にも役立ちます。
また、機械学習のトレーニングパイプラインで使用するように指定できる Server クラスターに、CPU を最適化したマシンを簡単に追加することもできます。長時間実行されるトレーニングジョブを Server で実行することで、トレーニングジョブの実行中も Designer で分析ワークフローの設計を柔軟に継続できます。
Server では分析ワークフローのスケジューリングとシーケンシングを行うこともできます。これらの各機能は、CI/CD パイプラインの一部として使用でき、本番環境に導入したモデルの品質を保証します。REST API を使用すると、ワークフローをプログラムでトリガーしたり、ステータスを監視したりしながら、確立された DevOps および CI/CD セットアップに統合できます。
Aleryx Server は、オンプレミスのデータセンターまたは AWS クラウドにインストールでき、シングルノード構成とマルチノード構成をサポートします。AWS Marketplace で提供されている、Amazon Machine Image(AMI)を利用すれば、ワンクリックで簡単に導入できます。カスタマイズしたインスタンスは、Amazon Virtual Private Cloud を使用してプライベートサブネットに展開することもできます。Server にはカスタマイズ用の多様なオプションがあり、そのうちの 1 つが、Server のメタデータをユーザーが管理する MongoDB インスタンスに保存するオプションです。AWS はこのオプションを簡単に利用できる Quick Start を提供しています。
詳細は、AWS に Alteryx Server を導入するためのベストプラクティスをご覧ください。
Alteryx Serverは、分析アセットのガバナンスおよびバージョン管理機能を内蔵しており、他のソースコントロールソリューションの代わりに、またはそれに加えて使用することができます。
Alteryx Promote は、プラットフォームと連動し、モデル管理、リアルタイムでのモデルサービス、モデルの監視をサポートするソリューションを提供しています。
Alteryx Promote は、モデル管理と高可用性、低レイテンシーのモデルサービスを備えた MLOps ソリューションを提供します。
Alteryx APA プラットフォームでは、モデルの実行に関する複数のオプションを利用できます。Promote は、主に Web アプリケーションと連動するモデルで一般的なリアルタイムでの実行に使用されます。Promote では、使いやすい Python と R のライブラリを活用するか、AlteryxDesigner を用いたコードフリーの方法で、事前にトレーニングした機械学習モデルを迅速に導入することができます。
Promote のクラスターサーバー環境に導入されたモデルは、Docker コンテナとしてパッケージ化され、ノード間で複製され、メモリ内の推論メソッドをホストする高可用性 REST API としてアクセスできるようにになります。各モデルのレプリケーション数は、Promote のクラスターで使用可能なノード数と同様に設定できます。内部ロードバランサーが、使用可能なレプリケーション全体にリクエストを分散させます。
Promote で稼働中のモデルのパフォーマンスを監視
Promote は、Server や Connect と同様に、 AWS のクラウド環境またはオンプレミスのデータセンターにインストールできます。また、Elastic Load Balancingなどの外部ロードバランサーを使用して、すべての Promote ノードに予測リクエストを分散させることをおすすめします。Promote は、スループットがすでに判明しているか、オンデマンドで変更可能な、予測のケースに最適です。自動スケーリングは技術的には可能ですが、本製品の使用目的を逸脱した方法となります。
既知・既存のハードウェアでバッチ推論を必要とするモデルのソリューションには、Alteryx Server がおすすめです。バッチモデルは、ワークフローアプリや分析アプリの予測用にパッケージ化が可能で、コンピューティング用に最適化されたノードの Server で実行するようにスケジュールできます。
また、Serve rのワークフロー管理機能を活用し、データの前処理によって最新の特徴量が生成された後にのみ、予測が行われるように設定することもできます。
さらに、複雑なモデルを大規模に展開するためには、Alteryx と AWS の両ソリューションの併用が必要になることがよくあります。よくある使用パターンの 1 つは、デスクトップ上のアシスト付きモデリングツールを使用して、サンプルデータ上のモデルのプロトタイプを作成するものです。Designer と Server を使用することで、ローカルソースからのデータを準備・ブレンディングし、結果のデータを S3 にプッシュすることができます。
その後、アシスト付きモデリングで作成したモデルコードを SageMaker にプッシュして Amazon S3 データセット全体でモデルを学習させ、SageMaker エコシステムの API として実行すれば、コンテナ化、スケーリング、サーバーレスなどの機能を活用することが可能です。
Alteryx は、モデル構築の手軽さを重視しているため、データサイエンスの知識が不足しているものの、DevOps やエンジニアリングリソースが豊富に存在する組織にとっての最適な選択肢となります。
Alteryx では、モデリングと導入プロセス全体でのモデルテストを行うことができます。検証段階では、予測ビルディングブロックとアシスト付きモデリングを用いることで、パフォーマンスの指標や視覚化について報告し、各モデルの一般化の可能性を比較することができます。
アシスト付きモデリングでは、permutation importance の手法を使用して特徴量の重要度をスコア化した、説明可能な AI(XAI)レポートも作成することができます。
モデルの導入時に、テストデータを Promote の導入スクリプトに簡単に追加でき、テストステップを使用して、条件付きでそのモデルバージョンの導入を許可または禁止することもできます。
Promote の新しいモデルバージョンは、最初は論理的な開発環境とステージング環境でホストされるため、以前に実行されていた本番モデルと並行して新しいモデルを実行することができます。テスト担当者は、API を使用して実現可能な本番モデルの置き換えを決定する前に、本番モデルとステージングモデルの両方のバージョンを予測するようにシステムを設定できます。
Promote には、すべてのリクエストとレスポンスのデータが記録されるため、そのデータを活用して偏り、公平性、コンセプトのズレなどをテストするカスタムワークフローを開発できます。
Promote には、受信したすべてのリクエストとレスポンスを記録するだけでなく、Amazon Elasticsearch Service に集約された各指標も追跡するため、管理者は導入したモデルのパフォーマンスを監視することができます。前月のリクエスト、エラー、レイテンシーなどの指標では、モデルにさらに手を加える必要があるかどうかを判断することができます。システムの使用率レポートを追加すると、追加のノードを Promote クラスターに追加する必要があるかどうかを判断できます。
また、コンセプトやデータのズレを分析するために過去のリクエストデータを出力することも可能です。これらの分析は、Server で実行するようにスケジュールされた Alteryx Designer で実行でき、何らかのズレが検出された場合は CD パイプラインを開始することもできます。
包括的な CD4ML ソリューションを導入するには、データへのアクセスとプロセスを自動化し、データサイロを排除し、スケーラブルなソリューションを実装する必要があります。
Alteryx と AWS でできること
Alteryx APA Platform は、エンドツーエンドのプラットフォームであり、コードフリーでデータコネクタやビルディングブロック、モデリングソリューションを作成・導入することができます。
Alteryx APA Platform は、API、サードパーティーのデータコネクタ、オープンソースソリューションなどによるオープンエコシステムを提供し、Alteryx のソリューションと AWS のネイティブコンポーネントを組み合わせることを可能にします。
これにより、ビジネスのニーズにマッチした機械学習を自在に導入することができます。
Intelligence Suite スターターキットで機械学習モデルの導入をスタートさせませんか?
Alteryx Designer のインタラクティブデモを、ぜひご覧ください。
スケーリングについては、AWS に Alteryx Server を導入するためのベストプラクティスや、 AWS Marketplace から Alteryx Server を導入する方法をご覧ください。