2025/04/24
アトラスのソースコードは30%がAI生成!?GitHub Copilotのメトリクスを取得してみた
目次
こんにちは、カズシです。皆さんの開発現場ではAIツールを活用していますか?毎日のように新しいツールや言語モデルが発表されて、情報のキャッチアップが大変ですよね。
アトラスでは、2023年5月からAIによるコーディング支援ツールであるGitHub Copilotを導入し、コーディングに携わるエンジニア全員が日常的に利用しています。直近ではGitHub Copilotによるプルリクエストのコードレビューを導入するなど、まだパブリックプレビュー中の機能を含めて、新機能の活用方法を模索することで、開発の効率化を図っています。今回は定量的なデータから、アトラスのGitHub Copilot活用状況をご紹介します。
GitHub Copilotの利用状況を可視化してみた
GitHubは過去28日間のGitHub Copilotの使用状況を取得できる、GitHub Copilot Metrics APIを提供しています。今回は、このAPIレスポンスを簡単に可視化することができる、copilot-metrics-viewerを利用しました。copilot-metrics-viewerやAPIの具体的な利用方法については、様々な記事で紹介されているため割愛します。それでは結果を見ていきましょう。
アトラスのソースコードは30%がAI生成!?
GitHub Copilotは月間で5万6千行以上のコードを提案し、そのうち1万行以上が採用されています。同期間のプルリクエスト差分行数の合計である、3万5千行から計算すると、30%以上のコードがGitHub Copilotによって生成されたことになります。実際には採用されたコードを後から人間が修正したり、プルリクエストにコミットする前には削除されてしまうケースも多いので、正確な値はもう少し低くなるはずですが、それでもGitHub Copilotのインパクトが大きいことがわかります。
Copilotによる提案の採用率は約30%
提案の採用率は回数ベースで31.19%となりました。他社のメトリクスを公開している記事を見ても、同じく30%前後であることが大きかったので、平均的な値と言えるでしょう。行数ベースの採用率は21.81%と、回数ベースより低い値となりました。これは、1回の提案で生成される行数が少ない方が採用されやすいことを示しています。実際にCopilotを利用している私の体感としても、数行の提案は期待通りの出力が多く、大きな変更だと意図しない出力となり、却下するケースが多いので、納得のいく結果です。
プログラミング言語による差は少ない
主要な開発言語に関しては、Kotlinの採用率が若干高いものの、言語による差はあまりありませんでした。Kotlinのコード生成精度が高いのか、プロジェクトが良い提案を受けやすい状態なのか、はたまた今月Kotlinを開発していたユーザーがGitHub Copilotを活用するのが上手いのか、今後も継続してメトリクスを取得して、分析していきたいと思います。
また、GitHub Copilotでは、特に意図していなくても勝手に提案されるため、提案回数は、集計した月に開発組織で利用されている開発言語の割合として捉えることも出来るでしょう。個人的にはplaintextが提案された回数Top10にランクインしているのが印象的でした。きっと私以外にも、エディタを日常的にメモ帳代わりに利用している仲間がいるのでしょう。
エディタはIntelliJ IDEAとVSCodeの2強
利用されているエディタはJetbrains(IntelliJ IDEA)とVSCodeの2つと、言語別よりもさらにシンプルになりましたね。採用率は回数ベース、行ベースともにJetbrainsの方が約7%高いという結果になりました。こちらも、言語別の結果と同様に、継続的に傾向を分析していきたいです。
Copilot Chatの採用回数の仕組みは?
Copilot Chatは1日100回前後の利用数となっている日が多いようです。Copilot Chatにおける、採用は何を指しているのだろうか?Copilot Chatの回答生成後に表示される「役に立った」ボタンを他のメンバーは律儀に押しているのだろうか?と疑問に思いました。
copilot-metrics-viewerのソースコードを確認したところ、Chatで生成されたコードをコピーしたり、ファイルに挿入した回数 (Metrics APIレスポンスのtotal_chat_copy_events、total_chat_insertion_events) を集計しているようでした。
終わりに
これまで、「GitHub Copilotを導入して効果があったのか?」と聞かれても、「便利で開発者体験もよくなったので、きっと生産性も上がっているはず」という主観的な回答しかできない状態でした。今回メトリクスを取得したことで、GitHub Copilotが開発に貢献しているという事を示す、定量的なデータを得ることができました。今後も継続してメトリクスを取得し、GitHub Copilotを更に活用する術を模索していきたいと思います。