GitHub Copilotは、GitHubとOpenAIが共同で開発したAIによるコーディング支援ツールである。統合開発環境などのエディタと連携して動作し、コーディング中にAIがコードやコメントをリアルタイムで補完してくれる。GitHubは5月17日(米国時間)、公式ブログで、このGitHub Copilotがコードを正しく理解できるようになるまでの経緯や、性能を向上させるために行っている取り組みなどについて解説した。以下が、その記事だ。

  • Inside GitHub: Working with the LLMs behind GitHub Copilot|The GitHub Blog

    Inside GitHub: Working with the LLMs behind GitHub Copilot | The GitHub Blog

1本目の記事では、GitHub Copilotが内部で利用している大規模言語モデルの開発について解説している。GitHub CopiliotのAIは、OpenAIとGitHubが共同で開発した多言語モデルの「OpenAI Codex」を使用している。これはOpenAIによるGPT-3をベースとして、数十億行の公開されたソースコードでトレーニングされた、コーディングに特化した言語モデルである。

当初、OpenAIからGPT-3 APIへのアクセスを提供されたGitHubの研究者は、これをIDEに取り込むアイデアを発案し、複数のプログラミング言語に対応させるためにオープンなコードでトレーニングした専用の言語モデルの開発につながったという。

LLMで目的の出力を得るためには、プロンプトとして適切な入力を与える必要がある。これをコード補完に応用させるために、GitHub Copilotではさまざまな工夫を行う必要があったと説明されている。また、特定のタスクやドメインに適用するような微調整も行われており、それがパフォーマンスを向上させているという。

2本目の記事は、GitHub Copilotによるコンテキストの理解がどのように改善されていったのかを解説する内容である。通常、開発者はプルリクエストの内容や、プロジェクト内の他のファイルやフォルダ、未解決な問題などといった情報を組み合わせることでコードのコンテキストを設定している。

AIによるコーディングで同じことを行うには、コードにどのような情報が関連しているのかをツールに伝える必要がある。記事では、GitHub Copilotによるプロンプト作成の仕組みや、コンテキストの理解を飛躍的に向上させた「Fill-In-the-Middle (FIM) 」と呼ばれるパラダイムなどについて紹介されている。

  • モデルの性能改善に向けたシステムダイアグラムの簡略図 出典:The GitHub Blog

    モデルの性能改善に向けたシステムダイアグラムの簡略図 出典:The GitHub Blog

GitHubでは、現在も継続してGitHub Copilotの性能向上に向けた取り組みが行われているという。同社が2023年3月に発表した「GitHub Copilot X」もその取り組みの一つである。GitHub Copilot Xでは、OpenAIによる最新のLLMである「GPT-4」がベースとして使われている。