こんにちは。ファンリピートの塙です。
今回は今話題のGPTを用いたAIによるプログラミングの手助けをしてくれるGitHubの提供するCopilotを紹介します。
ぜひ最後までご覧ください。
※一般の人なら60日間の無料体験後、有料プランへの移行となりますが、学生はgithub のglobal campasへの登録で無料で使用することができます。学生の方は登録しておくといいと思います。
登録方法はこちらを参照してください。
Git Hub Copilotとは
GitHub Copilotは、OpenAIとGitHubが共同開発した人工知能によるプログラミング支援ツールです。プログラマーがコードを書く際に、自動的にコードを提供してくれます。
Copilotは、GitHub上にあるコードを学習しており、GitHub上にあるコードのフレーズやパターンを自動的に把握することができます。したがって、プログラマーはコードを書く際に、手動でコードを記述する必要が減ります。
また、Copilotは、あなたがどのような言語を使用しているかを判断し、それに合わせてコードを生成するため、開発言語を問わず利用することができます。中でも「Python」「JavaScript」「TypeScript」「Ruby」「Go」「C#」「C++」が得意なようです。
簡単なコードの自動生成や、コードの効率的な生成を手助けしてくれるCopilotは、多くのプログラマーにとって非常に有用なツールとなっています。
導入方法
ここではVS Codeへの導入を紹介します。
前提条件
Git Copilotを使用するには、以下の前提条件が必要です。
- GitHubアカウントの作成
- Visual Studio Code(VS Code)のインストール
- VS CodeのGit拡張機能のインストール
- GitHubアカウントの設定
順を追って解説していきます。
Git Copilotを使用するには、GitHubアカウントが必要です。GitHubアカウントをお持ちでない場合は、GitHubのサイトでアカウントを作成してください。
git hubのアカウントが作成できたら、ついにCopilotへの使用を開始していきます。
まず、Copilotのサイトへアクセスしてください。
Start my free trialを選択します。
60日間の無料体験期間があり、期間内に登録を解除すればその後課金されることはありません。課金していく場合、月額10ドルまたは、年間100ドルです。
Get access to GitHub Copilotをクリックします。
公開コードと一致する提案を許可するか、GitHubが製品改良のために自分のコードを使用することを許可するかについて回答し、Save and get startedをクリックします。
今回はVS Codeへの導入を行うので、一番上のVisual Studio Codeをクリックします。
次に緑色のボタンの「GitHub Copilotを試す」をクリックすると次のページへ移動します。
ここでInstall をクリックすると、VS Codeを開いていいか聞かれるので許可し、VS Codeへ移動します。
VS Codeに移動したらインストールをクリックし、インストールを開始します。
インストールが終わると、VS CodeにGitHubでサインインしていない場合サインインを求められるので(画面右下にて)サインインすると、アイコンが表示されます。
これでCopilot の導入ができました。
軽く触ってみよう
基本操作
option + [ 前の候補を表示
option + ] 次の候補を表示
tab 候補の決定
control + enter 他の候補を見る
よくプログラミングの練習で行うフィボナッチ数列の表示プログラムをpythonでcopilotを使いながら書いてみます。
Copilotではコメントや関数名からコードを提示してくれます。
では、
#display fibonacci
と記述してみます。
すると、
このように灰色文字で提案がされたので、tabを押します。
すると提案が導入されました。
続いてenterを押して次の行へ移動します。
続いて、いくつの数を表示させるかを決める変数の提案がされたので、そのままtabを押す。このようにして次々と提案されたものをtabで確定させていくと以下のようなプログラムが出来上がりました。
これで既に完成してしまいました。
今回のコードを書くうえで記述したのは”#display fibonacci”のみです。
実行してみるとちゃんと計算されていることが分かります。
Copilotの仕組みと注意点
予測は、GitHubが保有する数百万のオープンソースのコードから学習したニューラルネットワークによって実現されています。
GitHub Copilotは、オープンソースの学習済みモデルであるOpenAIのGPT(Generative Pretrained Transformer)をベースにしています。GPTは、自然言語処理のタスクにおいて、単語の並びから文章を生成するなどの応用に利用されています。GitHub Copilotは、プログラミングにおけるテキスト処理のタスクにGPTを適用し、プログラマーの入力を解析し、次のコードの断片を予測することができます。
ただし、GitHub Copilotが提供するサジェストは、GitHubが保有するオープンソースのコードから学習したものであり、その出力が常に正確であるわけではありません。プログラマーが出力を確認し、必要に応じて修正することが必要です。また、GitHub Copilotは、プログラムの動作に関する知識を持っていないため、出力されたコードが意図した動作をしない場合があります。
例えば、以下のソースコードは初めの1行のみを記述してそのあとはCopilotの提案をそのまま採用したソースコードです。
しかし、このコードはフィボナッチ数列を求めることができますが、再帰呼び出しを行なっているためnの値が大きくなった場合にオーバーフローなどを起こしてしまう可能性があります。
学習データがgithub上で公開されているソースコードなのでどうしても誰かが書いたコードをコピペして持ってきているように感じることがありました。
例えば、急に別のディレクトリの(存在しない)コードを参照する提案がされることがあったりなどです。
また、日本語のコメントからも提案をしてくれますが、英語の方が学習データが多いため的確な提案をされる可能性が高いです。
Copilotのアップデートバージョン!Copilot X
現在のCopilotよりもさらに機能が充実したCopilot Xが将来的に公開される予定です。機械学習にはGPT-4が使用されます。
その新たな機能には
- chat GPTのようにチャット形式で相談できる機能
- テストコードの記述
- 膨大な公式ドキュメントから該当箇所をピックアップしてくれる機能
- バグの修正を提案してくれる機能
- プルリクエストの説明を自動で記述してくれる機能
どれも今後の開発の効率を飛躍的に上げてくれそうな機能です。
現在一般公開はされていませんが、公式サイトから順番待ちリストへの登録が可能です。
終わり
いかがだったでしょうか。ぜひ一度は自分のパソコンで試してみることをお勧めします。次々とコードの提案がされていく体験はかなり面白くワクワクするものだと思います。
メンバーを募集中!
当社ではお客様に向き合い、お客様の事業成功にコミットをできる仲間を募集しています。
正社員、インターンから副業まで、幅広く採用活動を進めております。プロジェクトマネージャーやシステムエンジニアとして当社のシステム開発業務に携わってみませんか?
当社と共に、業界トップを目指して挑戦したい方は未経験者から経験者まで広く募集しているので、ぜひエントリーをお待ちしています。