最新のAIのトリック:コンピュータコードの記述
コンピュータコードを上手に書けるようになるには、何年もかかります。パリのスタートアップ企業SourceAIは、プログラミングはそれほど大変なことではないと考えています。
同社は、コードが何をすべきかという短いテキストの説明に基づいて、人工知能を使ってコードを書くツールを微調整しています。例えば、「ユーザーが指定した2つの数字を掛け算してください」と伝えると、Pythonでそれを実行するための数十行のコードを作成します。
SourceAIの野望は、ソフトウェア開発における広範な革命の兆しです。機械学習の進歩により、コードの自動補完やアルゴリズムの微調整、ソースコードの検索やバグの発見など、さまざまなコーディング作業の自動化が可能になっています。
コーディングの自動化はソフトウェア開発を大きく変える可能性がありますが、最新のAIの限界と盲点が新たな問題を引き起こす可能性があります。機械学習のアルゴリズムは予測不可能な動作をする可能性があり、機械が生成したコードは慎重に精査しないと有害なバグを含む可能性があります。
SourceAIをはじめとする同様のプログラムは、AIの根本的な進歩を目指すサンフランシスコの企業OpenAIが2020年5月に発表した強力なAI言語プログラム「GPT-3」の活用を目指している。SourceAIの創設者たちは、GPT-3へのアクセス権を得た最初の数百人のうちの一人です。OpenAIはGPT-3のコードを公開していないが、一部のユーザーにはAPIを通じてモデルへのアクセスを許可している。
GPT-3は、ウェブから取得した膨大な量のテキストを使って訓練された巨大な人工ニューラルネットワークです。GPT-3はテキストの意味を把握することはできませんが、言語のパターンを十分に捉えることができ、特定のテーマに関する記事を生成したり、文章を簡潔に要約したり、文書の内容に関する質問に答えたりすることができます。
「ソースアイの創業者兼CEOであるFurkan Bektesは、「このツールをテストしているうちに、コードを生成できることに気づきました。「その時にSourceAIの開発を思いついたのです」。
その可能性に気づいたのは彼だけではありません。GPT-3がリリースされた直後、あるプログラマーは、与えられたコードの断片をリミックスすることで、ボタン、テキスト入力フィールド、色などを含むカスタムWebアプリを作成できることを示しました。また、Debuild社はこの技術の実用化を計画しています。
SourceAIは、ユーザーがさまざまな言語でより多くのプログラムを作成できるようにすることで、より多くのソフトウェアの作成を自動化することを目指しています。「開発者はコーディングにかかる時間を短縮できますし、コーディングの知識がない人でもアプリケーションを開発できるようになります」とBektes氏は語っています。
別の企業であるTabNine社は、OpenAIが公開している言語モデルの旧バージョンであるGPT-2を使用して、開発者が入力を開始すると、行や関数の自動補完を提案するツールを構築しました。
ソフトウェアの巨人たちも興味を持っているようだ。マイクロソフトは2019年にOpenAIに10億ドルを投資し、GPT-3のライセンス供与に合意している。5月に開催されたソフトウェア大手の「Build」カンファレンスでは、OpenAIの共同設立者であるSam Altman氏が、GPT-3が開発者のためにコードをオートコンプリートする様子を実演した。マイクロソフト社は、自社のソフトウェア開発ツールにAIをどのように使用するかについてのコメントを控えている。
ニューヨーク大学コンピュータサイエンス・エンジニアリング学部のブレンダン・ドラン・ガビット助教授は、GPT-3のような言語モデルは、人間のプログラマーを支援するために使用される可能性が高いと言います。また、他の製品では、「言語モデルにとって『驚くべきこと』を探すことで、コードを書いている最中に、バグの可能性が高いものを特定する」ためにモデルを使用することになるといいます。
しかし、AIを使ってコードを生成・分析することには問題があります。MITの研究者たちは3月にオンラインで発表した論文で、コードが安全に実行されることを検証するように訓練されたAIプログラムが、特定の変数を置き換えるなどの慎重な変更を少し加えるだけで騙され、有害なプログラムを作成できることを示しました。この研究に携わった博士課程の学生であるShashank Srikantは、AIモデルを過度に信頼するべきではないと言います。「これらのモデルがいったん製品化されると、すぐに厄介なことになります」と彼は言います。
“一旦これらのモデルが生産に入ると、物事はかなり迅速に厄介なことになります。”ーShashank srikant, MIT博士課程学生
ニューヨーク大学のDolan-Gavitt教授は、コーディングツールの生成に使用されている言語モデルの性質にも問題があると言います。「言語モデルを直接使用すると、おそらくバグのある、安全でないコードができてしまうと思います。「結局のところ、言語モデルは人間が書いたコードで訓練されているので、バグがあったり、安全でないことが多いのです」。
Dolan-Gavitt氏は、あるコードが人間によって書かれたものか、特殊なバージョンのGPT-2によって書かれたものかを訪問者に判断してもらうウェブサイト「This Code Does Not Exist」を作成しました。現在、彼はセキュリティソフトウェアをテストするためのバグを生成するAI生成コードを開発しています。
コンピュータ科学者は何十年も前からコードを自動的に生成する方法を研究してきたが、現代のAIはその可能性に新たな関心を寄せています。
Facebookの研究者は2019年4月、機械学習を利用して機能的に類似したコードのスニペットを識別するツール「Aroma」の詳細を公開しました。これは、開発者がプログラムをより迅速に書き、バグを回避するのに役立つものです。DeepMind社のチームは2020年10月、人間が書いたアルゴリズムのより効率的なバージョンを考案できるAIプログラムを披露した。インテルは、Machine Inferred Code Similarityというプロジェクトで、コードの一部が何をしているかをAIで判断しており、これは複雑なプログラムの構築を自動化するのに役立つだろう。また、機械学習は、他の機械学習アルゴリズムの構築や微調整に必要な一部の作業を自動化する方法としても登場しています。
SourceAIのツールが実際にどの程度機能するかは、まだわかりません。まだ公開されたデモはありませんが、創業者のBektesは、簡単なコマンドであれば80〜90%の確率で動作すると述べています。彼は、この技術がソフトウェア開発のいくつかの側面を変えることができると確信しているようです。「学生たちは宿題を早く終わらせるためにこれを使うでしょうね」と彼は言います。
出典;WIRED