AI(人工知能)の業務システムへの適用が増えるにつれ、当初の期待とは程遠い「ポンコツAIシステム」を多く目にするようになっている。ポンコツAIシステムに陥るのを避けるには、AIシステムを意識した開発プロセスを採用する必要がある。

 AIシステムの開発では、いつまでたっても完成しないプロジェクトが散見される。納期というユーザーの期待を守れていないため、これはポンコツAIシステムといえるだろう。以下に、筆者の経験のエッセンスを盛り込んだ架空事例を示す。

いつまでも完成しない自動発注システム
いつまでも完成しない自動発注システム
PoCだけでは気付けない要件がある
[画像のクリックで拡大表示]

 あるエンジニアはAIを活用した小売業向け自動発注システムの開発プロジェクトを手掛けた。企画段階で3店舗、30商品の規模で有効性を確認するためのPoC(概念実証)を実施し、自動発注の精度、ビジネス面の価値も十分あるという結果を得た。ユーザーはPoCの結果に納得して、システム開発に進むこととなった。以降、開発者中心のチームで開発を進めた。

 その後、要件定義、基本設計とスムーズに進んだが、詳細設計フェーズで問題が発生した。予測モデルの作成に利用する学習データを準備するため、データサイエンティストのチームがシステム化の対象となる1000店舗、2000商品分のデータ分析を実施した。すると、分析が進むにつれて追加の要件が止めどなく見つかったのだ。

 例えば、商品の改廃で取り扱いを始める、新商品の予測に関する要件が想定になかった。こうした新商品はAIに学習させるための販売実績データがない。AIシステムに予測させるには、例外的な処理が必要となる。このほか、特売キャンペーンを実施して、需要の大幅な増加が見込まれる場合の運用も想定になかった。こうしたPoCの段階でスコープに入っていなかった要件が、詳細設計フェーズで次々と見つかった。

 その結果、基本設計後に3回の追加分析と、システム構成を見直す設計変更を行う必要が生じて、プロジェクトのスケジュールは遅延した。

開発中も常にデータ分析が必要

 この問題が発生したのは、AIシステムで使うデータの分析を詳細設計に入るまで後回しにしていたからだ。現実のプロジェクトはこの事例と同様、PoCで得た知見を基に要件定義をするケースが多い。しかし、ここに落とし穴がある。PoCは限定的なスコープで実施する。PoCで気付かなかった要件がプロジェクトの終盤で見つかると、大きな手戻りが発生し、場合によってはスケジュールが遅延する。

 手戻りを減らすには、開発と並行してデータ分析を実施すべきだ。詳細設計に入ってからまとめて実施するのではなく、要件定義フェーズから設計の進行に合わせて随時実施した方がよい。筆者は、こうしたデータ分析を「仕様決定分析」と呼んでいる。仕様決定分析は設計を支援するプロセスに当たる。

 基幹系システムやWebサイトといった従来のシステムであれば、顧客やユーザーが「これでよい」と判断すれば仕様を確定できた。しかし、AIシステムではデータを分析しないと判断できない仕様がある。こうした仕様をデータ分析に基づいて決めるのが仕様決定分析となる。

AIシステムの仕様の決め方
AIシステムの仕様の決め方
AIシステムはユーザーの確認と合意だけでは仕様が決まらない
[画像のクリックで拡大表示]

 データ分析をしないと分からない仕様の典型が、システムで必要となるCPU/GPUやメモリー、ディスク容量などだ。AIシステムで負荷がかかるのは主に学習のときだが、データ量や内容による変動が大きい。PoCでは少量のデータしか確認しないため、これだけで必要なリソースを決定するのは困難だ。

 ほかに、PoCで確認していない業務もあり得る。夏や冬しか陳列しない季節性商品の販売などが典型だ。別に学習方法を検討する必要がある。