連載 [第4回] :
  GitHub Universe 2024レポート

GitHub Universe 2024から、Copilotの新機能を紹介するセッションを紹介

2025年2月12日(水)
松下 康之 - Yasuyuki Matsushita
GitHub Copilotの新機能をMicrosoft、Adobeのエンジニアとともに解説したセッションを紹介する。

ここ最近のGitHub UniverseのメインのトピックはAI、およびその実装形であるCopilotと言っても過言ではないだろう。今やGitHubだけではなく、親会社のMicrosoftもそのブランディングに乗っているほどのトレンドだ。今回はそのCopilotの新機能を紹介するセッション、「GitHub Copilot:Leading the AI revolution in software development」というセッションを紹介する。

登壇したのは、GitHubのProduct ManagementのVPであるShuyin Zhao氏、MicrosoftのVisual Studio Codeの開発チームからHarald Kirschner氏、AdobeのDeveloper PlatformのGurpartap Sandhu氏、GitHubのProduct ManagementのシニアディレクターSimina Pasat氏の4名だ。MC役をZhao氏が担当し、それぞれMicrosoft、Adobeの登壇者を紹介し、最後にGitHub.comでのCopilotの新機能を解説するという流れになっている。動画は以下を参照してほしい。

●動画:GitHub Copilot: Leading the AI revolution in software development

MicrosoftとAdobeのエンジニアを招いて解説させるお得意の手法

MicrosoftとAdobeのエンジニアを招いて解説させるお得意の手法

MC役のZhao氏は「Copilotが大きな成功を収めていること」「すでに7万7000社のユーザーが利用していること」などを挙げて、Copilotが広く支持されていることを説明した。そしてこのセッションでは3つの軸に沿って解説を行うとしてその項目を挙げた。

Copilotの最新機能などを3つの軸でデモと解説を実施

Copilotの最新機能などを3つの軸でデモと解説を実施

その軸とはデベロッパー向けには「品質と体験」、エンタープライズ向けには「カスタマイズ性と信頼性」、そしてソフトウェア開発のライフサイクルの視点では「GitHubとの統合」となり、それを順に解説するというのがこのセッションの大筋である。

プログラミングのアシスタントとしてコード生成とコードの修正が最初の機能としてCopilotにおいて実装されたが、それをさらに進化させて特定のプログラミング言語に特化したコード生成を行うというのが最初に紹介された機能だ。

ここでは.NETフレームワークを使ったコーディングに特化したモデルを紹介

ここでは.NETフレームワークを使ったコーディングに特化したモデルを紹介

.NETをこの機能の最初の対象として選んだ理由は何も説明されておらず、さりげなく語られているが、親会社であるMicrosoftの企業ユーザーが.NETのアプリケーションを多数保有しており、すでにレガシーとなりつつあることを考えると、システムの保守や脆弱性などの改修のためにCopilotの力を借りたいと思うのは妥当だろう。

またプログラミングのコンテキストに対応した自動修正の部分では、C++のコード修正の際に対応するヘッダーファイルをVisual Studio Codeでオープンしていなくても、自動的にヘッダーファイルに対しても修正を加えるという機能が動画で紹介された。

Visual Studio Code特化の機能紹介

ここでMicrosoftのHarald Kirschner氏が紹介され、ここからVisual Studio Codeに特化した機能の解説に移った。

最初に紹介したのはVisual Studio Codeで利用するモデルを選択できることだ。動画のデモではGPT 4oだけではなくClaude 3.5 Sonnet、Gemini 1.5 Proなどから利用するモデルを選択できることが示されている。

そして最初のデモとしてCopilotに3Dのチェスゲームのコードを生成させ、即座にそれが実行できることを見せた。使っているモデルはOpenAIのChatGPT o1-previewであり、このモデルはGPT 4oに比べてプログラミングコードの生成においてGPT 4oよりも高い性能を持っていることで知られている。

o1-previewを使って3Dチェスゲームを生成

o1-previewを使って3Dチェスゲームを生成

さらにそのコードに対して修正を加えるデモを見せた。ここではGPT 4oにモデルを切り替えてチェスの駒に影を追加するコードを生成、即座に実行してそれが動いていることを説明した。

チェスの駒に影を追加するコード修正を実施

チェスの駒に影を追加するコード修正を実施

次にゲームではなくより業務に近いアプリケーションとして、マラソンの記録を表示するというアプリケーションを紹介。ここではCopilotのコード生成に個別のルールを追加するカスタムインストラクションの機能をデモで見せた。

