コンテンツにスキップ

「GitHub Copilot」の版間の差分

出典: フリー百科事典『ウィキペディア(Wikipedia)』
削除された内容 追加された内容
(相違点なし)

2023年2月18日 (土) 02:25時点における版

GitHub Copilot
開発元 GitHub, OpenAI
最新版
1.7.4421
対応OS Microsoft Windows, Linux, macOS, Web
公式サイト copilot.github.com
テンプレートを表示

GitHub Copilot(ギットハブ・コパイロット)は、GitHubOpenAIが開発したクラウド型人工知能ツールであり、コンピュータプログラム(コード)の自動補完によって、Visual Studio CodeVisual StudioNeovimJetBrainsの各統合開発環境(IDE)のユーザーを支援する[1]。2021年6月29日にGitHubによって発表され、個人の開発者向けにサブスクリプションで提供されており、PythonJavaScriptTypeScriptRubyGoでコーディングするユーザーに対して最適に動作する[2]

歴史

2021年6月29日、GitHubはVisual Studio Code開発環境でのGitHub Copilotのテクニカルプレビューを発表した[1][3]。2021年10月29日、GitHub CopilotをJetBrainsのマーケットプレイスで機能拡張としてリリースした[4]。2021年10月27日、GitHubはGitHub Copilot Neovimプラグインをパブリックリポジトリとしてリリースした[5]。2022年3月29日、GitHubはVisual Studio 2022 IDE向けにCopilotが利用可能になったことを発表した[6]。2022年6月21日、GitHubはCopilotが「テクニカルプレビュー」を終了し、個人開発者向けのサブスクリプション型サービスとして利用可能になったことを発表した[7]

特徴

自然言語で書かれたプログラミング問題が与えられると、Codexは解決するコードを生成することができる[8]。また、英語で記述した入力コードを受け取ったり、プログラミング言語間でコードを変換することもできる[8]。ウェブサイトによると、GitHub Copilotの機能には、コード上のコメントを実行可能なコードに変換したり、コードの塊、コードの繰り返し部分、それにメソッド関数の全体を自動補完するなど、プログラマー向けの支援機能が備わっている[2][9]。GitHubによると、Copilotの自動補完機能はおよそ半分の確率で正解であると報告している。たとえば、Pythonの関数ヘッダーコードでは、最初の試行で43%、10回の試行では57%の確率で、残りの関数本体コードを正しく自動補完した[2]

GitHubは、Copilotの機能によってプログラマーがドキュメントを読むのに費やす時間を短縮できると共に、不慣れなコーディングフレームワーク言語をうまく使えるようになると主張している[2]

実装

GitHub Copilotは、人工知能研究所であるOpenAIが作成した人工知能モデルのOpenAI Codexを利用している[10]。OpenAI Codexは、Generative Pre-trained Transformer 3 (GPT-3)の改良された製品版で、ディープラーニング(深層学習)を使用して人間のようなテキストを生成する言語モデルである[11]。OpenAI Codexモデルは、さらに12種類のプログラミング言語について、ギガバイト単位のソースコードを使用して訓練されている。CopilotのOpenAI Codexは、厳選された英語文書、GitHubの公開リポジトリ、その他の公開されているソースコードを使用して訓練されている[2]。これには、5,400万の公開GitHubリポジトリから取得した159ギガバイトのPythonコードをフィルター処理したデータセットが含まれている[12]

Open AIのGPT-3は、GitHubの親会社であるマイクロソフトに対して独占的に使用許諾されている[13]

反応

Copilotのリリース以来、そのセキュリティや教育的影響についての懸念や、生成されるコードをめぐるライセンス論争が起こった[14][8][15]

ライセンスに関する論争

