最近、ある企業が「AIイニシアチブは大成功だった」と話してくれました。3年間、プロジェクトの失敗は「ゼロ」で、7人からなるデータサイエンティストチームが毎年2つのAIユースケースを本番稼動させているとのことです。この失敗率は低すぎると思いませんか?
仮に、あなたの組織に1000のAIユースケース候補があり、そのうちの25%はROIが大きくプラスになる可能性があるとしましょう。適切なコストで、良いユースケースを見つけるにはどうすればよいでしょう?多くの企業は、成功を確信できる少数のユースケースから始めますが、その確信を正当化するためには経験が不足しています。その結果、少数のユースケースに全リソースを注ぎ込み、ROIを見出すのに何年もかかっています。
一方、AIに成功している多くの企業では、リーンで(無駄を省いた)フェイルファストな(早く失敗する)別のアプローチをとっています。興味深い例として、過去の(第3次)産業革命時に行われたIEEEの「マイクロマウス競技会」を見てみましょう。
1970年代のマイクロマウス競技会
1970年代後半、マイクロプロセッサーは、ちょうど今日のAIのように、多くの産業やユースケースで自動化を可能にしました。イノベーションを促進するため、米国電気電子学会(IEEE)は、マイクロマウスと呼ばれる自律型の小型ロボットを作り、見たこともない迷路を走らせ、最も速く走ったチームが優勝するという競技会を開催しました。このイベントには、産官学の6,000人が参加し、各チームは複数回マウスを走らせました。(マイクロマウスの迷路競技は、45年たった今でも開催されていて、YouTubeで勝利者の勇姿を拝むことができます。)
IEEEは「初期の走行で迷路を『学習』し、その後の走行で最短経路を通る」マウスが開発され、マイクロプロセッサーの威力が示されることを期待していました。しかし、そうはならなかったのです・・。
バテル研究所(Battelle Institute)の「お間抜けな」マウスが、ただ右側の壁にへばりついて、非常に速く進むことで勝利したのでした。上の迷路をみてください。右側の壁のアプローチでは、8回「間違った」道を曲がり、最短経路よりも120%長く移動します。しかし、「間違った道を通らないことを8回決定する」方が、「間違った道を通ること」よりも時間がかかるのであれば、この勝者の選択は最適だったと言えます。AIのユースケースについても同じことが言えます。つまり 「最良だが、ほんの数個」を学習するよりも、「数多く」試した方が速いということです。Dataikuは、このアプローチをサポートする多くのプラットフォーム機能を提供します。
フェイルファスト(Fail-Fast)な開発
AIをいち早く取り入れた企業(アーリーアダプター)は、Crawl - Walk - Run(ハイハイ - 歩く - 走る)のアプローチで計画し、すでに何百ものユースケースを本番運用しています。
私たちは最近、現実的なレイトアダプター企業と仕事をすることが増えているのですが、ある人は「Crawl - Walk - Run では、自分には速すぎる」と言って、ユースケースに「Roll-over - Crawl - Stand-up - Walk - Run(寝返り - ハイハイ - つかまり立ち - 歩く - 走る)」を使っていると言っていました。Dataikuは、高価で不透明なコードをたくさん書くことなく、このようなアプローチをサポートするプラットフォーム機能を備えています。以下に例を示します。
Roll - Over(寝返りを打つ):ユースケースに関連して、よく聞かれる最初の質問は「トレーニング用データセットの開発は、どの程度可能ですか?」です。
Dataikuのデータカタログとフィーチャーストアでデータセットを探し、統計処理、チャート、ダッシュボードをノーコードで利用できます。数分でデータを探索し、数回クリックするだけで、将来の再利用のために保存できます。データの所有者や利用者とチャットして情報を確認したり、十分なデータがあれば、品質やパフォーマンス(データ行数、特徴量の数、ラベル付けされた行数など)はいったん無視して、データ・パイプラインをノーコードで素早く開発し、トレーニング・データセットに集約できます。AutoMLで実験して、正確なモデルを実現可能かどうか確認します。
Dataikuは、実験用にいくつかのアルゴリズム(Lasso回帰、ランダムフォレスト、XGBoostなど)を自動的に選びます。モデルの精度が低すぎる場合、ドメインの専門家(SME)と協力して、特徴量を追加・削減できます。ドメインの専門家はR、Python、SQLを知らなくても、簡単にノーコード・パイプラインに参加できます。それでも精度が低い場合は、より多くの行にラベル付けを行うコストを見積ります。最後に、特徴量重要度チャートでモデルの結果をレビュー・検討し、GoかNoGoか(次のフェーズに進むかどうか)を判断します。
Crawl(ハイハイする):モデルを実際のユーザーに使ってもらいます。モデルを説明するWikiを書いて、モデルカタログに登録したり、リアルタイムの実行結果を見たいユーザーには、APIを作成して数分で実行環境にプッシュできます。インタラクティブなアプリを好むユーザーには、誰もが利用可能なアプリケーションをノーコードで作成します。利用状況をモニターし、ユーザーからのフィードバックを得て、生み出される価値を計算します。再び、Go / NoGoの判断を行います。
Stand Up(つかまり立ちする):かなりのROIが見込めそうなので、これまでに開発したものをシステム化して、導入を促進します。データ集計とパイプライン処理を自動化し、定期・もしくは新しいトレーニングデータが利用可能になった際に自動実行されるようにします。
品質を保証するためのメトリクスやチェック(トレーニングデータ内のMax 年齢、Min 行数、Null値率など)をパイプラインに追加します。チェックに失敗した場合、メール、Slack、Teams等経由で送信されるアラートを設定します。統計シートやダッシュボードをプロジェクトに追加し、新しいユーザーが参加した場合すぐに理解できるようにします。組織内への周知と使用状況のトラッキングを行い、生成される価値が有望であれば、次のフェーズに進みます。
Walk(歩く):より多くのメトリクスとチェックを追加して、パイプラインを強化します。モデルの精度を向上させるために新しい特徴量を試したり、いくつかのハイパーパラメータを手動で設定してモデルを調整します。
本番環境でA/Bテストやチャンピオン/チャレンジャーテストを実施し、実データを使ったモデルの改善効果を測定します。許容可能なROIを生み出しているかどうか、あらためて価値見積りを行います。
Run(走る): Webアプリ(Dash、Shiny、Bokeh、Streamlet、Custom Flash + HTMLまたはJavascript などを利用)を開発して、利用を促進します。データソースとの同期処理を追加し、利用インフラ(Spark、Snowflake、Snowpark・・など)を選択して、処理効率の向上・コスト管理を行います。
入力データのドリフトやモデル精度を継続的に監視し、しきい値を超えた場合、アラート通知やモデルの再トレーニングを実行します。注意が必要なサブグループを指定してモデルバイアスを発見したり、サブグループのモデル精度と特徴量重要度を監視して、しきい値を超えた場合には、アラートや再トレーニングを行います。新しいユーザにモデルを理解してもらうため、分かりやすいダッシュボードを作成したり、提供価値をモデルカタログ上で文書化して、普及をさらに促進します。
バテル研究所のマイクロマウスのように高速に
Dataikuのフルライフサイクル・プラットフォームでAIをシステム化することで、技術的負債をあらゆる段階で管理し、コストが提供価値を大きく超えないように制御できます。結果として、チームはプロジェクト中心ではなく成果中心になり、「価値を生み出すために開発リソースを得る」のではなく、「価値を生み出すことで開発リソースを得る」マインドに変化します。この驚くほどシンプルな切り替えが、AIの大きなROIを生み出すことになります。
AIプロジェクトの失敗についてさらに詳しく
AIプロジェクトの失敗につながる組織・技術上の理由を確認し、状況を改善するための解決策を発見しましょう。詳細はこちらの記事を読む。