GitHub Copilot
GitHub Copilot logo.svg
GitHub Copilot(ギットハブ・コパイロット)は、GitHubとOpenAIが開発したクラウド型人工知能ツールであり、コンピュータプログラム(コード)の自動補完によって、Visual Studio Code、Visual Studio、Neovim、JetBrainsの各統合開発環境(IDE)のユーザーを支援する。2021年6月29日にGitHubによって発表され、個人の開発者向けにサブスクリプションで提供されており、Python、JavaScript、TypeScript、Ruby、Goでコーディングするユーザーに対して最適に動作する。
2021年6月29日、GitHubはVisual Studio Code開発環境でのGitHub Copilotのテクニカルプレビューを発表した。2021年10月29日、GitHub CopilotをJetBrainsのマーケットプレイスで機能拡張としてリリースした。2021年10月27日、GitHubはGitHub Copilot Neovimプラグインをパブリックリポジトリとしてリリースした。2022年3月29日、GitHubはVisual Studio 2022 IDE向けにCopilotが利用可能になったことを発表した。2022年6月21日、GitHubはCopilotが「テクニカルプレビュー」を終了し、個人開発者向けのサブスクリプション型サービスとして利用可能になったことを発表した。
自然言語で書かれたプログラミング問題が与えられると、Codexは解決するコードを生成することができる。また、英語で記述した入力コードを受け取ったり、プログラミング言語間でコードを変換することもできる。ウェブサイトによると、GitHub Copilotの機能には、コード上のコメントを実行可能なコードに変換したり、コードの塊、コードの繰り返し部分、それにメソッドや関数の全体を自動補完するなど、プログラマー向けの支援機能が備わっている。GitHubによると、Copilotの自動補完機能はおよそ半分の確率で正解であると報告している。たとえば、Pythonの関数ヘッダーコードでは、最初の試行で43%、10回の試行では57%の確率で、残りの関数本体コードを正しく自動補完した。
GitHubは、Copilotの機能によってプログラマーがドキュメントを読むのに費やす時間を短縮できると共に、不慣れなコーディングフレームワークや言語をうまく使えるようになると主張している。
GitHub Copilotは、人工知能研究所であるOpenAIが作成した人工知能モデルのOpenAI Codexを利用している。OpenAI Codexは、Generative Pre-trained Transformer 3 (GPT-3)の改良された製品版で、ディープラーニング(深層学習)を使用して人間のようなテキストを生成する言語モデルである。OpenAI Codexモデルは、さらに12種類のプログラミング言語について、ギガバイト単位のソースコードを使用して訓練されている。CopilotのOpenAI Codexは、厳選された英語文書、GitHubの公開リポジトリ、その他の公開されているソースコードを使用して訓練されている。これには、5,400万の公開GitHubリポジトリから取得した159ギガバイトのPythonコードをフィルター処理したデータセットが含まれている。
Open AIのGPT-3は、GitHubの親会社であるマイクロソフトに対して独占的に使用許諾されている。
Copilotのリリース以来、そのセキュリティや教育的影響についての懸念や、生成されるコードをめぐるライセンス論争が起こった。
Copilotが出力するコードのほとんどは変形的利用に該当するが、GitHubは、ごく一部が文字どおりコピーされていることを認めており、出力されたコードはフェアユースに該当するほど十分な変形ではなく、原コード所有者の著作権を侵害する可能性があるという懸念が生じている。GitHubは、『公開されているデータで機械学習モデルを訓練することは、機械学習コミュニティ全体ではフェアユースと見なされる』と主張しているが、Copilotは法的には未検証の状態に置かれている。また、同社は2022年6月時点で、完全または部分的に変更されずに出力されるソースコードはわずかであると述べている。そのため、このソフトウェアの学習が進めば、この数値は低下すると予想される。また、2022年6月に、Software Freedom Conservancyは、Copilotが学習データに使っているコードライセンスを無視していると非難し、同組織のプロジェクトでのGitHubの使用をすべて終了すると発表した。2022年11月、Copilotの合法性に異議を唱える集団代表訴訟が起こされた。
2021年7月28日、フリーソフトウェア財団(FSF)は、Copilotをめぐる哲学的、法的問題についてのホワイトペーパー(白書)の資金提供を呼びかけた。FSFのライセンスおよびコンプライアンス・マネージャーであるDonald Robertsonは、『Copilotはより深く探究される必要のある多くの(中略)疑問を提起している』と述べている。2022年2月24日、FSFは、このテーマに関する22の論文を受け取り、匿名の審査過程を経て、重要な5つの論文を選んだと発表した。
このサービスはクラウドベースであり、GitHub Copilotサーバーと常に通信する必要があるため、ソフトウェアを作成するプロセスをオンラインにして第三者の手に渡し、すべてのキーストロークを監視できるようにするという根本的な変化を意味する。
2022年のIEEE Symposium on Security and Privacyで発表された論文では、Copilotが生成したコードの安全性について、89種類の異なるシナリオと1,689個のプログラムにわたって、マイター・コーポレーションによる上位25のコード共通脆弱性タイプ一覧(クロスサイト・スクリプティング、パス・トラバーサルなど)への評価がなされた。これは、脆弱性の多様性(さまざまなコード脆弱性につながりうるシナリオへの対応力)、プロンプトの多様性(同じコード脆弱性でも微妙な変化を伴うことへの対応力)、およびドメインの多様性(Verilogでのレジスタ転送レベルのハードウェア仕様の生成能力)の軸に沿って行われた。調査の結果、複数の言語におけるこれらの軸で、上位提案の39.33%、全体提案の40.73%がコードの脆弱性につながっていることが分かった。さらに、コードに対する小さな意味的でない変更(すなわちコメント)が、コードの安全性に影響を与える可能性があることも分かった。
2022年2月に計算機協会(ACM)から発表された論文では、Github Copilotで使用されているCodexという技術が、初心者プログラマーの教育に与える影響について評価されている。この研究では、オークランド大学のプログラミング入門クラスの評価設問を利用し、Codexの回答と学生の成績を比較している。その結果、研究者らは、平均してCodexは多くの学生よりも良い成績であったが、解答に使用できる機能が制限されている設問(条件分岐、コレクション、ループなど)では、成績が低下することを見いだした。このような種類の設問では、『(Codexの)10個の解答のうち2個だけが正しかったが、両方とも(中略)制約に反していた。』とのことである。この論文は、Codexは学習者にさまざまな解決策を提供するのに役立つ可能性があるものの、過信や盗用につながる可能性もあると結論付けている。