Copilotが出力するコードのほとんどは変形的利用英語版に該当するが、GitHubは、ごく一部が文字どおりコピーされていることを認めており、出力されたコードはフェアユースに該当ほど十分な変形ではなく、原コード所有者の著作権を侵害する可能性があるという懸念が生じている[14]。GitHubは、『公開されているデータで機械学習モデルを訓練することは、機械学習コミュニティ全体ではフェアユースと見なされる』と主張しているが、Copilotは法的には未検証の状態に置かれている[14]。また、同社は2022年6月時点で、完全または部分的に変更されずに出力されるソースコードはわずかであると述べている。そのため、このソフトウェアの学習が進めば、この数値は低下すると予想される[16]。また、2022年6月に、Software Freedom Conservancyは、Copilotが学習データに使っているコードライセンスを無視していると非難し、同組織のプロジェクトでのGitHubの使用をすべて終了すると発表した[17][18]。2022年11月、Copilotの合法性に異議を唱える集団代表訴訟が起こされた[19][20]

FSFのホワイトペーパー

2021年7月28日、フリーソフトウェア財団(FSF)は、Copilotをめぐる哲学的、法的問題についてのホワイトペーパー(白書)の資金提供を呼びかけた[21]。FSFのライセンスおよびコンプライアンス・マネージャーであるDonald Robertsonは、『Copilotはより深く探究される必要のある多くの(中略)疑問を提起している』と述べている[21]。2022年2月24日、FSFは、このテーマに関する22の論文を受け取り、匿名の審査過程を経て、重要な5つの論文を選んだと発表した[22]

プライバシーへの懸念

このサービスはクラウドベースであり、GitHub Copilotサーバーと常に通信する必要があるため、ソフトウェアを作成するプロセスをオンラインにして第三者の手に渡し、すべてのキーストロークを監視できるようにするという根本的な変化を意味する[23][24][25]

セキュリティへの懸念

2022年のIEEE Symposium on Security and Privacyで発表された論文では、Copilotが生成したコードの安全性について、89種類の異なるシナリオと1,689個のプログラムにわたって、MITRE英語版による上位25のコード共通脆弱性タイプ一覧英語版(クロスサイト・スクリプティング、パス・トラバーサルなど)への評価がなされた[15]。これは、脆弱性の多様性(さまざまなコード脆弱性につながりうるシナリオへの対応力)、プロンプトの多様性(同じコード脆弱性でも微妙な変化を伴うことへの対応力)、およびドメインの多様性(Verilogでのレジスタ転送レベルのハードウェア仕様の生成能力)の軸に沿って行われた[15]。調査の結果、複数の言語におけるこれらの軸で、上位提案の39.33%、全体提案の40.73%がコードの脆弱性につながっていることが分かった。さらに、コードに対する小さな意味的でない変更(すなわちコメント)が、コードの安全性に影響を与える可能性があることも分かった[15]

教育への懸念

2022年2月に計算機協会(ACM)から発表された論文では、Github Copilotで使用されているCodexという技術が、初心者プログラマーの教育に与える影響について評価されている[8]。この研究では、オークランド大学のプログラミング入門クラスの評価設問を利用し、Codexの回答と学生の成績を比較している[8]。その結果、研究者らは、平均してCodexは多くの学生よりも良い成績であったが、解答に使用できる機能が制限されている設問(条件分岐コレクションループなど)では、成績が低下することを見いだした。このような種類の設問では、『(Codexの)10個の解答のうち2個だけが正しかったが、両方とも(中略)制約に反していた。』とのことである[8]。この論文は、Codexは学習者にさまざまな解決策を提供するのに役立つ可能性があるものの、過信や盗用につながる可能性もあると結論付けている[8]

