Github Copilotの生産性、セキュリティ、使ってみた所感

生成AI

はじめに

今回は開発チームにGithub Copilotを導入するため、サービスについて色々調査した内容になります。
サービス概要については触れませんので、大枠は知っている前提の記事になります。

サービス詳細

主な対応言語Python、JavaScript、TypeScript、Ruby、Go、C#、C++ 
エンジンGPT-3.5 または GPT-4
対応IDEVisual Studio、 VS Code、JetBrains、Neovim

エンジンに関しては、コスト削減のためGPT-3.5を混ぜて運用しているようです。
例えばChat形式のやり取りはGPT-4、一問一答形式のやり取りはGPT-3.5のように、機能やIDEによって切り分けているとのことです。
これに関してはコミュニティでのやり取りでVisual StudioのGithub Copilotのプロダクトマネージャより回答があったので間違いないかと思います。

Yes, both models are in play. Each model is being used where it is most effective. We’ll have more nitty-gritty details in an upcoming blogpost, stay tuned.

This is still true today.

AFAIK, Inline Chat (i.e. Alt + / in your code editor) uses GPT 3.5.
I believe the chat panel should be using GPT4 in most scenarios in Visual Studio.

https://github.com/orgs/community/discussions/58059

導入効果

あまり積極的な情報がなかったため、古くはなりますが、Github主導の2022年の調査がありました。

調査:GitHub Copilotが開発者の生産性と満足度に与える影響を数値化
GitHub Copilotはタスク完了までの時間短縮をサポートし、開発者の精神エネルギーを節約し、より大きな満足度が得られる作業に集中することに役立ち、さらに、最終的にはコーディング中により多くの楽しみを見つけられることが明らかになりまし...

調査内容

調査1 – 2000人の利用者への満足度調査

  • 開発者の満足度の向上:ユーザーの60~75%が、GitHub Copilotを使用することで仕事に満足感を覚えている。
  • 精神エネルギーの節約:73%のユーザーが「GitHub Copilotがフローの維持に役立った」と回答し、87%のユーザーが「GitHub Copilotが反復作業における精神エネルギーの維持に役立った」と回答。

調査2 – 開発者95名でHTTPサーバー構築スピードの比較調査

  • GitHub Copilotを使用した開発者は、GitHub Copilotを使用しなかった開発者よりも126%速くタスクを完了した。
  • 上級者より初心者の方が、より恩恵を受けやすい

調査結果の所感

情報が古いのと、サービス提供元の調査というところが少し胡散臭さはありますが、AIを使うことで開発者の負担が減り、生産性が上がることは確かだと思います。

ただ、126%というところに関しては以下も一緒に考慮したほうが良いと思います。

  • 3時間にも満たない実装での比較している点
  • ビジネスロジックを含まない、ミドルウェアに対する実装なので、AIがよく機能した点

セキュリティ・著作権対策

企業にとってGithub Copilotを使用して考えられる問題点はソースコードの流出と、AIによる外部のソースコードを著作権の侵害がよく挙げられます。
この2点に関して、Githubでは有料プランにユーザーに対して以下の対策を行っています。

  • オンライン上のソースコードをAIがそのまま提案しないよう設定が可能(著作権対策)
  • AIがソースコードを学習しないように設定(ソースコードの流出対策)

万が一、Copilotの提案によって他者から著作権侵害で訴えられた場合、上記の設定を行っていれば、Githubが保証人になってくれるみたいです。具体的な補償はわかりませんが。

以下にCopilotの条約があります。

GitHub · Customer agreements
GitHub Customer Agreement consists of the following terms, as applicable and depending on your purchase.

一部抜粋すると、下記の箇所に著作権侵害に対する防御について書いてあります。

  1. Defense of Third Party Claims.
    If your Agreement provides for the defense of third party claims, that provision will apply to your use of GitHub
    Copilot, including to the Suggestions you receive. Notwithstanding any other language in your Agreement, any
    GitHub defense obligations related to your use of GitHub Copilot do not apply if you have not set the Duplicate
    Detection filtering feature available in GitHub Copilot to its “Blocked” setting. You can learn how to enable the
    Duplicate Detection filter at gh.io/cfb-dd.

Visula Studio(C#)での所感

Visual StudioでC#を開発している場合は、デフォルトでIntelliCodeというAI機能が入っているので、予測入力が既にできるようになっています。Copilotと違い、テスト書いてもらってり、関数を書いてもらったりはできませんが、書いている途中でその後のコードを良い精度で提案してくれます。個人的にはC#ならCopilotなくてもいいかなと思ったりします。

詳細はMicrosoftより説明があります。

Visual Studio 用 IntelliCode
Visual Studio 用 IntelliCode の概要を説明します。 プレビュー機能、サポートされている言語、前提条件、問題のトラブルシューティング、テレメトリについて説明します。

要点

  • C#ではプロジェクトごとのコードを学習し、より精度の高い提案をIntelliCodeが行う
  • C++ではGithubCopilotを使うと、精度の高い提案を期待できる。

原文

以前のバージョンの IntelliCode では、コードに関してモデルをトレーニングする方法が提供され、チーム固有の API フレームワーク、ライブラリ、およびその他のユーザー プロジェクトに対しては、並べ替えられたメソッド入力候補が提供されていました。 この機能は、コンピューターで実行されるディープ ラーニング モデルに置き換えられ、C# ユーザーが自由に利用できるようになりました。 IntelliCode カスタム チームの入力候補モデルからディープ ラーニングへのアップグレードに関するブログ記事を参照してください。 IntelliCode は、すべての Visual Studio ユーザーが無料で利用できます。

C++ ユーザーの場合は、AI 支援コード開発用の GitHub Copilot にサブスクライブできます。 GitHub Copilot と Visual Studio IntelliSense の連携により、コード入力候補の質が向上します。Visual Studio の IntelliSense の一覧で GitHub Copilot コード入力候補を利用可能になったことに関するブログ記事を参照してください。 GitHub Copilot にはサブスクリプションが必要ですが、無料試用版で評価することもできます。

Github Copilot Chat

IDEによってはGithub Copilot Chatが使えます。
基本のGithub Copilotはコードを書いている途中に、後続の処理を推測し、提案をおこなってくれますが、Github Copilot Chatはその名の通り、Chat形式でAIに要求が出せます。ChatGPTがIDEに統合されたような感覚ですね。
Github Copilotのアカウントがあれば、こっちも同様に使えるのでお得です。

チャット形式で質問を投げることができ、参照して欲しいコードもこちらから指示できます。
そのため、コードの不明点を説明してもらったり、対象の関数のテストコードを書いてもらったりできます。

対抗サービスの「Codeium」

Codeium · Free AI Code Completion & Chat
Codeium offers best in class AI code completion, search, and chat — all for free. It supports over 70+ languages and int...

噂だとGithub Copilotより優れているらしいコーディング支援AIサービスです。CodeiumはGithub Copilotとの比較表をサイトに載せています。

Codeium vs Github Copilot | Codeium · Free AI Code Completion & Chat

すべてにおいて優っているようですが、実際に使って比較まではしていないので、わかりません。

おわりに

私の使い方としては、自身の練度が低い言語では、AIを教師のような使い方をしています。
逆に練度の高い言語では、テストコードの作成くらいに使っています。
精度が高いわけではないので、別途情報の確認をしたり、テストを修正したり、まだまだそういったコストはありますが、今後改善されるといいですね。

テストを書いて、実装はAIにしてもらうTDDをできる日が楽しみです。

タイトルとURLをコピーしました