GitHubが提供しているAIペアプログラミングツール「GitHub Copliot」がエンジニア界隈を騒がせているようです。
GitHub Copilotやべぇ
— いわまさ@Webアプリエンジニア (@IwakuraDev) September 18, 2023
ekibanaのスケジュール通知するbotのコード補完してくれたんだけど、駅も日程も完璧に予測してくれている pic.twitter.com/sJkkB1085t
テック系の大手企業である株式会社サイバーエージェントでもGithub Copliotを取り入れており、これからエンジニア界隈のスタンダードになる可能性もあります。
そこで今回は、Github Copliotの特徴やメリット、実際の使い方まで詳しく解説します。まだGithub Copliotを触っていない方や、以前から気になっていたという方はぜひこの機にチェックしてみてください。
GitHub Copilotとは
GitHub Copilotは、コーディング中に予測されるコードの提案を行うAI技術を備えたツールです。コードを書き始めたときや、特定の動作を自然言語のコメントで示すことで、適切なコードの候補を受け取ることができます。
たとえば、関数を作成する際に関数名と引数を定義して改行すると、関数内に入力する可能性の高いコードを予測して提案してくれます。
GitHub Copilotの魅力は優れた提案機能だけでなく、エディターの拡張機能を使って簡単に連携できたり、さまざまな言語と対応していることから手軽に利用できることも挙げられます。
GitHub Copilotを使うメリット
高精度の提案による生産性の向上
GitHub Copliotは、GitHub内の膨大なコードで学習されたAIにより高い精度を備えているのが特徴。リアルタイムで必要なコードを瞬時に提案し、効率的なコーディングをサポートできるのがメリットです。
その結果、生産性は大幅に向上して開発者の負担も大きく減少します。
さまざまな言語に対応している
GitHub Copilotで利用できる主要な対応言語は下記のとおりです。
- Python
- JavaScript
- TypeScript
- Ruby
- Go
- C#
- C++
ほかにも多様な言語に対応していますが、GitHub Copliotが学習できるデータ量の観点から、上記のプログラミング言語で利用することがおすすめです。
GitHub Copliotを使うことで、利用経験の浅い言語においてもスムーズなコーディングが可能となるのがメリット。不慣れな言語やフレームワークに直面しても、Copilotの提案機能により文法の違いや細かいエラーを迅速にキャッチして対処できます。
これにより、新しい技術領域への挑戦がより手軽になります。
既存のエディターとスムーズに連携できる
GitHub Copilotは人気の高いエディターとスムーズに連携できるため、開発者は新しい環境を学ぶ手間を省くことができます。利用できる主なエディターは下記のとおりです。
- Visual Studio Code
- JetBrains IDEs
- Vim/Neovim
- Visual Studio
エディターを使ってスムーズに利用できるため、既存の開発環境を変えずにGitHub Copilotの強力なサポートを享受できるのがメリットです。
GitHub Copliotの使い方
GitHub Copliotの導入方法から実際の使い方まで、実際の画面を用いて解説します。
GitHub Copliotへ登録する
まず、GitHubのアカウントにアクセスします。
GitHubより
画面左のメニュー欄から「Copliot」をクリックします。
GitHubより
表示画面内にある「Start free trial」をクリックします。
GitHubより
GitHub Copliotの登録画面が表示されるので、月額プランと年間プランの双方から選択します。最初の30日間は無料トライアル期間であり、30日以内に契約解除すれば無料で利用できます。
利用したいプランをクリックして「Get access to GitHub Copliot」ボタンをクリックしましょう。
GitHubより
個人情報の入力画面が表示されます。各項目の入力方法は下記のとおりです。
- First Name:下の名前
- Last Name:名字
- Address PO bin:住所内にある個人の郵便ボックスの番号
- Address line2:市区町村以下の住所
- City:市区町村を指定(東京都や川崎市など)
- Postal/Zip code:郵便番号
- State/Province:都道府県
各入力欄を埋めたら、画面下にある「Save」ボタンをクリックします。
GitHubより
次は決済方法を入力します。支払方法は「クレジットカード」と「Paypal」の2種類あるので、「Pay with」欄から好みの方法をクリックしましょう。
決済情報を入力した後は、画面下にある「Save payment information」ボタンをクリックします。
GitHubより
決済情報の確認画面が表示されるので、内容に問題がなければ「Submit」ボタンをクリックします。
GitHubより
GitHubがコードを学習するために活用するのを許可するかチェックする画面が表示されます。任意の選択肢を選び「Save and get started」をクリックしましょう。
GitHubより
上記の画面が表示されたら登録完了です。
テキストエディタへGitHub Copliotのプラグインをインストールする
GitHub Copliotはテキストエディタのプラグインと連動して利用します。今回は、Visual Studio Code(VS Code)を使ってGitHub Copliotを使う方法を例に解説します。
Visual Studio Codeより
はじめにVSCodeを開き、画面左の選択肢から拡張機能のアイコン(ボックスが複数重なっているようなアイコン)をクリックします。
画面上部に検索窓が表示されるので「GitHub Copliot」と入力。表示されたGitHub Copliotの拡張機能をインストールして下さい。
Visual Studio Codeより
インストールが完了すると、画面右下にGitHubへサインインする青いボタンが表示されるのでクリックしましょう。
Visual Studio Codeより
「Allow」をクリックします。
Visual Studio Codeより
「Open」ボタンを押すして、プラグインのインストール完了です。
GitHub Copliotを使ってみた
実際にGitHub Copliotを使ってみましょう。今回はPythonコードを例に解説します。はじめに、Pythonの拡張子を指定したファイルを作成し、下記のようなメソッドを入力します。
Visual Studio Codeより
すると、メソッドの下にグレー色で「return a + b」と表示されました。これがGitHub Copliotのサポート機能です。入力したコードの次にどのようなコードを書くのか予測表示してくれるのでとても便利ですね。
予測表示の内容を使いたいときは「TAB」ボタンをクリックします。希望の内容でない場合はそのまま入力を続けましょう。
今回は「TAB」ボタンを押して提案を受け入れてみます。
Visual Studio Codeより
グレー色からアクティブになりました。次に、関数をnumber変数へ代入する処理を書こうとしたところ、「number = 」と入力したあたりで残りのコードを提案してくれました。内容も問題ないのでそのまま提案を受け入れます。
Visual Studio Codeより
表示するための処理までGitHub Copliotが提案してくれました。今回は簡単なプログラムでGitHub Copliotを使ってみましたが、利用することでコーディングの手間を大幅に削減できそうなのが感じられました。
特に、関数の基本的な実装方法や、一般的なコーディングパターンをすばやく生成する際の助けになります。
日本語でコードを作成することも可能
GitHub Copilotを使うと、自然言語でコメントを記述した内容に適したコードの提案を受け取ることができます。
Visual Studio Codeより
たとえば、上記のようにコメント機能を使って「hello worldと出力する関数を作ってください。」と記載すると、コメント内容に沿ったコードを提案してくれます。
複雑なシステムを自然言語で指示することは難しそうですが、基本的な機能や簡単なコードを作成するときに役立ちそうですね。
Github Copliotを使う際の注意点
Github Copliotによる提案機能の品質は、利用するプログラミング言語によって異なります。GitHub Copilotの背後には、GitHub、OpenAI、およびMicrosoftの協力によって開発された高度なAIモデルが存在します。
このAIは、GitHubの一般ユーザーに公開されているリポジトリのデータを活用してトレーニングを受けています。そのため、提案の品質はトレーニングデータの量や多様性に依存するのが特徴です。
たとえば、よく使われる言語であるRubyやPythonは公開リポジトリで豊富に利用されており、高品質な提案を受け取ることが期待できます。一方、利用機会の少ない言語では、提案の精度が低くなる可能性があることに注意が必要です。
※上記コンテンツの内容やソースコードはAIで確認・デバッグしておりますが、間違いやエラー、脆弱性などがある場合は、コメントよりご報告いただけますと幸いです。
ITやプログラミングに関するコラム
- 3Dモデルを生成できるGPT「Tripo3D」を使ってみた。
- 【Python】タプルの基本操作!値の取り出しやスライス、ループの利用法を解説
- プロンプトを共有できる便利サイト「プロンプト研究所」の使い方を徹底解説
- 【SNSで話題】AIでアバターを生成できる「HeyGen」の使い方と料金形態をくわしく解説
- 社内DXは重要?実施が難しい理由やその必要性を解説。社内DXに重要なポイントも紹介。