GitHub Copilotは、GitHubとOpenAIによって開発されたコード補完およびプログラミングAIアシスタントであり、Visual Studio Code、Visual Studio、Neovim、Eclipse、JetBrainsなどの統合開発環境(IDE)のユーザーがコードを自動補完するのを支援する。当初はOpenAIのGPT-3モデルを改変したCodexと呼ばれるバージョンによって駆動され、このツールは自然言語のプロンプトや既存のコードコンテキストからコードを生成する。2022年6月21日、GitHubはCopilotが技術プレビューを終了し、個人開発者向けのサブスクリプション制サービスとして利用可能になったことを発表し、1年間のテスト期間を経て一般提供(GA)を迎えた。GAリリースでは月額または年額のサブスクリプションモデルが導入され、学生や人気のあるオープンソースプロジェクトのメンテナー向けの無料ティアが提供され、後にビジネスプランへ拡大された。Copilotのリリースは、定型コードやドキュメントの読解に費やす時間を削減することで開発者の生産性に大きな影響を与えたが、ライセンス、プライバシー、セキュリティに関する議論も引き起こした。
歴史と開発
GitHubは2021年6月29日にCopilotをVisual Studio Code向けの技術プレビューとして初めて発表した。このプラグインは2021年10月29日にJetBrainsマーケットプレイスでリリースされ、Neovimプラグインは2021年10月27日に公開リポジトリとして続いた。2022年3月29日、GitHubはVisual Studio 2022 IDE向けのCopilotの利用可能性を発表した。2022年6月21日のGA発表により、このツールは広く利用可能となり、価格は個人開発者向けに月額10ドルまたは年額100ドルに設定され、認定された学生や人気のあるオープンソースプロジェクトのメンテナー向けの無料ティアが提供された。Copilotは、2014年2月にリリースされたMicrosoft ResearchプロジェクトであるVisual Studio 2013向けの「Bing Code Search」プラグインの進化形であり、MSDNやStack Overflowと統合して、自然言語クエリに応じて文脈に関連するコードスニペットを提供していた。
機能と能力
自然言語でプログラミングの問題が与えられると、Copilotは解決コードを生成し、入力コードを英語で説明し、プログラミング言語間でコードを翻訳できる。コードコメントを実行可能なコードに変換し、コードの塊、反復的なセクション、メソッドや関数全体を自動補完する。GitHubは、Copilotの自動補完が約半分の確率で正確であると報告している。例えば、Pythonの関数ヘッダーでは、最初の試行で関数本体の残りを43%の確率で正しく完了し、10回の試行後には57%の確率で完了した。このツールは、プログラマーが馴染みのないコーディングフレームワークや言語をナビゲートする際に、ドキュメントの読解に費やす時間を削減することで支援する。時間の経過とともに、CopilotはOpenAIのGPTモデル、AnthropicのClaude、xAIのGrok、GoogleのGeminiなど、複数の大規模言語モデル(LLM)から選択できるようになり、2024年のアップデートでモデル選択が可能になった。
実装とモデルアーキテクチャ
当初、CopilotはOpenAI Codexによって駆動されており、これはGPT-3の改変された本番バージョンで、12のプログラミング言語で数ギガバイトのソースコードで訓練された。訓練データには、54百万の公開GitHubリポジトリからの159ギガバイトのPythonコードのフィルタリングされたデータセットと、英語のテキストが含まれていた。OpenAIのGPT-3は、GitHubの親会社であるMicrosoftに独占的にライセンスされている。2023年11月、Copilot ChatはOpenAIのGPT-4を使用するように更新された。2025年2月6日、GitHubは「エージェントモード」を発表した。これは、Visual Studioインスタンス上でコマンドを実行してプログラミングタスクを達成する、より自律的な操作であり、GPT-4o、o1、o3-mini、Claude 3.5 Sonnet、Gemini 2.0 FlashなどのLLMに接続する。2025年5月17日、GitHubは「コーディングエージェント」を導入した。これはCopilotにタスクを割り当て、GitHub Actionsを介してクラウド開発環境を初期化し、ドラフトのプルリクエストを作成し、非同期でコミットをプッシュする。
価格と利用可能性
2022年6月のGA時点で、Copilotはサブスクリプションモデルを提供していた。個人向けは月額10ドルまたは年額100ドルで、学生や人気のあるオープンソースプロジェクトのメンテナー向けの無料ティアが提供された。企業はシートごとのライセンスを購入でき、GitHubは後にコードレビューやセキュリティフィルターなどの追加機能を備えたCopilot BusinessおよびCopilot Enterpriseプランを導入した。このサービスはクラウドベースであるため、GitHub Copilotサーバーとの継続的な通信が必要であり、テレメトリやキーストロークのデータマイニングに関するプライバシー懸念が生じた。
開発者の生産性への影響
Copilotのリリースは、特に反復的なタスクや馴染みのないコードベースにおいて、開発者の生産性に顕著な影響を与えた。研究やユーザーレポートは、定型コードの記述時間の短縮、新しいAPIの学習の高速化、高レベルの設計への集中度の向上を示した。ただし、正確性は言語やコンテキストによって異なり、GitHub自身のデータでは最初の試行での正確性は約50%であることが示された。このツールはまた、より広範なGenerative AIの状況に影響を与え、TabnineやCursorなどの同様のAI支援コーディングツールを開発するよう他の企業を促した。
ライセンス論争
公開GitHubリポジトリでのCopilotの訓練は、重大なライセンス懸念を引き起こした。GitHubのCEOであるNat Friedmanは2021年6月に「公開データでのMLシステムの訓練はフェアユースである」と述べたが、2022年11月にJoseph Saveri Law Firmによって提起された集団訴訟はこれに異議を唱え、裁判所がこの問題を検討したことはないと主張した。この訴訟は、GitHubのユーザーとの契約違反と、カリフォルニア州消費者プライバシー法(CCPA)に基づく個人識別情報の共有によるプライバシー違反を主張した。GitHubは、出力のごく一部が逐語的にコピーされる可能性があることを認め、フェアユースのための十分な変換がないという懸念につながった。2022年6月、Software Freedom ConservancyはプロジェクトでのGitHubの使用をすべて終了し、Copilotがコードライセンスを無視していると非難した。GitHubのカスタマーサポートは「公開されているデータでの機械学習モデルの訓練は、機械学習コミュニティ全体でフェアユースと見なされている」と述べたが、訴訟はこれを虚偽であり、連邦法の下で違法であると指摘した。
プライバシーとセキュリティの懸念
Copilotのクラウドベースの性質は、継続的なサーバー通信を必要とし、テレメトリや個々のキーストロークのデータマイニングに関する懸念を煽った。2022年後半、Copilotは著者の帰属やライセンスなしにQuakeゲームのソースコードを出力したと非難され、潜在的な著作権侵害を浮き彫りにした。セキュリティ研究者はまた、モデルが公開リポジトリの潜在的に安全でないコードから学習したため、生成されたコードに脆弱性が含まれる可能性があると指摘した。これらの問題は、より良いフィルタリングとユーザー認識の必要性についての議論を促した。
評価と遺産
2022年6月のCopilotのGAは、AI支援ソフトウェア開発におけるマイルストーンを示し、開発者の間で広く採用された。それは賛否両論のレビューを受けた。生産性の向上で賞賛されたが、法的および倫理的な問題で批判された。このツールの進化は2025年のエージェントモードとコーディングエージェントで続き、その自律性を拡大した。Copilotはまた、同様のツールの開発に影響を与え、Large language modelベースのコーディングアシスタントの台頭に貢献した。その遺産には、フェアユース、著作権、プログラミング教育におけるAIの役割に関する進行中の議論、およびOpenAI、Anthropic、Googleなどのプロバイダーからの複数のLLMの統合が含まれる。
関連項目
- ChatGPT
- Tabnine
- Cursor(コードエディタ)
- Devin AI
- 生成AI
- AI支援ソフトウェア開発ツールの一覧
- Microsoft Copilot
- コード補完
参考文献
- GitHubの公式発表およびドキュメント
- 集団訴訟の申立書(Joseph Saveri Law Firm、2022年11月)
- Software Freedom Conservancyの声明(2022年6月)
- OpenAIおよびGitHubの技術レポート
外部リンク
- 公式ウェブサイト(github.com/features/copilot)