コード生成をカスタマイズするカスタムインストラクションを紹介

コード生成をカスタマイズするカスタムインストラクションを紹介

これはマークダウン形式でCopilotに対してプロンプトを与える形式になっており、概要、利用するライブラリーの指定(ここではSvelteKit 4)、データベースの種類、テストの種類などが設定されている。短かなプロンプトでは表現できない内容を設定し、Copilotに与えられる点が強みだろう。

また単一のソースコードだけではなくアプリケーション構築に必要な複数のファイルに対してコードを追加、修正する機能を見せた。これはZhao氏が見せたC++のソースコードに手を加えることで、同時にヘッダーファイルをCopilotが修正したことと同じ機能だ。UIフレームワークのSvelteのコードに対しても行えることを示して、現実のアプリケーションにおいて有効な機能であることを示したと言える。これはEdit with Copilotというプレビュー段階の機能となる。

複数のファイルに対して修正を行い、保存する機能のデモ

複数のファイルに対して修正を行い、保存する機能のデモ

実際にコードが修正され、マラソンランナーの上位リスト表示が改善されたことを見せた。

よりリアルなアプリケーションのように修正されたリスト表示

よりリアルなアプリケーションのように修正されたリスト表示

またテストの結果から修正すべきコードを指摘するデモを見せた。ここではユーザーの入力に対してエラーを返す部分において、エラーメッセージが適切ではないという部分を指摘し、それを修正するという内容だ。

次に見せたのはVisual Studio Code Extensionsだ。これはVisual Studio Codeを拡張するためのプラグインであり、すでにマーケットプレイスとしてさまざまな拡張機能が公開されている。その中からMermaidというエクステンションを使ったデモを見せた。Mermaidは、JavaScriptの構造をマークダウンからダイアグラムとして表示するというものだ。

データベースのスキーマをダイアグラムとして表示

データベースのスキーマをダイアグラムとして表示

ここまでがEdit with Copilotのデモとして実行され、単にコード生成だけではなくより広い範囲で使えることを示したと言える。

最後にまとめとして複数のモデルから選択できること、Editモードで使うCopilot、エクステンションの利用などを説明してMC役のZhao氏と交代した。

交代したZhao氏が説明したのはApple謹製の開発環境であるXcodeにおいて、Copilotがパブリックプレビューとなったことだ。GitHubユーザー、特にオープンソースコミュニティにはAppleユーザーが多いという想定の元、Xcodeユーザーも忘れていないという意思表明だろう。2023年のGitHub UniverseではJetBrainのIDEサポートが表明されたのと同様に、ここでもコミュニティに対するGitHubの気の遣い方が垣間見えたとも言える。

AppleのXcodeにも対応するCopilot

AppleのXcodeにも対応するCopilot

Copilotで企業向けモデルを利用する

次に解説したのは、企業向けにファインチューンされたモデルをCopilotが利用する機能だ。この機能はすでにAMDやLyft、アルゼンチンのEC企業であるMercado Libreなどで使われていると説明。デモでは実際にモデルとプログラミング言語を選択し、企業の自家製ライブラリーやAPIに特化したコードが生成されるところを動画で見せた。またMicrosoftがVisual Studio Code Extensionsを紹介したのと同様に、Copilot Extensionsも紹介。Visual Studio Codeと同様にCopilot自体もプラグインで拡張できることを訴求した。ここではAtlassianとDataStaxのエクステンションを紹介。また企業向けにはプライベートなエクステンションを利用できるとして紹介したのがAdobeだ。

ここでAdobeのGurpartap Sandhu氏と交代。ここからはすでに大規模にCopilotを使っているユーザーとしてのAdobeが自社での事例を解説するフェーズとなった。Sandhu氏は13,000人のデベロッパーの55%がCopilotを使っていること、毎日7万行のコードがCopilotを使って生成されていることなどを説明し、Adobeでの導入がスムーズに進んでいることを説明した。

Adobeも自社に特化した文脈を理解し、コード生成するモデルの必要性を説明

Adobeも自社に特化した文脈を理解し、コード生成するモデルの必要性を説明

Adobeのソフトウェア開発の生産性のプリンシパルの説明から、一般的なLLMではなく自社の状況に応じたコードを生成する必要があることを語った。Adobeで利用されているコーディングアシスタントはADA(Adobe Developer Assistant)と呼ばれ、一般的なコーディングに関する知識ではなく、自社製ライブラリーやコンポーネントに特化したデータが集約されていることをデモで示した。ここでは素のCopilotとADAに同じ質問を入力して、その違いを見せるという内容となっている。

