賢いAIほど間違う(気がする)
先程「CLINEに全部賭けろ」という記事を読んだ。これはそのコメント欄?に書きかけていたことだが、直接的に関係する内容ではなかったのと、長くなりすぎたので、急遽ポエムとして書いている。
スマホから書いているので色々適当になっているし、そもそもがポエムとして不確実なものなので、暇つぶしをしたい方だけ読んでほしい。
1つ前段として、私が普段からシステム開発について思っていることは、システム開発は他の製造業と根本的に異なるということだ。
それは製造の肯定が実質的に存在しないということ。
通常、パンであれ車であれ、薬であれ、研究開発と製造は別々に存在する。美味しいパンのレシピを創っても、実際に材料を仕入れてパンを焼く、毎日毎日それをしなければ販売はできない。
ところが、システムは一度開発ができてしまえば、それが偶然であれ何であれ、無限に瞬間的に増やし、配ることができる。
このことから言えるのは、全く新規性のないシステムが開発されることは殆どない、ということだ。
機能は同じでも処理速度が違ったり、デザインが違ったり、コストが違ったり、少なくともどこか一点においては現状のシステムより優れているために、システムは開発される。
全く同じシステムが既に存在するなら、それはそれをコピーするだけでよい。
さて、本題だ。
私がAIを使っていて感じるのは、賢いAIほど誤るということ。
単に膨大なレガシーコードの中から類似するコードを見つけてくれるAI、は優秀で有用なコードを提供してくれる。何故ならそのコードは世界の誰かが実際に書いて検証して動作したコード、だからだ。
ところが、説明書や仕様書を読み取り、また言語としてプログラムを認識している高度なAIは、独自の解釈や工夫によって実際には正しく動作しないコードを"創る"ように思える。ここには2つポイントがある。
1つ目は、少なくとも今のところ、AIが実際にコードを動かして動作テストを行うことはできない、ということ。如何に厳密に仕様書にのっとっていても、文法的に正しくとも、動かないコードは誤りで、AIはその「実際に動くか」を知りえない。
2つ目は、そもそも今AIが読んでいる説明書、仕様書は人間向けのものである、こと。もし説明書に「ねじを回す」、と記載があれば、人間であればねじをはめ込み、適切な方向にそれ以上回らなくなるまで回すことができるが、AIはねじをどの方向にどのくらいどんな強さで回すのか、がわからない。
つまり、AIが人間向けの説明書や仕様書を文章として理解したところで、それを実際に実行はできない、と考えられる。そうであれば、寧ろ説明書や仕様書を理解してAIなりに解釈する「高度なAI」がよく誤る理由になる。
”AIは進化してひろゆきから小学生になった”
もし、こうした誤ったコードが増え、結果レガシーコードを参照するAIも誤る、ならば
正しくコードを書ける人もAIも殆どいなくなる、そういった未来があるのかもしれないと思う。
勿論この界隈が今後どのように発達していくのかはわからない。AIがAIの為のプログラミング言語や開発体系、そのドキュメントを作り、AI同士で共有する中で、本当にただ人が指示をする、或いは指示すら必要のない時代が来るのかもしれないが、そうなった時どんな系統であれAIを使う能力が活用できる未来ではないと思う。
長くなったが、つまるところ個人的には、ただ人間の検索を代替する、この中では比較的レベルの低いAIの方がうまく活用でき、そしてそれは処理速度や細やかさは兎も角、能力的には、比較的行き着く果てにたどり着いているのではないか、と思う。
誰が何を言ったかは指して重要ではない。賢者はよく間違う。
ただ私達は一片のブラックボックス中のバグがシステム全体を修復不能にしてしまうことを知っているはずだ。
AIは良い、便利だ。そしてプログラミングは無駄だらけだ。同じような処理を、手続きを毎回毎回繰り返すこともある。それをAIに任せるのは大賛成である。あるが、果たしてプログラミング全域を、未知の価値を生み出すべきシステム開発全域を、AIに代替させる未来がくる、かは疑問だ。
AIの世界は後出しじゃんけんだ、単に新しいAIが優秀でそれを使えば良いのであれば、最後の最後まで待った者が勝つだろう。
でもそれは次の瞬間、AIによる完全AI依存型の、人の介在しないシステム開発に負けるのではないか。
私達が「賭ける」べきAIとは、根源的な検索の代替ツールであるか、或いは特定の何かAIではなく、その場その場で最新最適なAIなのではないか
という夢を見た。
Discussion