Github Copilotすごいよね
Github Copilotの長所
- 生産性が上がる!
Github Copilotの欠点
10$/month(or 100$/year)かかる
僕如きの生産性をいくら向上させても10$/monthの元を取れる気がしないよー😢
ということで、無料で使えるやつがないか調査して、実際に試せるものは試して定量的に評価して表にしました。
評価基準はすごく適当なので正確なものではないですが、参考になればと思います。
extension一覧、それぞれの簡単な解説、評価結果の順に記載します。
2023/08/06時点でのCopilot系Extension一覧
網羅的ではありません。
vscodeのextensionの検索画面で"copilot"とか"AI"とかを入力して、出てきたものを上から見ていって探しました。
- Github Copilot
- Fauxpilot
- Tabby
- AWS Toolkit(のCodeWhisperer)
- Tabnine
- Blackbox
- Codeium
- CodeGeeX
- EasyCode Copilot Chat
各Extension簡単解説
Github Copilot
一番有名なやつですね、githubが持ってるサーバー上でモデルが動くのでよわよわPCでも大丈夫です。
現時点では、登録して30日間は無料なので、無料期間中に調査しました。
ちなみに学生は無料らしいです。
Fauxpilot
localのPCのGPUでモデルを動かすので、NVIDIA GPUの入っていないPCだとそもそも動かないと思います。
GPUの最低要件は以下のようです。
- 2GB VRAM
- Compute Capability 6以上
選択できるモデルはいろいろあるのですが、今回の調査では私の持っているGPUの都合上、最低要件で動くSelesForce CodeGenモデルを選択しました。
Tabby
こちらもlocalで動かす系のものです。cpuでも動かせるとのことだったのですが、私のPCではうまく動かなかったので調査を断念しました。
AWS ToolkitのCodeWhisperer
AWS Toolkitという拡張機能に入っている機能です。
AWSのサーバー上でモデルを動かしてくれているっぽいので、よわよわPCでも使えます。
個人なら無料で使えます。
Tabnine
無料版と有料版があり、無料版では単語ごとの補完機能しかないようです。有料版については、公式のPricingのページになぜか飛ぶことができなかったのでよくわかりません。
無料版はしょぼすぎるため今回は調査を割愛しました。
Blackbox
chat機能もついてます。
chat機能は無料なんですが、コード補完機能は有料で1$/month
かかります。しかも回数制限があって、無制限でコード補完したい場合、2$/month
のPlanに加入しないといけないようです。
お金がかかるので割愛します。
Codeium
アカウント登録が必要ですが、無料でコード補完機能が使えます。
chat機能もついていてお得感はあります。
どっかのサーバー上でモデルを動かしてくれるタイプです。
CodeGeeX
Codeiumとだいたい同じです。
EasyCode Copilot Chat
chat機能がメインそう。コード補完機能も実験的に公開しているようですが、登録しても動きませんでした。私が何か間違っている可能性もありますが、今回は調査を断念しました。
評価結果
結果
先に載せておきます。
name | 複数候補表示 | 補完切替 | はやさ | 賢さ | 挿入ミスなし |
---|---|---|---|---|---|
Github Copilot | T | T | 5 | 5 | T |
Fauxpilot | F | F | 5 | 2 | F |
AWS Codewhisperer | F | T | 0 | 4 | F |
Codeium | F | T | 3 | 4 | T |
CodeGeeX | T | F | 1 | 0 | T |
テスト方法
atcoderの適当な問題の回答コードをPythonで用意し、これを写経しながら各extensionを使用しました。
評価基準は以下5つです。
- 複数候補表示機能があるか
- 補完切替機能があるか
- 補完のはやさ
- 補完の賢さ
- 挿入ミス(バグ?)がないか
複数候補表示機能
Github CopilotのCtrl+Enter機能です。
複数の補完候補を同時に確認して選択することができる機能です。
補完切替機能
Github CopilotのAlt+],Alt+[機能です。
現在表示されている補完を別のものにできます。
はやさの定義
特定のタイミングを5つ指定して、そのタイミングで補完がすぐに表示されるかどうかを見ました。
そのタイミングですぐ表示されたら、1点加点として、5点満点で評価しました。
賢さの定義
これもはやさ同様、特定の補完が正しく提示できるかを確認しました。5点満点です。
挿入ミス
一部のextensionでは、補完を行うと閉じ括弧が余ってしまう現象が発生しました。補完を確定して文章に挿入する処理がうまくいってないのだと思います。私の環境がおかしいだけかも...?
まとめ
表を再掲
name | 複数候補表示 | 補完切替 | はやさ | 賢さ | 挿入ミスなし |
---|---|---|---|---|---|
Github Copilot | T | T | 5 | 5 | T |
Fauxpilot | F | F | 5 | 2 | F |
AWS Codewhisperer | F | T | 0 | 4 | F |
Codeium | F | T | 3 | 4 | T |
CodeGeeX | T | F | 1 | 0 | T |
Github Copilotが強いことを改めて確認させられました。補完が優秀すぎて、ここは補完が出ないだろうと思っている箇所でも自分が書こうとしていた通りの補完が出てびびります。
Fauxpilotは私のGPU的に一番軽量なモデルしか使えなかったので、あまり賢くなかったです。賢くなくても、補完はかなりはやかったので是非使いたいんですが、挿入ミスが発生して閉じ括弧が無駄に生成されてしまうのが致命的です😢
AWSのは頭でっかちで遅すぎるので使えないです。挿入ミスも発生しました。
Codeiumは微妙に遅いんですが、他はまあまあいいので、Github Copilotの無料枠が切れたらこれを使おうかなと思います。
CodeGeeXは、遅すぎるし補完も的外れだったので残念です。
結論
お金があるならGithub Copilot一択!
お金がないけど強いGPUを持っているならFauxpilotを試そう!
何にも持ってない人はCodeiumがおすすめ!