GitHub Copilot とは?
コード補完機能
GitHub Copilotは、プログラミング言語を自動生成することができます。コードを書き始めたり、コメントを記述したりすることで、コードを自動的に生成してくれるコード補完機能が搭載されています。
チャット機能
また、バグの解消方法、コード生成の指示などプログラミングに関する質問がすぐにフィードバックされるチャット機能も搭載されています。
GPTモデル (GPT-3.5 / GPT-4)
OpenAIが開発したGPT(Generative Pre-trained Transformer)アーキテクチャを基にしたモデルで、人工知能(AI)を活用してプログラミングの効率を向上させるツールです。
GPTモデルとは?
GPTモデルは事前に大量のテキストデータを学習し、その後、新しいタスクに転用(ファインチューニング)されます。GitHub Copilotの場合、GPT-3.5/GPT-4 がプログラミング関連の大量のコードやコメントを学習し、その知識を元にプログラムの生成を行います。
GitHub Copilot の特徴
GitHub Copilotのモデルは非常に大規模であり、トランスフォーマーアーキテクチャを採用しているため、複雑なコードの生成や自然言語の理解において高い性能を発揮します。ユーザーがコードを書く際に、Copilotはコンテキストやコメントから適切なコードの提案を行い、開発者の作業を効率化する役割を果たしています。
GitHub Copilot が得意とするプログラミング言語
以下は、GitHub Copilotが得意とする主なプログラミング言語の一部ですが、これに限らず他の言語にも対応しています。
- Python
- JavaScript
- Java
- C++
- C#
- Ruby
- Go
- TypeScript
他にも多様な言語に対応しており、例えばPHP、Swift、Kotlin、Rust、Haskellなど、様々なプログラミング言語で利用されています。
GitHub Copilotの料金 [無料枠有り]
GitHub Copilotは有料サービスであり、個人、チーム、組織で利用するプランがあります。
個人サービスには、30日間のトライアルが可能でその間は無料で利用できますが、それ以上利用する場合は、有料契約をする必要があり、月額10ドルで利用可能です。
GitHub Copilotを使うメリットは?
高速なコード生成
Copilotは学習済みの大規模なモデルを使用しており、開発者がコメントやコードを入力すると、リアルタイムで適切なコードの提案を生成します。これにより、コードの記述が迅速になります。
効果的なコード補完
部分的なコードを入力すると、Copilotはそのコンテキストに基づいて残りのコードを提案します。開発者はコードを手動で完全に書かなくても、Copilotの提案を受け入れることで簡単にコードを完成させることができます。
学習機能によるカスタマイズ
開発者がCopilotが生成したコードを採用するかどうかの選択や修正に対するフィードバックが学習モデルに反映されます。これにより、Copilotは使用者の好みやプロジェクトのニーズに従って学習し、より適切な提案を行うことが期待されます。
生産性向上
コードの記述が迅速に行えるため、開発者はより多くの機能を追加したり、バグを修正したりする際に生産性を向上させることができます。特に簡単なタスクや重複作業において、手間の削減が期待できます。
新しいアイディアの発想
Copilotはコメントやコードの文脈から提案を生成するため、開発者がアイディアをコメントとして入力すると、それに基づいたコードが生成されます。これにより、新しいアイディアを探索しやすくなります。
GitHub Copilot利用上の注意点
コードの品質
Copilotは学習データから学習した結果を元にコードを生成しますが、生成されたコードが必ずしも最適であるとは限りません。生成されたコードは確認が必要であり、開発者の責任で品質を確保する必要があります。
セキュリティ上の懸念
Copilotは学習データから機械学習モデルを構築していますが、これには大量のオープンソースのコードも含まれています。生成されるコードにはセキュリティ上の懸念がある可能性があるため、注意が必要です。
知的財産権の問題
Copilotは学習データから派生して生成されたコードを提案しますが、その提案にはオープンソースプロジェクトや商用プロジェクトのコードが含まれることがあります。コードの利用に際しては、関連する知的財産権に留意する必要があります。
コードの慣習
Copilotが生成したコードが、特定のプログラミング慣習に従っていないことがあります。開発チームのコーディングスタイルやプロジェクトの慣習に沿った修正が必要です。
フィードバックの重要性
Copilotが提案したコードが正確でない場合や修正が必要な場合は、適切なフィードバックを提供することが重要です。これにより、Copilotのモデルがより適切な提案を学習することが期待されます。
センシティブな情報の入力
Copilotを使用する際には、センシティブな情報や認証情報などをコメントやコードに含めないように気を付ける必要があります。機械学習モデルは学習データに基づいて応答するため、セキュリティ上のリスクを回避するためにも注意が必要です。
GitHub Copilotの使い方
GitHub Copilotを使うためにはGitHubアカウントとVSCodeのインストールが必要です。事前にGItHubアカウントの登録をしてください。
GitHub Copilotの登録
GitHubの右上のアカウントボタンをクリックし、「Copilot」を選びます。
「Get access to GitHub Copilot」 をクリックして登録画面へ進みます。
情報入力画面に移動しますので必要情報を登録して次へ進みます。
「GitHub」上の公開コードに一致するコード提案のコンテキストを検出して使える方がいいので、とりあえずAllowにしておきます。
これで登録は完了です。
VSCodeに拡張機能をインストールする
今回はVSCodeを使用しますが、GitHub Copilot 対応エディタはVSCode以外にも対応するエディタが存在します。
・Visual Studio Code
・Visual Studio
・JetBrains
・Neovim
GitHub Copilotは、VSCodeに専用拡張機能をインストールすることで使えるようになります。
まずはVSCodeを起動し、サイドバーの「拡張機能」をクリックします。
「GitHub Copilot」を検索しインストールします。
GitHubへサインインを行うことでVSCodeにGitHub Copilotの拡張機能をインストールが完了します。
GitHub Copilotを使ってみる【コード補完機能】
VSCodeでPythonファイルを作成し、以下のようなコードを記述します。
def function_name(param1, param2):
記述したコードの下にGitHub Copilotがコードの提案をしてくれます。
Tabキーを押すとそのままそのコードが生成されます。
GitHub Copilot [補完機能] のショートカットキー(Macの場合)
GitHub Copilot 操作 | ショートカットキー |
---|---|
提案を受け入れる | TAB キー |
提案を拒否する | Esc キー |
まとめて提案を表示させる | Ctrl+Enter キー |
提案を単語単位で受け入れる | Command + 右矢印キー |
提案を単語単位での受け入れを元に戻す | Command + b |
次の提案を見る | Option/Alt +] |
前の提案に戻る | Option/Alt +[ |
インライン候補をトリガーする | Option/Alt +/ |
GitHub Copilotを使ってみる【チャット機能】
VSCodeでPythonファイルを作成し、右クリックを押して「Start Inline Chat」をクリックします。
コード生成を依頼することができるので、生成したいコードをCopilotに依頼してみましょう。
今回はPython言語を使ってフィボナッチ数列の計算をしてみます。
実行すると以下のフィボナッチ数列が計算できました。
[0, 1, 1, 2, 3, 5, 8, 13, 21, 34]
GitHub Copilot [チャット機能] のショートカットキー(Macの場合)
Inline Chatの操作 | ショートカットキー |
---|---|
コードチャットの開始 | command + I |
変更を受け入れる | command + Enterキー |
チャット欄のフォーカルの変更 | 上下キー |
GitHub Copilotの無料枠をキャンセルしたい場合の対処法
GitHub Copilotのプランをキャンセルをする場合は、30日間の無料トライアル中にキャンセル手続きをすると課金されません。
キャンセルをする場合は、GitHubの右上の管理画面から「Settings」→「Access」→「Billing and plans」→「Plans and usage」の順に進んでください。
管理画面が表示されるので、「GitHub Copilot」の「Cancel trial」を押せばキャンセルできます。
まとめ
GitHub Copilotは、効率的なコード生成が求められる場面で活用できます。プロトタイピングや新しいプログラミング言語の学習にも適していることから、これからのプログラミング活用場面で幅広く利用されることになるでしょう。しかし、コード生成は必ずしも正しいとは限らないため、プログラミング学習の際は誤りがないかを確認することが必要です。またコード生成の品質の他にセキュリティの確認も必要になってくるので注意しましょう。
コメント