GitHub Copilotの機能はコーディング支援にとどまらない
GitHub Copilotはいち早く「Copilot」を冠することになったプロダクトだ。業務に生成AIが有用であることを証明し、エンジニアの開発生産性を急速に高める契機となった。開発でコーディングするエンジニアなら、GitHub Copilotまたは何らかの生成AIを日常的に使用していることだろう。
GitHubの調査によるとGitHub Copilotは開発業務を55%高速化し、コード品質を15%高めるという結果が出ている。生産性向上は疑いの余地がないところだ。ただしソフトウェア開発のための作業はコーディングだけではない。エンジニアの業務時間のうち、コーディングを中心とした開発作業は25%程度。それ以外の75%は調整のための会議、資料作り、リサーチなどに費やされている。
ギットハブ・ジャパン シニアカスタマーサクセスアーキテクト 服部佑樹氏は「ありがたいことにGitHub Copilotは多くの方に使われていますが、Visual Studio Codeのプラグインで終わってはいけないと分かっています。GitHubがソースコードホスティングのプラットフォームから、いかにAI駆動の機能を埋め込んでいくかが勝負どころだと思っています」と話す。
具体的には、まずGitHub Copilot EnterpriseがGAで提供されていて、他にも「モデルのファインチューニング」や「GitHub Copilot Extensions」が限定公開されている(詳しくは後述)。服部氏は「いまGitHub Copilotが進んでいる世界は従来のエディターから飛び出て、いかにソフトウェア開発ライフサイクルに行くのか。エージェントとしてアクションをするか。こうしたものを担うAIをターゲットとしています」と説明する。
なおAIというと、プロンプトエンジニアリングが想起されがちだ。しかしGitHub Copilotではツールの使いこなしや、自分の開発対象となるコンテキストにAIをどう駆使していくのかがテーマとなる。プロンプトエンジニアリングとは少し違う世界だ。
プロンプトエンジニアリングが特に求められる場面というのは、例えばユーザーからの問い合わせに回答するチャットボットで安定した精度や品質が求められるところや、何らかのファンクションコールをする場面で正しいものをコールできるようにするところになる。
一方、エンジニアの作業は「1回きりの作業で創造性を含むものが多い」と服部氏。そうした時にAIに求めるものはモデルとしての精度は重要ではあるものの、それだけではない。ツールがどれだけ実用的かが重要になる。
例えばGitHub Copilotのエディターでコーディングしてコード補完で20秒待たされたら集中力が切れてしまうし、精度の高い回答を求めてチャットウィンドウに切り替えたのに精度が低かったらがっかりしてしまう。つまりそれぞれのツールごとに期待値が異なるため、GitHubでは期待に合わせてAIモデルを使い分けることもしている。
2024年7月時点では、自動補完型(GitHub Copilot)では速さ優先でGPT-3.5 Turbo、ボット型(GitHub Copilot Chat)はGPT-4o、エージェント型(GitHub Copilot Workspace)はGPT-4oを主に使用することにしている (言語モデルはGitHubの開発チームにより適宜評価され、機能に最適なものが選定される)。