GitHub Copilotの概要
6月21日、マイクロソフトGitHubはAIによるコーディング支援サービスである「GitHub Copilot」を一般公開しました。AIが自動でコードを考えてくれるという夢のようなサービスですが、実際のところどのような仕組みになっているのでしょうか。
本記事では、GitHubが何か分からない方でも分かるよう、その仕組みを説明していくとともに、実際のGitHub Copilotの使い方も紹介していきます。
【参考】:GitHub Copilot
GitHubとは
まず、そもそもGitHubとはどのようなサービスなのでしょうか。ソフトウェアのソースコードを管理するツールであるGitを、オンライン上で誰でも利用できるようにしたウェブサービスがGitHubです。
企業向けの有料プランだけでなく、個人向けの無料プランも用意されており、誰でも手軽にソースコードを共有することができます。
そのため、オープンソースプロジェクトが数えきれない程立ち上がっており、誰でも使えて便利なソフトウェアの開発が活発に行われています。当初は独立企業でしたが、2018年にマイクロソフトに買収され、中立性の維持に懸念が持たれていました。しかし、その後ユーザー数は堅調に増加しているようです。
【参考】:GitHub
GitHub Copilotとは
今回、GitHubの新機能として公開されたものが「GitHub Copilot」です。これはAIがソフトウェア開発におけるコーディングのサポートをするサービスであり、AIが次の行に入力されると思われるコードをサジェストできることを特徴としています。
GitHub Copilotは昨年からVisual Studio Codeでテクニカルプレビューとして限定公開されていましたが、この度一般向けに公開された形です。
GitHub Copilot自体はCodexと呼ばれるAIシステムを利用しており、CodexはOpenAIと呼ばれる非営利団体によって開発されました。Codex自体は自然言語をソフトウェアコードに変換することを目的としており、GitHub Copilotは上手くそれを応用して作られたと言えるでしょう。
GitHub Copilotのサービス概要
GitHub Copilotはどのような形で提供されているのでしょうか。同サービスはGitHub公式サイトから登録することで利用可能です。GitHubのアカウントが必須ですが、60日間はトライアル期間として無料で利用することもできます。以降の料金は、月額10ドルもしくは年額100ドルで契約する形となります。
その利用方法としては、独立したソフトやサービスとして機能するわけではなく、既存のコードエディタの拡張機能としてインストールする形となります。代表的なエディタとして、マイクロソフト社のVisual Studio Codeがあり、公式サイトにて英語ではありますがインストール手順が説明されています。
対応している言語については、Python・JavaScript・TypeScript・Ruby・Go・C#・C++などが挙げられており、それ以外でも使用できる可能性があることが述べられています。
【参考】:GitHub Copilot
GitHub Copilot導入のメリット
AIによってコーディングをサポートしてもらえるGitHub Copilotですが、どのようなメリットがあるのでしょうか。以下にその代表的なメリットを紹介します。
AIサポートでコード生産性をアップ
GitHub Copilotで最も期待できるメリットは、やはり生産性の向上でしょう。同サービスが提供するコードのサジェスト機能はオートコンプリートシステムと呼ばれており、プログラマーが調べたり、考えたりする時間の大幅な削減が期待できます。
さらに同サービスの強みとしては、GitHubという膨大なコードが集まる恵まれた環境で学習されたことであり、精度だけでなく様々な種類のプログラムにも対応できることが挙げられます。
このような特徴を持つGitHub Copilotを開発現場に導入すれば、経験の浅いプログラマーでも生産性を上げた開発を行うことができ、ソフトウェア開発全体の生産性向上につながるでしょう。
既存のエディタと統合可能
GitHub Copilotは独立したソフトウェアやサービスではなく、既存のコードエディタに対する拡張機能という位置付けです。したがって、新しく環境を立ち上げたり、別のソフトウェアを並列で起動したりする必要もありません。
こうした拡張機能としての提供は、ユーザーのサービス利用への敷居を下げ、非常に使いやすいものとしていると言えるでしょう。この導入のしやすさと使い慣れたエディタをそのまま使用できる点は大きなメリットです。
不慣れな言語でも実装が容易に
多くのプログラミング言語は同じような文法構造をしてはいるものの、細かい形式が異なっているため、ある程度の経験があっても全てを正確にコーディングすることは困難です。こうした言語間の相違もGitHub Copilotを活用すれば、文法ミスによるコンパイルエラーや調べる時間を削減することにつながるでしょう。
対応する言語もC言語・Python・Javaをはじめとした12言語以上をサポートしているため、様々な場面で活躍できます。ソフトウェアを別の言語に移植するときなど、突発的に不慣れな言語を扱わなければならないときなどに重宝するものと考えられます。
GitHub Copilotの使い方
GitHub Copilotは、具体的にどのように使用していく流れになるのでしょうか。上述の概要でも少し述べましたが、ここではより詳しく説明していきます。
使用可能なコードエディタ
まずはインストールしたいコードエディタを選択します。サポートしているコードエディタは公式サイトでは、
-Visual Studio Code -Visual Studio -Neovim -JetBrains
となっており、それぞれのエディタに対して「GitHub Copilot」の拡張機能をインストールしていくことで使用可能です。今は4種類しかありませんが、今後サポートするエディタが増えていく可能性もあるでしょう。
拡張機能をインストール
コードエディタの準備ができたら実際にGitHub Copilotをインストールしていきます。まず各エディタ上の拡張機能にアクセスし、そこからGitHub Copilotを選択してインストールを実行します。
インストール後、もしGitHubとの連携設定ができていなかった場合にはGitHubアカウントへの紐づけを行う必要があります。ここまで行えば実際にエディタ上でGitHub Copilotによるサジェストを受けることができるようになります。
インストールのやり方については、エディタごとに画像付きの丁寧な解説が公式サイトで公開されています。
【参考】:GitHub Copilotの公式ガイド
コーディングを行う
拡張機能をインストールさえしてしまえば、後はコーディングを進めるだけで「GitHub Copilot」の恩恵を受けることができます。
コードサジェストの様式は様々であり、新たな関数を定義するとその名称から、AIが用途を推定したうえで内部処理を提案してくれたり、コメントの内容から定義すべき関数名や定義も提案してくれたりします。
他にも多言語の翻訳も行うことが可能であるので、ただのオートコンプリートシステムではないことがよくわかります。公式サイトの例では、JavaScriptで「calculateDaysBetweenDates」という実施したい処理を関数名として定義することで、内部処理がサジェストされている例が紹介されています。
一部の開発者は無料で使用可能
基本的にGitHub Copilotは有料のサービスですが、ある条件を満たしていれば期間に関係なく無料で使用することもできます。その条件とは、GitHub上でオープンソースプロジェクトのメンテナーとなっている開発者もしくは学生です。
前者については、GitHub Copilotがコミュニティの上に成り立っていることへの恩返しの意味が込められているようです。学生については「GitHub Student Pack」への参加条件を満たし、実際に申し込んだ上でGitHub Copilotのプログラムに参加すれば無料で使用できます。
【参考】:学生向け開発者パック
学術論文では生産性向上が報告
大きなメリットが期待できるGitHub Copilotですが、その効果をGitHub公式が調査しており、その結果も公開されています。
調査結果は「Productivity assessment of neural code completion」と呼ばれる学術論文の中で言及されており、同サービスのユーザーの内、サジェストされたコードを受け入れて使用したユーザーの方が生産性が上がったと感じているとのことです。
GitHub Copilotは実際の調査でも有効性が証明されており、非常に画期的なサービスと言えるでしょう。
【参考】:GitHub Copilotの調査結果
GitHub Copilotで生産性を上げよう
今回はGitHubがリリースした新機能である「GitHub Copilot」についてを紹介していきました。同サービスはAIが全てをコーディングするようなものではなく、プログラマーをサポートするものですが、それでも非常に便利なものであることは間違いありません。
60日間の無料トライアルも提供されており、個人でも気軽に使うことが可能です。現役プログラマーの方ならば1度は使ってみて、その効果を体験してみてはどうでしょうか。
編集部オススメコンテンツ
アンドエンジニアへの取材依頼、情報提供などはこちらから