フェイルファスト - 面倒な技術負債を負わずに素早く失敗する話

最近、ある企業が「AIイニシアチブは大成功だった」と話してくれました。3年間、[プロジェクトの失敗は「ゼロ」](https://experience.dataiku.com/ai-failures/p/1)で、7人からなるデータサイエンティストチームが毎年2つのAIユースケースを本番稼動させているとのことです。この失敗率は低すぎると思いませんか？

仮に、あなたの組織に1000のAIユースケース候補があり、そのうちの25％はROIが大きくプラスになる可能性があるとしましょう。適切なコストで、良いユースケースを見つけるにはどうすればよいでしょう？多くの企業は、成功を確信できる少数のユースケースから始めますが、その確信を正当化するためには経験が不足しています。その結果、少数のユースケースに全リソースを注ぎ込み、ROIを見出すのに何年もかかっています。

一方、AIに成功している多くの企業では、リーンで（無駄を省いた）フェイルファストな（早く失敗する）別のアプローチをとっています。興味深い例として、過去の（第3次）産業革命時に行われたIEEEの「マイクロマウス競技会」を見てみましょう。

## 1970年代のマイクロマウス競技会
![Screenshot 2023-10-16 at 10.27.11 PM.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1196881/dc5255e3-2b1a-c041-42f4-23d62d598497.png)

1970年代後半、マイクロプロセッサーは、ちょうど今日のAIのように、多くの産業やユースケースで自動化を可能にしました。イノベーションを促進するため、米国電気電子学会（IEEE）は、マイクロマウスと呼ばれる自律型の小型ロボットを作り、見たこともない迷路を走らせ、最も速く走ったチームが優勝するという競技会を開催しました。このイベントには、産官学の6,000人が参加し、各チームは複数回マウスを走らせました。(マイクロマウスの迷路競技は、45年たった今でも開催されていて、[YouTube](https://www.youtube.com/results?search_query=micromouse+maze)で勝利者の勇姿を拝むことができます。）

IEEEは「初期の走行で迷路を『学習』し、その後の走行で最短経路を通る」マウスが開発され、マイクロプロセッサーの威力が示されることを期待していました。しかし、そうはならなかったのです・・。 

バテル研究所（Battelle Institute）の「お間抜けな」マウスが、ただ右側の壁にへばりついて、非常に速く進むことで[勝利](https://cyberneticzoo.com/mazesolvers/1977-79-moonlight-special-battelle-inst-american/)したのでした。上の迷路をみてください。右側の壁のアプローチでは、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の[データカタログ](https://doc.dataiku.com/dss/latest/data-catalog/index.html)と[フィーチャーストア](https://doc.dataiku.com/dss/latest/mlops/feature-store/index.html)でデータセットを探し、統計処理、チャート、ダッシュボードをノーコードで利用できます。数分でデータを探索し、数回クリックするだけで、将来の再利用のために保存できます。データの所有者や利用者とチャットして情報を確認したり、十分なデータがあれば、品質やパフォーマンス（データ行数、特徴量の数、ラベル付けされた行数など）はいったん無視して、データ・パイプラインをノーコードで素早く開発し、トレーニング・データセットに集約できます。AutoMLで実験して、正確なモデルを実現可能かどうか確認します。

Dataikuは、実験用にいくつかのアルゴリズム（Lasso回帰、ランダムフォレスト、XGBoostなど）を自動的に選びます。モデルの精度が低すぎる場合、ドメインの専門家（SME）と協力して、特徴量を追加・削減できます。ドメインの専門家はR、Python、SQLを知らなくても、簡単にノーコード・パイプラインに参加できます。それでも精度が低い場合は、より多くの行にラベル付けを行うコストを見積ります。最後に、特徴量重要度チャートでモデルの結果をレビュー・検討し、GoかNoGoか（次のフェーズに進むかどうか）を判断します。

**Crawl（ハイハイする）**：モデルを実際のユーザーに使ってもらいます。モデルを説明するWikiを書いて、モデルカタログに登録したり、リアルタイムの実行結果を見たいユーザーには、APIを作成して数分で実行環境にプッシュできます。インタラクティブなアプリを好むユーザーには、誰もが利用可能なアプリケーションをノーコードで作成します。利用状況をモニターし、ユーザーからのフィードバックを得て、生み出される価値を計算します。再び、Go / NoGoの判断を行います。

**Stand Up（つかまり立ちする）**：かなりのROIが見込めそうなので、これまでに開発したものをシステム化して、導入を促進します。データ集計とパイプライン処理を自動化し、定期・もしくは新しいトレーニングデータが利用可能になった際に自動実行されるようにします。
品質を保証するためのメトリクスやチェック（トレーニングデータ内のMax 年齢、Min 行数、Null値率など）をパイプラインに追加します。チェックに失敗した場合、メール、Slack、Teams等経由で送信されるアラートを設定します。統計シートやダッシュボードをプロジェクトに追加し、新しいユーザーが参加した場合すぐに理解できるようにします。[組織内への周知と使用状況のトラッキングを行い、生成される価値が有望であれば、次のフェーズに進みます。](https://pages.dataiku.com/more-value-from-analytics-ai)

**Walk（歩く）**：より多くのメトリクスとチェックを追加して、パイプラインを強化します。モデルの精度を向上させるために新しい特徴量を試したり、いくつかのハイパーパラメータを手動で設定してモデルを調整します。
本番環境でA/Bテストや[チャンピオン/チャレンジャーテスト](https://blog.dataiku.com/mlops-champion-challenger-model-evaluation)を実施し、実データを使ったモデルの改善効果を測定します。許容可能なROIを生み出しているかどうか、あらためて価値見積りを行います。

**Run（走る）**： Webアプリ（Dash、Shiny、Bokeh、Streamlet、Custom Flash + HTMLまたはJavascript などを利用）を開発して、利用を促進します。データソースとの同期処理を追加し、利用インフラ（Spark、Snowflake、Snowpark・・など）を選択して、処理効率の向上・コスト管理を行います。

入力データのドリフトやモデル精度を継続的に監視し、しきい値を超えた場合、アラート通知やモデルの再トレーニングを実行します。注意が必要なサブグループを指定してモデルバイアスを発見したり、サブグループのモデル精度と特徴量重要度を[監視](https://blog.dataiku.com/managing-data-drift-ensuring-model-performance-over-time)して、しきい値を超えた場合には、アラートや再トレーニングを行います。新しいユーザにモデルを理解してもらうため、分かりやすいダッシュボードを作成したり、提供価値をモデルカタログ上で文書化して、普及をさらに促進します。

## バテル研究所のマイクロマウスのように高速に

Dataikuのフルライフサイクル・プラットフォームでAIをシステム化することで、技術的負債をあらゆる段階で管理し、コストが提供価値を大きく超えないように制御できます。結果として、チームは[プロジェクト中心ではなく成果中心](https://blog.dataiku.com/from-data-to-delight-unleashing-the-power-of-exceptional-data-products)になり、「価値を生み出すために開発リソースを得る」のではなく、「価値を生み出すことで開発リソースを得る」マインドに変化します。この驚くほどシンプルな切り替えが、AIの大きなROIを生み出すことになります。

## AIプロジェクトの失敗についてさらに詳しく

AIプロジェクトの失敗につながる組織・技術上の理由を確認し、状況を改善するための解決策を発見しましょう。詳細は[こちら](https://experience.dataiku.com/ai-failures/p/1)の記事を読む。

原文はこちら：[Fail Fast Without All the Annoying Technical Debt](https://blog.dataiku.com/fail-fast-without-all-the-annoying-technical-debt)