これは、ここ数年間データサイエンティストとして働いた人間の見解ですが、「AIで課題を解決しよう」と考えた際に、主役としてAIありきでIT化を考えると失敗するリスクが高いと思っています。

特に、「我が社もAI導入、データ活用を!」のようなDXの文脈から生まれる動機により、はじめからAI中心の解決策を模索すると失敗する確率が格段に上がります。

ということで、なぜAIありきでビジネス課題を解決しようとすると失敗する確率が上がるのかについて考えていきます。

AIは数あるITの要素技術のうちの一つ

まず、前提としてITの世界においてAIやデータサイエンスは、ネットワークやデータベースといった数あるシステムを構成する技術の一つでしかありません。

そして、AI単独でビジネスに貢献することはできないので、AIを動かすためのシステムが必要になるわけですが、システム全体から見るとAIの占める割合は僅かなものになります。

例えば、ある製菓工場でラインを流れる製品の映像から不良品の製品を判別するAI検査システムを構築します。

そうなると、まずシステムが動くサーバーが必要で、サーバーと製品の映像を撮影するカメラが必要になります。

製品のロットや情報を保存するデータベースも必要ですし、検査員の人がUIとして使用する操作アプリが必要です。さらにAIモデルを運用するソフトウェアも開発します。もちろん、それぞれの構成要素を接続するためのネットワークを必要ですし、AIモデルはクラウド上で運用されることが多いのでその場合はセキュリティも構築しなくてはなりません。

自動で製品をロボットアームで弾くなどの要件がある場合はさらにシステム自体が複雑になります。

となると、AI検査システムを構築するには、膨大なAI以外のノウハウが必要になるわけです(最も重要なのは検査システム全体を構築するノウハウ)。さらに、こういったハードとソフトを融合したシステムは複数の開発会社が協力する場合が多く、要件や仕様を整理・整合するのは非常に難易度が高いです。

しかし、はじめからAIありきで考えてしまうとそれらの要件を考慮することができず開発が進行し、最終的に整合性が取れなくなってしまうというのがAIプロジェクトでありがちな結末になります。

AIが技術として広く浸透した今も、多くの技術要素の要件を強調させなければならない場面で、AIだけが独り歩きし、わがままな要件を突きつけて、プロジェクトが破綻するということが起こっています。

AIのPoCの前にシステム全体におけるAIへの要件は決めておく

AIが絡むプロジェクトの中で、最初に実施することはAIモデルの精度検証のためのPoC(検証プロジェクト)です。

なぜかというと、どんな場合でもすべての技術の中でAIが最も不確実性が高い、つまり要件を満たせずに技術的に役に立たないことが多いからです。

システム開発のみならずITの世界ではこの不確実性が最も嫌われます。システムはどんな入力に対しても、あらゆる要素が合格点だし、期待以上の出力を出すことを求められますが、不確実性があると期待されてない出力、つまりバグを出すからです。

ユーザーのバグに対する目は厳しいです。バグがあるシステムはどんなに高度なシステムでも無価値です。

だから、開発する側からするとAIの性能を確かめて安心したいですし、他の開発が進んでからやっぱりAIの性能が期待したものにならないとなると、それまでの開発費が水の泡になるので先にPoCを実施することになります。

ただし、どんなにPoCを実施してもAIは間違えます。不確実性が0になることはないのです。タスクの難易度によっても異なりますが数%から数十%の間違いは発生します。この間違いに対してシステム全体がオペレーションも含め整合性を保てるかが重要になります。

ある程度経験のあるデータサイエンティストならデータとタスクからPoCを実施で達成できる最高精度は定性的に予測することができます(逆に最低精度は検討がつかないです)。最良のケースで考える精度に対してシステム全体の利用価値が開発費を超えないのならばプロジェクトを実施する意味はありません。

そして、AIの開発費も不確実性が高い要素で、実運用後も再学習のための保守費がかかります。なので、かなり採算的に余裕がある場合以外は実施する必要ないと思います。

桁違いの不確実性を持つAIは消して強力な技術ではない

新規技術に不確実性はつきものです。しかし、ITにおいて不確実性はプロジェクトの失敗を招くだけではなく、そのシステムが支援するビジネスそのものに悪影響を及ぼします。

なので、不確実性に対処する様々な方法が考えられてきました。AIシステムの開発でよく用いられるアジャイル開発も不確実性のビジネスへの悪影響を軽減し、プロジェクトの成功確率を上げるために手法の一つです。

しかし、定性的に議論になりますが他の新規技術の比較して不確実性が桁違いに高いAIは、IT技術として強力とは言えません。

AIは上手く機能したときの効果も大きいです(私もAIに魅せられた一人です)。しかし、圧倒的な不確実性を考えるAIは非力な技術としか言いようがありません。

ですから、その課題を解決するために、AI以外の方法が取れるなら、迷わずAI以外の方法を取るべきです。しかし、社内外にAIを導入したい、AIを使って開発したいという下心がその判断を狂わせてしまいます。

AI使用していい場合はAIがシステムの部品として機能するときだけ

冒頭に上げた「AI検査システムに」おいて、あくまで検査システムであり、AIは一つのモジュール、一つの関数でしかありません。

ただ、現状の開発では検査システムとしての整合性よりも、一つの部品であるAIのPoCが先行して、そこで決まった要件を他の要素に押し付ける形で開発が進みます。

あまりにも、AIがでしゃばり過ぎていると思いませんか?

まずはシステム全体の要件が検討され、さらにAI部分の要件さらに、その要件が達成されるかの検討がなされるべきです。したがってプロジェクトをリードするのはデータサイエンティストではないです。しかし、現実はシステムを発注したオーナーも開発リーダーもユーザーもAIのところばかり注視しています。

要件押し付けられるべきなのは、部品であるAIであり、その要件をAIが余裕で満たせないのであれば開発を進める意味はありません。失敗することが目に見えてます。

個人的にな見解ですが、十分に見込みがない場合は実施する必要はないです。

AIは実用化されて10年以上たった技術です。そこにわざわざ挑戦する意義は少ないです。この10年間AIが普及しなかったのならば、そこには何らかの理由があってAIの導入ができないと考えるべきだと私は思います。2024年現在AIを新規技術と考えるのは無理があります。

PoCを繰り返したり、運用・保守を続けることでAIの不確実性は減少しますが、小数点以下の世界で争っている他技術と比較して数十%のも及ぶAIを無理して運用しているの運用しながら負債を抱え続けることになります(誰にも使われなくなることが関の山です)。

あくまで、AIは一つの部品であり、部品として機能しなければ当然使うべきではありません。また、部品として使うだけでシステム全体の安定性を下げてしまうので、使用しなくても済むなら避けたいですね。

AIはあくまで目的を達成するための手段でしかありません。なんども書きましたが、手段と目的を履き違えて手段であるAIを使用することを目的とするとプロジェクトは失敗します。

AIが抱える問題が解決されて、強力な手段となるにはまだな何十年もかかると思います。もしかしたら、人類がAIを使いこなす日はこないかもしれません。

そのうえでもなおAIを選択すべきと判断されたならそのプロジェクトはAIプロジェクトとしてふさわしいと思います。

それでは。