2024.12.19
システムの穴を運用でカバーしようとしてミス多発… バグが大量発生、決算が合わない状態から業務効率化を実現するまで
ログミーTech 用語解説「GitHub Copilot」(全1記事)
リンクをコピー
記事をブックマーク
1 GitHub Copilotとは
1-1 Copilot Workspaceとは
1-2 GitHub Copilot Xとは
1-3 GitHub Copilot Chatとは
3 GitHub Copilotの使い方
3-1 GitHubアカウントの作成
3-2 GitHub Copilotの利用登録
3-3 GitHub CopilotをVisual Studio Codeにインストールする
3-4 GitHub Copilotを Visual Studioにインストールする
7 GitHub Copilotを活用して自身のスキルアップ・キャリアアップに
GitHub Copilotとは、GitHubが提供するAI(人工知能)を用いたコーディング支援サービスです。ChatGPTで知られるOpenAIと共同で開発が進められています。GitHubに存在する膨大なパブリックコードで学習を行ったプログラミング言語モデル、OpanAI Codexをベースとして、開発者のコーディングをさまざまな角度から手助けしてくれます。
例えば、1つのプログラムを2人で協力して開発するスタイルをペアプログラミングといい、2人の相乗効果による効率アップやスキル向上がメリットとされていますが、強力なAIを備えるGitHub Copilotも、まさにペアプログラミングと同様の効果が見込まれています。そのため、GitHub Copilotには「Your AI pair programmer」(あなたのAIペアプログラマー)というキャッチフレーズが付けられています。
GitHub Copilotは主に、次の機能を提供しています。
・コードの自動補完・コードの生成・コードのレビュー
コードの自動補完では、入力した文字列に基づき、続きの文字列を予測しオートコンプリートのような動作で候補を提案してくれます。似たような予測入力は従来の統合開発環境にも備わっていましたが、GitHub Copilotはプログラムの意図を汲んだ上で、より適切な提案を行ってくれます。
コードの生成では、入力したコードやコメントなどに基づいて、次に必要とされるであろうコードをGitHub Copilotが新しく生成してくれます。プログラムに新しい機能を追加する時などに、大幅な時間節約を期待できる機能です。
コードのレビューでは、入力したコードを分析して問題解決案や改善案を提案してくれます。人にコードレビューをしてもらう前にGitHub Copilotから指摘を受けることで、コード品質の向上につながります。また、このコード分析能力は、既存プログラムやライブラリなどを改修したい場合にも役立ちます。
さらにGitHub Copilotの大きな特徴として挙げられるのが、これらのさまざまな支援機能が統合開発環境(IDE)のプラグインというかたちで提供されていて、コード入力からGitHub Copilot利用までを、統合開発環境内に留まったままシームレスに行える点です。思考が途切れず作業に没頭できるのは、大きなメリットといえるのではないでしょうか。
GitHub Copilotは、次の統合開発環境で利用できます。
・Azure Data Studio・JetBrains IDE・Vim/Neovim・Visual Studio・Visual Studio Code
また、GitHub Copilotは多くの語に対応しており、特にPython、JavaScript、TypeScript、Ruby、GO、C#、C++に適しています。そのほかに、HTMLやCSS、Webページの記述にも利用可能です。なお、GitHub Copilotは進化中のサービスなので、リリース以降にもいろいろな機能が追加されてきました。これから先も、きっとさらなる進化があることでしょう。
そんなGitHub Copilotに関連するキーワードとして、Copilot Workspace、GitHub Copilot X、GitHub Copilot Chatにも触れておきましょう。
Copilot Workspaceとは、2023年11月10日にGitHubのイベントで発表された、GitHub Copilotの将来像のことです。その内容は、人間が提出した要望などをもとに、Copilotが仕様書や実装計画を作成し、コーディングのほとんどすべての作業を自動的に実行するというもの。
各工程で人間側から修正や要望を出すこともありますが、基本的に人間が一切コードを記述しなくてもプログラムが完成します。そんなCopilot Workspaceのリリースは、2024年と予定されています。
GitHub Copilot Xは、自然言語処理モデルGPT-4を利用した次世代のGitHub Copilotの姿のことです。「普遍的」「対話形式」「個人に特化」「安全・安定・信頼」をキーワードに開発が進められています。このうち、自然言語で対話を行う機能はGitHub Copilot Chatとして先行実装されています。そのほかの機能として、ドキュメント関連、プルリクエスト関連、コマンドライン関連の機能が模索されています。
【関連記事】
GitHub Copilot Chatは、自然言語処理モデルGPT-4を用い、対話形式でコード生成を行ったり、ソースコードに対してさまざまな処理を加える機能を持っています。その高い言語読解力で、人間の会話への理解はもちろん、ソースコードの意図を組んだ解説なども得意とします。
【関連記事】
GitHub Copilotは有料のサブスクリプションサービスです。契約プランは3つ用意されており、それぞれの料金と特徴は次のようになります。
・GitHub Copilot Individual10米ドル/月、もしくは100米ドル/年・GitHub Copilot Business1ユーザーあたり19米ドル/月・GitHub Copilot Enterprise1ユーザーあたり39米ドル/月
GitHub Copilot Individiualプランは個人向けプランです。個人向けとはいえ、GitHub Copilotの機能をほぼ完全に利用できます。GitHub Copilotを初めて利用するユーザーには30日間の無料試用期間も設けられており、30日以内に解約すれば課金はされません。
GitHub Copilot Businessプランは企業などの組織を対象にしたビジネス向けプランです。OrganizationまたはEnterpriseアカウントで利用できます。個人向けプランとの大きな違いは、テレメトリー送信の有無とポリシー管理にあります。個人向けプランでは品質向上のため使用状況などがGitHubへ送られていますが、ビジネス向けプランはそれがありません。また、ユーザー全体のポリシーを一元管理できるのも特徴の1つです。
GitHub Copilot Enterpriseプランは、2024年2月より新しく運用が開始される、エンタープライズ向けプランです。導入組織で使われているコードを学習させ、ファインチューニングした独自AIを利用できるのが最大の特徴です。
続いて、GitHub Copilotを利用可能になるまでの流れを紹介します。大まかな流れとしては、GitHubアカウント作成をした後にGitHub Copilotの利用登録、統合開発環境にプラグインインストールし、統合開発環境とGitHubを認証をするという流れになります。
1.GitHubのWebサイト(https://github.com/)にアクセスし、画面右上の「Sign up」からアカウント登録を行います。
2.入力フォームにメールアドレス、パスワード、ユーザーネームを入力します。アナウンスメールが必要なければ「Email preferences」にはチェックを入れずに「Continue」で次へ進みます。
3.ロボット検証が完了すると登録したメールアドレスへ8桁のロンチコードが届くので、届いた数字を入力します。
4.開発チーム人数や興味のある事柄といったアンケートに回答します。
5.無料プランか有料プランかの選択を行い、「Continue for free」を選択します。
6.以上でGitHubの登録は完了です。
1.GitHub Copilotのページ(https://github.com/github-copilot/signup)にアクセスします。
2.無料試用期間終了後、月払いにするか年払いにするかの選択をし「Get Access to GitHub Copilot」をクリックします。
3.個人情報入力画面で必要な情報を入力して、「Save」で保存します。
4.支払方法の登録画面で必要な情報を入力して「Save payment infomation」をクリックします。
5.入力フォームに氏名、メールアドレス、国を入力し、「Submit」をクリックします。
6.GitHub Copilotに関するアカウント設定重要項目の選択を行う画面に移ります。
「Suggestions matching public code」は、「Allowed」にするとパブリックコードがそのまま提案される場合があります。その際、ライセンス違反などのリスクを生じる可能性があるので、こ「Block」に設定しておくのが良いでしょう。
「Allow GitHub to use my code snippets for product improvements*」は、作成したコードスニペットをGitHub Copilotの品質向上のため共有するかという設定です。個人用途ではそれほど気にする必要はないかもしれませんが、企業で利用しているなど、開発中のコードが共有されるのは好ましくない場合はチェックを入れないようにしましょう。
7.以上で、GitHub Copilot利用開始の登録は完了です。
代表的な統合開発環境のひとつ、Visual Studio CodeにGitHub Copilotの拡張機能をインストールし、GitHub Copilotを使用できるまでの手順を紹介します。ここでは、日本語化したVisual Studio Codeを使用して説明を進めています。
1.Visual Studio Codeを起動し、画面左端のメニューアイコンから「拡張機能」を選択します。
2.「拡張機能:マーケットプレース」が表示されるので、検索窓に「GitHub Copilot」などと入力します。GitHub Copilot関連の拡張機能が見つかるので、「GitHub Copilot」と「GitHub Copilot Chat」をインストールします。
3.拡張機能をインストールすると、画面右下のメッセージに「Sign in to use GitHub Copilot」と表示されるので、「Sign in to GitHub」をクリックします。
4.Webブラウザが開きVisual Studio CodeとGitHubの認証画面が表示されるので、「Authorize Visual-Studio-Code」をクリックします。WebブラウザでGitHubにサインインしていない場合は、次にGitHubのサインイン画面が表示されるので、画面に従ってサインインしてください。
5.以上で認証が完了完了になり、Visual Studio Code上でGitHub Copilotが利用可能となります。
インストールに続き、Visual Studio CodeでGitHub Copilotを使用する方法についても少し確認しておきましょう。
画面左端のメニューアイコンからチャットを選択すると、拡張機能ウィンドウでGitHub Copilot Chatを利用できます。コード編集画面では何か打ち込むたびにいろいろな候補を薄色で表示してくれるので、候補内に欲しいコードがあったら「Tabキー」で確定します。
コード編集画面で「Ctrlキー」+「Iキー」を押すと、GitHub Copilot Chatのインラインチャット機能を呼び出せます。ここにGitHub Copilotに生成してほしい機能などを記述すると、コード生成が始まります。今回は例として「2から渡された数までの間の素数をすべて表示する関数を作って。」と記入して送信します。
すると、コードが生成されます。問題なければ「同意」をクリックして確定します。今回はPythonで作業を進めています。
確定したコードに続き、改行で行を開けると自動的にコード候補が出てきます。今回は関数を呼び出すコードが自動的に現れました。
「Tabキー」で確定させて実行すると、100までの素数一覧が表示されます。
コードに手を加えようと「max」まで打ち込んだところ、数字入力のコード候補を出してくれました。変数の名前も自動で付け足してくれています。
「Tabキー」で確定させた後に改行すると、次の行には変数を引数にした関数が候補として表示されます。
このように、何も入力せずとも次々とコードが生まれてくるのがGitHub Copilotのおもしろいところです。
Visual Studio Codeに続き、Microsoft Visual Studio 2022(以下、Visual Studio)へのGitHub Copilotのインストール手順も紹介していきます。ここでは、Visual Studio Community 2022を用いて進めています。
1.Visual Studioを起動し、画面上部の「拡張機能」メニューから「Manage Extensions...」を選択します。
2.「拡張機能の管理」画面が表示されるので、右上の検索窓に「Copilot」などと入力してGitHub Copilot関連の拡張機能を検索します。検索結果から「GitHub Copilot」を選択し「ダウンロード」をクリックします。
3.変更にはVisual Studioを終了させる必要がある旨のメッセージが表示されるので、Visual Studioを終了します。
4.ウィンドウが閉じると拡張機能をインストールする旨のダイアログが表示されるので、画面に従いインストールを行います。
5.インストールが完了したらVisual Studioを起動し、同様の手順でGitHub Copilot Chatの拡張機能をインストールします。
6.次にVisual Studioを起動すると、メニューバー下にGitHubアカウントでサインインする旨のメッセージが表示されるので、メッセージの「GitHubにサインイン」をクリックします。
7.アカウント設定のダイアログが表示されます。中央付近の「+追加」から、GitHubアカウントの追加を選択します。
8.Webブラウザが開き、Visual StudioをGitHubの認証画面が表示されるので「Authorize github」をクリックします。
9.以上でVisual StudioにGitHubアカウントが登録され、GitHub Copilotを使用できるようになります。
「表示」メニューの「GitHub Copilot チャット」や、コード編集画面上での右クリックメニューから「Copilotに質問する」を用いて、GitHub Copilot Chatを用いた対話型コーディングができるようになります。
GitHub Copilotの導入で得られるメリットは多岐に渡ります。ここでは、下記のメリットについて触れていきましょう。
・生産性の向上・コード品質の向上・プログラミング初級者には良き教材に
生産性の向上は、GitHub Copilotの導入で最もよく聞かれるメリットです。GitHub Copilotの提案によって打ち込むコード量が減らせるという点が、生産性の向上につながります。また、「集中力の持続」「飽きる前に動くところまで持っていける」という点にメリットを感じている人も多いです。
集中力の持続と言う点では、GitHub Copilotの導入により統合開発環境の中だけで作業フローが完結することが大きな理由です。調べものをする時に「Webブラウザを開いて、検索して……」とすることで、作業が途切れ、集中力も途切れてしまうということを経験したことも少なくないのではないでしょうか。GitHub Copilotを導入することで、プログラミングでわからないことはGitHub Copilot Chatに聞けば良くなり、他への目移りを防げるというわけです。
また、飽きる前に動くところまで持っていける点については、GitHub Copilotの生産性の高さからもたらされた部分と言えるでしょう。プログラミングに限ったことではありませんが、延々と作業をしても、完成形が見えてこなければモチベーションは上がり辛いものです。飽きる前に動くところまで素早く持っていけるというのは、生産性を上げるためにもとても重要な項目と言えます。
【関連記事】
コード品質の向上については、GitHubが実施した調査で報告されており、GitHub Copilotを利用することで、開発者の85%がコードの品質に自信が持てたと感じ、コードレビューの時間が15%短くなり、GitHub Copilot Chatを使うことで88%の開発者が集中力が増し、イライラが減りコーディングがさらに楽しくなってフロー状態を維持できたと記載されています。
GitHub Copilotのサポート力の高さもあり、GitHub Copilotはプログラミング初級者の教材としても優れています。GitHub Copilotのコード生成で作られるコードの中に、初級者にとって見かけたことのない関数やメソッドが多数組み込まれていても、GitHub Copilot Chatに解説を頼めば、関数やメソッドの働き、およびプログラム全体の流れにおいてどういった役割を持っているのかなども丁寧に説明してくれます。
また、GitHub Copilotのサポート力によって、不慣れな分野への挑戦がしやすくなるのもメリットです。
【関連記事】
GitHub Copilotはその自然言語処理能力の高さから、コーディング以外の分野でも活用されています。具体的な活用事例を知りたい方は、ぜひ下記記事をご覧ください。
【関連記事】
GitHub Copilotには良い点ばかりではなく、懸念や注意されている点もいくつかあります。その中でも代表的な注意点を見ていきましょう。
・ソースコード漏洩の問題・脆弱性の問題・ライセンス関係の問題
セキュリティ関係の問題は大きく2つあります。1つはソースコード漏洩の問題。開発中のソースコードをGitHub Copilotに読ませているため、そこからソースコードが漏れてしまわないのか、または学習元データとして使われているのではないかという不安があります。ただ、これについてはGitHub側はしっかり否定しており、学習元として使用されるのはパブリックなソースコードだけとしています。
また、ビジネス向けプランを利用していれば、作業中のテレメトリーなども保存はしていないと明言しています。ただ、個人向けプランの場合、コーディング作業中の操作やGitHub Copilot Chatとの質問会話などは保存されていると考えた方が良いでしょう。
もう1つのセキュリティ上の懸念は、脆弱性の問題です。GitHub CopilotのベースとなるOpenAI CodexはGitHub上のパブリックコードを学習元としていますが、大元のパブリックコードにセキュリティ脆弱性があった場合、脆弱性を含むコードをあちこちで大量生産してしまっている可能性があります。生成されたコードに脆弱性がないか、見極める目が求められます。
ライセンス関係の問題については、学習元データ所有者からの訴訟問題や、GitHub Copilotが生成したコードの著作権は誰にあるのかといった問題が挙げられます。ただし現状では、GitHub Copilot側の設定でパブリックコードを丸々コピーしたようなコードは生成しないように設定できるため、大きな問題になる可能性は低いと考えられています。
一方で、AIが生成したコードの著作権については今後の動向次第といった側面があります。AIが生成した画像には著作権がないという判例ができたことにより、AI生成コードについても著作権がないという扱いになるかもしれません。
【関連記事】
今回はGitHub Copilotについて紹介してきました。「GitHub Copilotをいかに効率よく使うか」ということを考え、実践できるスキルは、今後、開発者には必須になっていくのかもしれません。ただ、あくまでもGitHub Copilotは「副操縦士」であり、「機長」は開発者自身です。とても優秀で便利な「副操縦士」をバリバリ使い倒して、自身のスキルアップ・キャリアアップに活用していきましょう。
関連タグ:
2024.12.12
会議で発言しやすくなる「心理的安全性」を高めるには ファシリテーションがうまい人の3つの条件
2024.12.19
12万通りの「資格の組み合わせ」の中で厳選された60の項目 532の資格を持つ林雄次氏の新刊『資格のかけ算』の見所
2024.12.16
32歳で成績最下位から1年でトップ営業になれた理由 売るテクニックよりも大事な「あり方」
2023.03.21
民間宇宙開発で高まる「飛行機とロケットの衝突」の危機...どうやって回避する?
2024.12.10
メールのラリー回数でわかる「評価されない人」の特徴 職場での評価を下げる行動5選
2024.12.13
ファシリテーターは「しゃべらないほうがいい」理由 入山章栄氏が語る、心理的安全性の高い場を作るポイント
PR | 2024.12.20
モンスター化したExcelが、ある日突然崩壊 昭和のガス工事会社を生まれ変わらせた、起死回生のノーコード活用術
2024.12.18
「社長以外みんな儲かる給与設計」にした理由 経営者たちが語る、優秀な人材集め・会社を発展させるためのヒント
2024.12.12
今までとこれからで、エンジニアに求められる「スキル」の違い AI時代のエンジニアの未来と生存戦略のカギとは
PR | 2024.11.26
なぜ電話営業はなくならない?その要因は「属人化」 通話内容をデータ化するZoomのクラウドサービス活用術
Climbers Startup JAPAN EXPO 2024 - 秋 -
2024.11.20 - 2024.11.21
『主体的なキャリア形成』を考える~資格のかけ算について〜
2024.12.07 - 2024.12.07
Startup CTO of the year 2024
2024.11.19 - 2024.11.19
社員の力を引き出す経営戦略〜ひとり一人が自ら成長する組織づくり〜
2024.11.20 - 2024.11.20
「確率思考」で未来を見通す 事業を成功に導く意思決定 ~エビデンス・ベースド・マーケティング思考の調査分析で事業に有効な予測手法とは~
2024.11.05 - 2024.11.05