この機能は「新たにチームに加わったエンジニアが開発のための環境を準備するためにはなにが必要か?」といった質問にも答えることが可能になっているとして、デベロッパーのオンボーディングにも利用できることを説明した。

JavaのアップグレードにもCopilotを利用

Zhao氏が交代し、次に説明したのはJavaのアップグレードのためのアシスタント機能だ。.NETと同様に、多くの企業で使われているJavaの開発環境をアップグレードするためにCopilotを使うというものだ。デモではJDK21にアップグレードするために既存の環境を分析し、どのモジュールを何のバージョンにアップグレードすれば良いのかを提案するところを紹介。これも企業ユーザーのペインポイントを癒すための新機能となる。アップグレードのために必要なステップをリストアップするなど、ユーザーが途中で迷わないような配慮もされ、エラーが発生したらその修正部分を提案するところなども動画では紹介されている。この機能はテクニカルプレビューとして公開され、利用するためには登録が必要となる。

Javaをアップグレードするための面倒な手順をCopilotがアシストする機能

Javaをアップグレードするための面倒な手順をCopilotがアシストする機能

Copilotが利用するデータを制限する

ここまでカスタムインストラクション、ファインチューンされたモデルの利用、Javaのアップグレードと企業向けの機能が続いて説明されたが、次に言及されたのはモデルに利用されるデータを排除するためのコンテントエクスクルージョンの機能だ。

Copilotが利用するデータを制限するコンテントエクスクルージョン

Copilotが利用するデータを制限するコンテントエクスクルージョン

同様の機能として、Copilotが引用するコードの引用元、そのライセンスなどをCopilotが表示するCode Referencingも紹介。ここでも企業内でCopilotを使う際に、ライセンスの問題をなるべく排除したいという企業ユーザーの要望が形になったという機能になる。

最後に、ここで紹介した機能以外にもエンタープライズ向けには多くの新機能が用意されているとして紹介したのが次のスライドだ。

企業向けの新機能の予定を紹介

企業向けの新機能の予定を紹介

ここではEnhanced Metrics API、Engagement Dashboards、Usage Dataset、System-level Outcomesなどが、今後実装される機能であると説明。これらについては来年のGitHub Universeに期待して欲しいという意味だろう。

CopilotとGitHub.comの連携機能

最後に登壇したSimina Pasat氏はCopilotがGitHub.comと連携する機能の紹介を行った。

GitHub.comと連携する機能を紹介

GitHub.comと連携する機能を紹介

Pasat氏はCopilotがGitHub Issuesと連携して問題のスレッドを要約したり、Actionsで発生したテストエラーをCopilotに説明させる機能を紹介。またCopilotをコードレビューの担当者として利用することで、コードレビューに必要な工数を減らすことができることなどを説明し、Copilotを使った開発をGitHub.comとともに使って欲しいという訴求を行った。GitHub Workspacesに関する細かな機能追加も含めて、主にGitHub Enterprtise Cloudのユーザーにとっては最も魅力的な機能と言えるだろう。ここでも企業向けのメッセージを届けたいという意図を感じるセッションだったと言える。

多くの機能はプレビューの段階だが、これまで企業ユーザーから求められていた機能を着実に実装していることを印象付けた内容と言える。

著者
松下 康之 - Yasuyuki Matsushita
フリーランスライター&マーケティングスペシャリスト。DEC、マイクロソフト、アドビ、レノボなどでのマーケティング、ビジネス誌の編集委員などを経てICT関連のトピックを追うライターに。オープンソースとセキュリティが最近の興味の中心。

連載バックナンバー

開発ツールイベント
第4回

GitHub Universe 2024から、Copilotの新機能を紹介するセッションを紹介

2025/2/12
GitHub Copilotの新機能をMicrosoft、Adobeのエンジニアとともに解説したセッションを紹介する。
開発ツールイベント
第2回

GitHub Universe 2024、GitHub自体の開発に使われているセキュリティプラクティスを解説

2025/1/24
企業としてのGitHubが、サービスとしてのGitHubそのものを開発する際に利用したセキュリティ機能を解説。

Think ITメルマガ会員登録受付中

Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。

Think ITメルマガ会員のサービス内容を見る

他にもこの記事が読まれています