【import 神】GitHub Copilotが学生は無料らしいので使ってみた【Copilot, Copilot Labs, Copilot Nightly】

なんと、学生は無料でGitHub Copilotを使用できると聞いて、すぐに試してみたらもう抜け出せなくなったので、体験談を書く。

僕の詳しいプロフィールはこちらから。

https://qiita.com/mohki7/items/c3f26916d79a0e3269cc

# GitHub Copilotとは？
## GitHub Copilot
GitHub Copilotとは、ChatGPTのような文章生成AIにプログラムコードを学習させた、プログラミング特化の生成AI。従って、「こういうコードを書きたい！」とAIに伝えると、そのコードを提案してくれる。普通は月10ドルのサブスク。

https://marketplace.visualstudio.com/items?itemName=GitHub.copilot

今はまだ、ベースはGPT-3らしく、先日GPT-4をベースとした進化版、「Copilot X」が発表された。こちらはまだ使用することはできず、学生が無料で使えるようになるのかは不明。

https://github.com/features/preview/copilot-x

さて、GitHub Copilotの他にも「**GitHub Copilot Labs**」と「**GitHub Copilot Nightly**」というサービスがある。
**GitHub Copilot Labs**は、コードのバグ修正や言語変換、コードの説明、他にもロバスト化など様々な機能がついたもの。詳しくは後ほど。

GitHub Copilot Nightlyは、まだ開発中の新機能を使えるベータ版のようなもので、GitHub Copilotを使うか、Nightlyを使うかを選ばないといけない。（僕はNightly使ってる）

### 学生は無料
ChatGPTをすでに使った人はわかると思うけど、アレのプログラミング特化が無料で使えるなんて、神すぎる。

自分は友達から無料で使えることを聞いて、すぐに試したら、あっという間に虜になった。笑
この記事を参考にして申し込んだらすぐできたので、ぜひ。
必要なものは、大学のメアドと学生証のみ。

https://qiita.com/SNQ-2001/items/796dc5e794ac3f57a945

※学生証によっては、英語じゃないとダメなものもあるらしいけど、僕は日本語の学生証で数分で使えるようになった。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3179677/285b861f-f24d-331f-c03f-833b77209c0a.png)
使えるようになると、GitHubからこんな感じのラブレターが届く。

詳しくはGitHub Copilotだけを無料で使えるのではなく、GitHubのProプランを申請すれば無料で使うことができ、Proプランの一つとしてGitHub Copilotが使えるので、無料で神を味方につけられる。

従って、実はGitHub Copilotだけでなく、GitHub Student Developer Packにあるサービスが全て無料で使えるっぽい。（？）詳しいことはよくわからないけど、Global Campusがどうのこうのらしい。

GitHub、ありがとう。大好き。Apple信者だけど、Microsoft大好き。

### 使い方
僕はVSCodeを使ってるので、VSCodeの話になるが、使い方は簡単で、拡張機能から「GitHub Copilot」と「GitHub Copilot Labs」をインストールし、ログインするだけ。
（Labsの方は別途登録が必要だったかも。でも簡単なやつ）

https://marketplace.visualstudio.com/items?itemName=GitHub.copilot-labs

https://marketplace.visualstudio.com/items?itemName=GitHub.copilot

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3179677/347173af-a41b-14e4-63ae-23ab2af16d11.png)

これでインストールするだけ。超簡単。


https://docs.github.com/ja/copilot/getting-started-with-github-copilot

↑公式の記事はこちら

## GitHub Copilot Labs
https://githubnext.com/projects/copilot-labs

GitHub Labsは、これも拡張機能で、バグ修正、デバッグ、型付け、テストコード生成、コードの意味の説明など、面倒な部分をやってくれるCopilot神とは別の神のこと。
公式ページにはこう書いてある。

> GitHub Copilotの実験的なアプリケーションのためのVS Code拡張機能。
> 
> GitHub Copilotは、開発者向けの画期的なAIペアプログラマですが、私たちはコーディングの未来を探求し始めたばかりです。テクニカルプレビューの期間中、Copilotチームは提案の質を向上させ、安全機能を追加しました。しかし、Copilotがコード提案以外にも提供できる潜在的な助けを見るのは難しいことではありません。
> 
> 本日、GitHub Copilot LabsというVS Codeの拡張機能を発表します。この拡張機能は、GitHub Copilot 拡張機能とは別のもので、GitHub Copilot に依存しています。Copilotが一般提供に向けて前進している間、Labsは開発者の体験を向上させる機械学習の実験的なアプリケーションのための実験場となる予定です。
> 
> Copilot Nightlyをお使いの方でしょうか？その拡張機能にバンドルされていた以前のバージョンのLabsを使用していたかもしれません。私たちは、Copilot Nightlyのこれらの機能をすべてこの独立した拡張機能に移植しています。
> 
> Copilot Labsは実験的なものであるため、時折、不具合が発生する可能性があります。初期の機能を共有することで、何が有効で何が有効でないかを学び、フィードバックを取り入れたいと考えています。Labsの実験がGitHub Copilotの恒久的な機能になることもあればならないこともありますが、皆さんの協力があれば、将来の取り組みに反映させることができます。

まあ、バグはあるかもだけど、新機能使えるよーみたいな感じ。シンプルに新しい物好きなのですぐに入れた。

# GitHub Copilotを実際に使用した
さて、実際に使用した例を紹介する
## コメント文からコードを書いてくれる
コメント文を書くと、それを実現するコードを複数提案してくれる。その中から選んで、Tabキーを押すだけでコードが書かれる。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3179677/29db6860-1ae6-e702-854a-dda485fa82ed.png)