脚注

  1. ^ a b GitHub and OpenAI launch a new AI tool that generates its own code”. The Verge (29 June 2021). 6 July 2021閲覧。
  2. ^ a b c d e GitHub Copilot · Your AI pair programmer”. GitHub Copilot. 7 April 2022閲覧。
  3. ^ Introducing GitHub Copilot: your AI pair programmer” (英語). The GitHub Blog (29 June 2021). 7 April 2022閲覧。
  4. ^ GitHub Copilot - IntelliJ IDEs Plugin | Marketplace”. JetBrains Marketplace. 7 April 2022閲覧。
  5. ^ Copilot.vim, GitHub, (7 April 2022), https://github.com/github/copilot.vim 7 April 2022閲覧。 
  6. ^ GitHub Copilot now available for Visual Studio 2022” (英語). The GitHub Blog (29 March 2022). 7 April 2022閲覧。
  7. ^ GitHub Copilot is generally available to all developers” (英語). The GitHub Blog (21 June 2022). 21 June 2022閲覧。
  8. ^ a b c d e f g Finnie-Ansley, James; Denny, Paul; Becker, Brett A.; Luxton-Reilly, Andrew; Prather, James (14 February 2022). “The Robots Are Coming: Exploring the Implications of OpenAI Codex on Introductory Programming”. Australasian Computing Education Conference. ACE '22 (New York, NY, USA: Association for Computing Machinery): 10–19. doi:10.1145/3511861.3511863. ISBN 978-1-4503-9643-1. https://doi.org/10.1145/3511861.3511863. 
  9. ^ Sobania, Dominik; Schweim, Dirk; Rothlauf, Franz (2022). “A Comprehensive Survey on Program Synthesis with Evolutionary Algorithms”. IEEE Transactions on Evolutionary Computation: 1. doi:10.1109/TEVC.2022.3162324. ISSN 1941-0026. https://ieeexplore.ieee.org/abstract/document/9743417?casa_token=2vffB_1z0UsAAAAA:7YGw6NRDYQE9UBDPUdv7Ij7EwySLOMENhzzRmIYo5erRHv0qtESQn-lCkMAh35cWn-DVrcP69Q. 
  10. ^ Krill, Paul (12 August 2021). “OpenAI offers API for GitHub Copilot AI model” (英語). InfoWorld. 7 April 2022閲覧。
  11. ^ OpenAI Releases GPT-3, The Largest Model So Far” (英語). Analytics India Magazine (3 June 2020). 7 April 2022閲覧。
  12. ^ OpenAI Announces 12 Billion Parameter Code-Generation AI Codex” (英語). InfoQ. 7 April 2022閲覧。
  13. ^ OpenAI is giving Microsoft exclusive access to its GPT-3 language model” (英語). MIT Technology Review. 7 April 2022閲覧。
  14. ^ a b c d Pearce, Hammond; Ahmad, Baleegh; Tan, Benjamin; Dolan-Gavitt, Brendan; Karri, Ramesh (16 December 2021). "Asleep at the Keyboard? Assessing the Security of GitHub Copilot's Code Contributions". arXiv:2108.09293 [cs.CR]。
  15. ^ GitHub Copilot: The programming assistant at a glance” (英語). IONOS Digitalguide. 2022年7月20日閲覧。
  16. ^ Give Up GitHub: The Time Has Come!” (英語). Software Freedom Conservancy. 2022年9月8日閲覧。
  17. ^ If Software is My Copilot, Who Programmed My Software?” (英語). Software Freedom Conservancy. 2022年9月8日閲覧。
  18. ^ Vincent, James (2022年11月8日). “The lawsuit that could rewrite the rules of AI copyright” (英語). The Verge. 2022年12月7日閲覧。
  19. ^ GitHub Copilot litigation”. githubcopilotlitigation.com. Joseph Saveri Law Firm (November 3, 2022). 12 February 2023閲覧。
  20. ^ a b FSF-funded call for white papers on philosophical and legal questions around Copilot”. Free Software Foundation (28 July 2021). 11 August 2021閲覧。
  21. ^ Publication of the FSF-funded white papers on questions around Copilot”. Free Software Foundation (24 February 2022). 2023年2月18日閲覧。
  22. ^ GitHub Copilot - Your AI pair programmer”. GitHub. 18 October 2022閲覧。
  23. ^ Who does that server really serve?”. gnu.org. 18 Oct 2022閲覧。
  24. ^ CoPilot: Privacy & DataMining”. GitHub. 18 October 2022閲覧。

参考項目

外部リンク

Template:Differentiable computing