ぼくはプロのプログラマーではないけど、でも彼らを真似て、多くのコードをStackOverflowのQ&Aからもらっている。Flaskに認証を加えるやり方は? そんなの簡単。sendmailのシャットダウンの仕方は? ほら、これさ。そして、今やインターネット上のすべてのコードのおかげで、ロボットが年俸18万ドルのプログラマー並に優秀だ。
そのシステムはDeepCoderと呼ばれ、コードのコーパスを検索して仕様どおりに動くコードを構築する。すでにプログラミングのコンペに‘参戦’したこともあり、またコードではなく、複雑なプロダクトを作るための大きなデータセットを見つけることもできる。
彼らのペーパーより:
このシステムは使ってるうちに次第に賢くなり、どんな場合にどんなコード片が良いのかを、自分で見分けるようになる。そして、そうやって‘学習’を重ねるたびに、ユーザーはプログラムをより早く書けるようになる。
ケンブリッジ大学のMatej BalogとMicrosoft ResearchのAlexander L. Gaunt, Marc Brockschmidt, Sebastian Nowozin, Daniel Tarlowがこのプロダクトを作り、その使い方に関するペーパーを共著した。ただし、このようなシステムを使って、小さなコード片から大きなプロジェクトを構築することはできない。そういうのを、‘ないものねだり’と言う。
こういった、既存のコードの切り貼り再利用は、多くのプログラマーが実際にやっていることだから、ディープラーニングの優れた応用と言えるだろう。データベースの更新のようなシンプルなCRUDアプリケーションには、十分に使えると思う。入社したばかりの初心者プログラマーにやらせる仕事がなくなる、と言えるかもしれない。でもAIロボットが地球と人類を支配して、人間の仕事が完全になくなってしまうのも、悪くないね。