薄くなっているところがAIが提案してきたコード。完璧。あとはTabキーを押すだけOK。

初心者だとfor文ぶん回しゴリ押しコードを書いてしまいがちだが、Copilot神は的確なものを出してくれる。嬉しい。
もちろん、生成できるのは関数だけではない

<blockquote class="twitter-tweet"><p lang="ja" dir="ltr">あのー、僕一番上のコメント「# lightGBMでの学習と推論」って書いて、3回くらいTabキー押してコード補完して、あとCopilot Labsの「Fix Bugs」ってボタン一回押しただけなんですけど・・・ <a href="https://t.co/XiXjWBauPr">pic.twitter.com/XiXjWBauPr</a></p>&mdash; A7@データサイエンティスト×マーケ目指してる大学生 (@A7_data) <a href="https://twitter.com/A7_data/status/1647612531882737665?ref_src=twsrc%5Etfw">April 16, 2023</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>

これは僕のツイートだが、書いたコメント文は一番上だけ。
※一部いらないコードが含まれているが、ほぼ完璧。

## 関数名からもできる

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3179677/83a445e8-0cfe-c7d1-4ad3-516643bdb918.png)

関数名を英語で「どういう処理をしたいのか」を書くと、それについてのコードを提案してくれる。英語ができる人はとても楽にコードが書けるわけだ。

## 自分がこれまでに書いたコードをもとに、次のコードを提案
生成されるコードに使われる変数や構造は、これまでに自分が書いたコードをもとに提案されるので、わざわざ変数名を書き直す必要もない。いやー、便利ですわ。。

カウントボタンを作るとき、ボタンを作るコードを書いたら次は押された回数を表示する部分を作るコードを勝手に提案してきたり。
もう基本機能だけを作るなら、TabキーとEnterキーを連打するだけで終わっちゃう。。。

## GitHub Copilot Labsがやばすぎる
さて、ここまでCopilot神のパワーに注目したが、Copilot Labs神の機能も軽く紹介する。

インストールすると、左のタブバーにCopilotのロゴが現れ、そこを押すとこんな画面になる。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3179677/cbc2f25e-baee-fba2-6b8d-9698b93098a4.png)

**1. 一番上はコードの説明・カスタマイズなどが可能。**

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3179677/ac69ab25-e436-82ec-4eaf-96118840e965.png)

ChatGPTのように返してくれるので、これまでChatGPTにコードをコピペして聞いていたのがここでできるようになっている。ただ、やや回答がシンプルすぎる気がする。けどプロンプトをいじれるようになっているので改善はできそう。

**2. 2番目は言語を変換できる**
まだ使ったことないけど、ある言語で書いたコードを他の言語に変換できるっぽい。

**3. 3番目はコードをより良くするための機能がまとまってる。**
READAVBLE, ADD TYPES, FIX BUG, DEBUG, CREAN, LIST STEPS, MAKE ROBUST, CHUNK, DOCUMENT, CUSTOMがある。

完璧とは言えないが、上で紹介した僕のツイートのコードは、コメント文1行書いて、すこしコード生成し、あとはFIX　BUGを押したらできちゃった。 あのコードだけでも割と精度良さげな分析ができちゃうから、さすが神。といったところ。

** 4. 最後はテストコード生成。**
まだJavaScriptとTypeScript限定機能だが、テストコードの生成も可能。僕はPythonとSQLしかまともに書けないので、ありがたみがよくわからないけど、まあ多分便利なんでしょう。


# 最後に
## 感想
一言で言えば、やっぱり神。ただ、Copilot(副操縦士)というだけあって、Copilot神がなんでもやってくれるわけではないし、完璧な精度でコードが出されるわけではない。

つまり、あくまで自分のコーディングの超強力なアシスタント的な使い方になると思う。

何かの記事で見たけど、「Copilot導入したら46%の時間でコードが生成できた」と言われていたので、十分すぎる。時間だけじゃなくて労力も少ないし。

僕はこれからもどんどん活用しようと思う。ただ、これに頼り切っていてはスキルが磨かれないので、ちゃんと勉強のためにも自分でイメージしたものとの差を見て反省に使うとかしていきたい。

<blockquote class="twitter-tweet"><p lang="ja" dir="ltr">ハイボール5杯くらい飲んだけどちゃんとプログラミングできるのもGitHub Copilotのおかげ</p>&mdash; A7@データサイエンティスト×マーケ目指してる大学生 (@A7_data) <a href="https://twitter.com/A7_data/status/1649049738849968129?ref_src=twsrc%5Etfw">April 20, 2023</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>

ちなみに、ハイボール5杯飲んだ後でも余裕でコーディングできちゃうくらいの便利さではある。

## 僕の普段の活動
今日はGitHub Copilotの使い方について簡単にまとめたが、普段はデータサイエンティストを目指して日々勉強している大学生。
ツイートもちょくちょく紹介したけど、フォロワーは2023年4月時点で3800人ほど。

無料の優良教材を大量に発信したり、みんなのモチベを上げられるように活動しているので、ぜひ見てみてね

僕のツイッター→<a href='https://twitter.com/A7_data'> @A7_data</a>

https://qiita.com/mohki7/items/c3f26916d79a0e3269cc

無料の優良教材と僕の詳しいプロフィールはこちらから。
## 参考記事

https://qiita.com/SNQ-2001/items/796dc5e794ac3f57a945

https://giginc.co.jp/blog/giglab/github-copilot

https://zenn.dev/riya_amemiya/articles/ed4e71fd4108d7

https://qiita.com/tak001/items/9ef12a924469b0370c01