GitHub Copilotで拓く開発生産性のイベントに参加しました

2023.09.01

先日、Timeeさん主催のこちらのイベントにオフラインで参加しました!

概要

GitHubに所属されている方やそうそうたる企業様の方がGitHub Copilotに関するLTをされました。

GitHub Copilotの裏側のロジックに関する内容や各社さまが業務でどのように使っているかなどの話がメインとなっており、とても学びと参考になるイベントでした。

GitHub Copilotについて

VSCodeの拡張プラグインの利用を前提としたお話でした。

OpenAIのモデルを使用しているため、一般的なAPIを利用する上でのトークン量の制約などは制御しながら実装されているとのことでした。

あくまで、ツールとして活用すべきであり、進化や変更が激しい領域であるため、どうやったら良い提案がされるのか?といったことはあまり気にせずに利用した方が良いというお話をされておりました。

現状では内部的にはコードを提案する上で以下を参照しているようです。

  • 最初の行を読んで言語を判別している
  • 最近開いたタブを見ている(全部は見れないので、FIFO)
    • 最新ファイルかここを読みだろうと類推している
  • ライブラリを使用している場合には、VSCodeで定義に移動していくとライブラリの中身もCopilotが見てくれるようになる

私も数ヶ月前から利用しておりますが、VSCodeでエディタを左右に分割にしておくと、隣のファイルの内容を基に提案してくれるような挙動だったので、やっぱりそうだったのかと納得できました。

一貫性のあるコーディングスタイルをすることで、提案の質も上がるとおっしゃっており、変数名もテキトーにfoo, barとか付与するのではなく、命名規則はきちんとした方が良いとのことでした。

セキュリティーの話とCopilotの提案は進化しないのでは?というお話

とても印象的だったのは、セキュリティー周り、Publicリポジトリが学習データであることや新しいフレームワークなどが登場した場合に提案の進化があるのか?といった内容でした。

セキュリティーについて

GitHub Copilot 導入時に考えたセキュリティのあれこれに記載されておりますが、著作権に関してはまだ曖昧なところがあるので、提案されたコードをそのまま使うというのは避けるなどをしたほうが良いと認識しました。

Copilotの今後について

確かにCopilotはpublicのリポジトリしか教師データに出来ず、自身が提案したコードを再帰的に強化学習していくとなると新しく学習しなくなるのではとなりますし、過去に提案した内容を受け入れるだけになると新しいコーディングスタイルなどは生まれることはないのでは?という話でした。

また、関連ですが、Terraformのコードはなかなか良いものが提案されないという話がありました。企業でTerraformを使っていることが多いから、つまりprivateのリポジトリであることからCopilotが学習できないので、良いコードを提案できないのでは?という話もあり、なるほどなとも感じました。

Copilotに限った話ではなく、AIツール全般として、ツールを活用して効率良くコードを書きつつも新しいことに人間がチャレンジしていくことが大事であるということでした!

所感

AIツールによって、生産性が爆上がりしたことは実感しております。

個人的には以前に似たようなコードを書いたことがあったり、やったことがない時のアシスト部分で活用することが多く、あくまで意思決定するのは人間であること意識して疑いを持ちつつ活用するようにしています。

一方で依存している事実もあり、頼り過ぎているので、その点は上手く付き合っていきたいなと思いました。

とはいっても活用することで生産性が上がってやりたかったことができる時間がより作れるようになったので、この先もある程度の金銭的なコストがかかるとしてもそこは惜しまずに投資して自身のスキル、所属している会社のレベルアップや利益向上に繋げられるようにやっていきたいなと思っております!!

めちゃくちゃ学びになりました。ありがとうございました!!

お読みくださりありがとうございました。