はじめに
GitHub Copilot
はなんとなくわかるしなんとなく使えているけど、Copilot
を使うメリットや、ユースケースの例、使用上の注意点など、ちゃんと他の人に説明しようと思ったときにできないことに気が付いたため、GitHub Copilot
に関する情報を備忘録としてこの記事に簡単にまとめます。
GitHub Copilotとは
GitHub Copilot
を一言で言うと、「AIペアプログラマー」です。より速く、より少ない作業でコードを記述するのに役立つ、世界初の大規模なAI開発者用ツールであり、開発者がより短時間でコードを作成し、より満足のいく作業に集中できるようにすることで、組織の生産性、セキュリティ、充実感を高めることに重点を置いています。GitHub Copilot
はコメントとコードからコンテキストを引き出して、個々の行および関数全体を即座に提案するため、開発者は使用するコードを書き始めるか、そのコードに何をさせたいかを自然言語のコメントで記述することで、候補を取り入れることができます。
OpenAI Codex
GitHub Copilot
には、OpenAI
によって作成されたAIシステムであるOpenAI Codex
が搭載されています。OpenAI Codex
はコード生成において、GPT-3
よりも一部優れています。
GitHubとMicrosoftの最近の調査結果
調査結果により、開発者がGitHub Copilot
を使うことで以下のことが判明しました。
- 新しいコードの「46%」がAIによって記述されるようになった
- 開発者の全体的な生産性が「55%」速くなった
- 開発者の「74%」が満足のいく作業に集中できるようになったと感じている
- 「90%」近くの開発者がタスクをより短い時間で終わらせることができた
- 開発者の「73%」が、長い時間集中力を保つのに役立つと回答
- 「87%」が反復的なタスクに取り組んでいる際に気力を保つのに役立ったと回答
Visual Studio Codeを使ったGitHub Copilotの利用
Visual Studio Code
でGitHub Copilot
を利用するために、いくつかのショートカットが用意されています。
候補の表示
- 候補を受け入れるには、
Tab
キーを押す - すべての候補を拒否するには、
Esc
キーを押す
(ちなみに、Copilot
は約150文字のコード候補を出します。)
代替候補の表示
OS | 次の候補を表示 | 前の候補を表示 |
---|---|---|
macOS | Option (⌥) または Alt+] | Option (⌥) または Alt+[ |
Windows | Alt+] | Alt+[ |
Linux | Alt+] | Alt+[ |
複数の候補を表示
Ctrl
+Enter
キーを押します。
(候補を受け入れるには、候補の上にあるAccept Solution
を押す。)
コメントからコード候補を生成
コメントを入力するだけで、関数の実装の候補が表示されます。
GitHub Copilotが得意な言語
Python
、JavaScript
、TypeScript
、Ruby
、Go
、C#
、C++
、です。
GitHub Copilotのトレーニングデータ
パブリックリポジトリに表示されるすべて言語でトレーニングされています。
コードのセキュリティと品質を確保
無数のオープンソースコードから構築されたモデルから提案されるため、安全でないコーディングパターン、バグ、古いAPIが含まれている可能性があります。提案を受け入れるのは開発者自身の責任ですが、GitHub Actions
、Dependabot
、CodeQL
、code scanning
など、コード品質を監視および改善できる多数の機能が用意されています。
GitHub Copilot for BusinessとGitHub Copilot for Individualsの比較
GitHub Copilot for Individuals
ではできないが、GitHub Copilot for Business
ではできることは以下です。
- コードスニペットと利用統計情報のデータ保持期間がゼロ
-
Organization
全体にわたるポリシー管理 - 自己署名証明書によるVPNプロキシのサポート
ちなみに、for Individual
の価格は1か月あたり10ドル(1年で100ドル)で、for Business
は1ユーザー1か月あたり19ドルです。
ログファイルの表示と収集
-
Visual Studio Code
の[表示]メニューを開きます。 - [出力]をクリックします。
- [出力ビュー]ペインの右側で、ドロップダウンメニューから[
GitHub Copilot
]を選びます。
ネットワーク接続診断ログの表示
- コマンドパレットから「
Diagnostics
」と入力し、一覧から[GitHub Copilot:診断の収集
]を選びます。 - [到達可能性]のセクションを確認して、
GitHub Copilot
が実際に必要なサービスにアクセスできるかどうかを判断します。
GitHub Copilot X
GitHub Copilot X
とは、OpenAI
の最新のGPT-4
モデルを採用する、AIを利用したソフトウェア開発の将来のビジョンです。
GitHub Copilot Xから期待できる今後の機能
- エディターでの
ChatGPT
のような体験 -
pull request
用のCopilot
- ドキュメントについてのAIによって生成された回答
- コマンドラインインターフェイス(
CLI
)用のCopilot
GitHub Copilot Chatとは
GitHub Copilot
と対話できるチャットインターフェイスであり、サポートされているIDE
内で直接コード関連の質問をすると回答を受け取ることができます。チャットインターフェイスを使用すると、ドキュメントに移動したり、オンラインフォーラムを検索したりする必要なく、コーディング情報とサポートにアクセスできます。現在はVisual Studio Code
とVisual Studio
でサポートされています。
GitHub Copilot Chatでできること
単体テストケースの作成、コードの説明、コード修正の提案、コードに関する質問やヘルプ、などができます。
GitHub Copilot Chatの制限
- パブリックリポジトリの表現が少ない言語は、
Copilot Chat
での支援がより困難になります。 -
Copilot Chat
では、書き込まれるコードのコンテキストに基づいてのみコードを提案できるため、より大きな設計やアーキテクチャの問題を特定できない場合があります。
パブリックコードとの一致
Copilot Chat
は、確率論的な方法で新しいコードを生成できます。Copilot Chat
は、GitHub
リポジトリのパブリックコードとの一致をブロックするフィルターを利用する上、トレーニングセット内のコードと一致するコードが生成される可能性も低いですが、Copilot Chat
候補には、トレーニングセット内のコードに一致するいくつかのコードスニペットが含まれている場合があります。
参考文献
「GitHub Copilot の概要」
「GitHub Copilot for Individualsについて」
「GitHub Copilot for Business の概要」
「GitHub Copilot の概要」
おわりに
簡単ですが、GitHub Copilot
に関するちょっとした情報をまとめました。個人的にはCopilot
による候補の次を表示できることに驚きましたし、実用的だと感じたので積極的に使っていきたいです。なんとなく使っていたGitHub Copilot
を他の人に簡単に説明できるくらいにはなったのではと思います。