特集 主役登場
人とAIが協働してプログラムをつくる未来世界の実現に向けて
倉林 利行
NTTソフトウェアイノベーションセンタ
研究員
私は入社以来、ソフトウェア開発効率化の研究に取り組んでいますが、少しのアイデアの検証でも大量のプログラムを書いたり、デバッグに多大な時間を費やしたりとプログラミングに関する苦労は尽きません。本職のプログラマともなれば、大量のプログラムを書くだけでなく品質や納期も求められるためさらに多くの苦労があります。もしプログラムを自動生成できれば、ソフトウェア開発に抜本的な変革が起きるでしょう。そこで私は、人とAI(人工知能)が協働してプログラムをつくる世界を実現したいと思っています。具体的には開発チームの中に実際にAIが入り、人の開発方法を見て学習することで、プログラムが次々と書けるようになるという師匠と弟子の関係性のようなイメージです。このような世界はまだSFにすぎませんが、近年のAIの急速な進化を考えると近い将来必ず現実になると考えており、私が先立って実現したいと思っています。
その実現に向けて、現在はプログラミングコンテストのAIによる自動解答に挑戦しています。プログラミングコンテストは問題文に書かれた要求を満たすプログラムを作成することが目的で、世界中の優秀なプログラマがその腕を競い合っています。もしコンテストの上位に入賞できれば、AIがトッププログラマ並みの能力を持つと示すことができます。
しかし、これまでにない挑戦だったため、初めは全く成功しませんでした。そこで私は、人のプログラム作成過程を真似ることにしました。人がプログラムを書くとき、まずは書籍や他の人が書いたプログラムを読んで勉強し、そこで得た知識に基づいてプログラムをつくり、それを改良しながら所望のプログラムを完成させます。本研究でも、過去問を学習させた深層学習モデルに基づいてつくられたプログラムを、遺伝的アルゴリズムを用いて改良していくことで正解プログラムが得られると考えました。日々実験を繰り返して手法に改善を重ねた結果、最終的に実際に出題された約100問のコンテスト問題の26%を自動で解くことができました。この成果は実用化にはまだおよびませんが基礎研究としては画期的であり、IEEEの若手研究賞や、国内最大のソフトウェア工学の学会の最優秀論文賞などの評価をいただいています。
今後は引き続き世界中の優秀なプログラマを超えるAIの開発に挑戦しつつ、本技術を実用化して世界中のソフトウェア開発を抜本的に変革したいと思っています。このような変革を起こすためには、一緒に活動してくださる仲間が必要です。そのため学術界だけでなく産業界も含めたコミュニティをつくり、私自身はその第一人者となり、牽引していきたいと思っています。直近では本分野のワークショップを開催し、産学問わず多くの方にお集まりいただきました。議論を通じて有意義な知見が多数得られたため、今後もこの活動を広げていきたいと思っています。人とAIが協働してプログラムをつくる未来世界の実現に向けて、引き続き邁進していきます。