AIとのペアプロへまた一歩前進、「GitHub Copilot」登場。AIがコメントからコード生成、書きかけのコードを補完、コードを見てテストコード自動生成など
GitHubは、AIがまるでペアプログラミングの相手の様に、コメントの説明からコードを生成してくれたり、実装されたコードを基にテストコードを生成してくれる機能などを提供する新サービス「GitHub Copilot」のテクニカルプレビューを発表しました。
Meet GitHub Copilot - your AI pair programmer. https://t.co/eWPueAXTFt pic.twitter.com/NPua5K2vFS
— GitHub (@github) June 29, 2021
マイクロソフトは5月に、自然言語(英語)で説明すると自動的にその内容をプログラミング言語の「Power Fx」に変換してくれる機能をローコード/ノーコードツールの「Power Apps」に搭載すると発表したばかり。
参考:[速報]マイクロソフト、自然言語をプログラミング言語にAIで変換、新ノーコード機能をPower Appsに搭載。AI言語モデル「GPT-3」を採用。Microsoft Build 2021
「GitHub Copilot」も同じくAI言語モデルのGPT-3を用いたOpenAIの技術によりコード生成を実現していると説明されています。AIは、さまざまな英語の文章およびGitHub上で公開されているコード群によってトレーニングされているとのこと。
コメントからコード生成、実装コードからテストコード生成など
GitHub Copilotには、さまざまなコード生成機能が備わっています。
1つ目は、コメントに書かれた英語の説明からコードを生成する機能。下記は、「// Get average runtime of successful runs in seconds」(成功した処理の平均実行時間を秒数として取得する)というコメントを人間が書くと、ペアプロの相手として登録されているGitHub Copilotが関数の内容を記述してくれる例。
2つ目は、繰り返し行う処理のオートフィル機能。Excelのオートフィルのように、似たようなコードが続く場合、最初の何パターンかを書くと残りをAIが補完してくれます。
3つ目は、テストコードの自動生成。テスト用フレームワークをインポートすると、それに沿ったテストコードを、すでに実装されたコードを基に生成してくれます。
こうしてAIに生成されたコードが気に入らなければ、別の候補を要求することによって別のコード候補の参照も可能。気に入ったコードがあれば、それを選択できるようになっています。
ほぼどんなプログラミング言語にも対応
GitHub Copilotでは、Python、JavaScript、TypeScript、Ruby、Goなどのプログラミング言語で良好なコード生成が行えると説明されているうえで、ほかのプログラミング言語に関しても、ほぼどんなものでも対応するとしています。
対応するエディタは、いまのところVisual Studio Codeのみ。利用するには、テクニカルプレビューへの申し込みが必要です。
追記
neovimとIntelliJ IDEAでも利用可能になりました。
2022年6月に正式サービスとなりました。
関連記事
あわせて読みたい
WebAssemblyアプリ開発で最も使われている言語はRust、注目の機能はスレッドなど。The State of WebAssembly 2021
≪前の記事
Salesforce Functionsがベータ公開、Salesforceプラットフォームでサーバレスを提供