しかし、最近、私は、この膨大な計算リソースが、逆にAI技術の研究開発を妨げ始めているのではないか、と考えるようになってきました。
そのきっかけとなったのは、自宅で日本人1億2700万人分のオブジェクトをパソコンの中に作って、ここ10年から1000年オーダーの日本の人口の変化などを調べていた時です*5)。
*5)参考記事:http://www.kobore.net/diary/?date=20140822
1億2700万個の構造体のオブジェクトの、39世代目の、7500万番目くらい(番号を特定できない)のポインタが、ヌルポインタを指し示して、セグメンテーションフォールトするというバグで、シミュレーションを続けることができなくなったのです。
そして、このデバッグは、最悪でした。
コアダンプも取れなかったので(原因不明)、バグの発生箇所を特定するために、1億2700万人分のシミュレーションのデータを、パソコンのディスプレイで表示しなければならなかったのですが ―― とにかくオブジェクト数や計算量が膨大で、私がパソコンの前を離れ、風呂に入って戻ってきても、まだ1世代の計算が終了していない……という有様でした。
AI技術についても同じことがいえます。
AI技術は、膨大な計算を必要とするものが多く、そのアルゴリズムは(原理はともあれ)実装は恐ろしく面倒です。上記のように、メモリリークなどが理由で、プログラムがクラッシュしてくれるなら、まだ幸運なケースです。大抵の場合は、間違った計算をし続けた挙句、正常終了してしまいます。
この場合、期待通りの結果が得られたのか、得られなかったのかを判断する手段がなく、しかも、得られなかった場合、それがAI技術の限界によるものか、あるいはバグによるものかを、判定する方法がないからです。
これが、世間がこれほどまでに「AI」で騒いでいるのに、現場(特にものづくりの現場)で、一向にAIの導入が進んでいかない理由の1つです。
この問題の本質は、
AI技術が膨大な計算リソースを必要としながら、その膨大な計算リソースによって、そのAI技術の処理内容が把握できなくなる
という、巨大なジレンマにあります。
Copyright © ITmedia, Inc. All Rights Reserved.