昨年2021年にはコメントからコードを生成するAIが登場し、今年になって急速に普及が進んでいます。
その回答によれば、不適切なコメントをブロックしてコードを生成しないようにするフィルタが実装されているものも、不快な出力が生成される可能性はゼロではない、とのこと。
GitHub Copilotの発表から1月あまりが経過した2021年8月10日、OpenAIはコード生成AI「OpenAI Codex」を発表しました。
OpenAI Codexは文章生成AIのGPT-3をコード生成向けに改造したもので、Pythonのコード生成をもっとも得意としており、そのほかにもJavaScript、Go、Perl、PHP、Ruby、Swift、TypeScript、さらにはShellなどの10以上のプログラミング言語に対応しています。
OpenAI CodexがPythonのコードを生成する場合に使用するメモリは14KBであり、4KBしかメモリを使わないGPT-3より3倍以上の情報を生成時に処理しています。
1トークンは0.75ワードに相当し、契約可能なモデルとしてパラメータが少ない順にエイダ、バベッジ、キュリー、ダヴィンチがあります。
OpenAIとパートナーシップを締結しているMicrosoftは、独自にコード生成AIを開発・提供しています。
OpenAIが2022年5月24日に公開したブログ記事によると、OpenAI CodexのAPIを使ったアプリはすでに70種類以上あります。
この機能は、コメントを入力するとコードが生成される通常のコード生成AIの処理を逆方向に実行していると言えます。
MicrosoftはOpenAIとパートナーシップ関係を生かして、GPT-3をベースにした独自のコード生成AIを開発しています。
この機能を使うと、例えば「名前が “Kids” で始まる商品を探す」と音声入力すると、入力内容に対応したコードが生成されます。
近年ではGPT-3に匹敵する言語モデルが多数存在するので、こうしたアイデアは実行されて当然と言えます。
比較実験を行った結果、コード生成に限りGPT-JがGPT-3を凌駕したのでした。
Googleが2022年4月に発表したPaLMは、コメントに対応したコードの生成のほか、任意のプログラミング言語のほかのそれへの移植、コンパイルエラーの修正などコーディングに関する多数のタスクを実行できます。
同モデルがこうしたマルチタスクを実行できるのは、マルチタスク言語モデルを実現する設計思想Pathwaysを採用しているからなのです。
同社はGitHub Copilotリリース後、2,000人以上の開発者を対象として同アプリに関するアンケート調査を実施しました。
88%の開発者が「より生産的に感じた」と回答し、同じく88%が「より早く仕事を完了した」と答えました。
注目すべきは「反復的な仕事をより速くできた」という回答が96%、「反復的な仕事をするのに要する精神的な努力が減った」と87%が答えたところです。
95人のうち45人にはGitHubCopilotを使用してもらい、残りの50人には同アプリを使用しないで業務を行ってもらいました。
以上の実験の結果、GitHub Copilotを使用したグループは78%が業務を正しく完了させたのに対して、未使用グループのタスク完了率は70%でした。
同アプリ使用グループがタスクを完了させるまでに要した時間は平均して1時間11分、対して未使用グループは2時間41分だったので、同アプリを使用することで業務所要時間を約53%削減できたのでした。
以上に紹介したコード生成AIの基本機能はコメントからコードを生成するものであり、文章から問題の構造を理解して解決に必要なアルゴリズムを特定するようなことはできません。
同競技は文章問題を解決するコードを考案するスキルを競うもので、参加者はそのスキルに応じてレーティングされます。
レーティングは過去問の回答を暗記したり、関連するアルゴリズムをしらみつぶしに試したりするような単純なアプローチでは上がらないようになっています。
実際に同AIが回答した文章問題には、以下のようなものがありました。
このデータセットによって、AlphaCodeは文章問題とその問題を解決するコードの対応関係を学習したのです。
2段階の学習を経たAlphaCodeは、ひとつの文章問題につき数千個の解決コード候補を生成できます。
この記事では主に英語圏における事例を紹介しましたが、2022年10月3日には日本語で仕様を入力すると、その仕様を満たすコードを生成するサービス「AI Programmer(ベータ版)」の提供が始まり、日本語でもコード生成ができる環境が整いつつあります。
このAIは、自分自身のソースコードの上書きを繰り返すことでその性能を強化するというものです。
https://ainow.ai/2022/11/07/269213/