GitHub、「GitHub Copilot」にコード参照機能–コード候補がパブリックコードと一致するか検出
今回は「GitHub、「GitHub Copilot」にコード参照機能–コード候補がパブリックコードと一致するか検出」についてご紹介します。
関連ワード (ソフトウェア等) についても参考にしながら、ぜひ本記事について議論していってくださいね。
本記事は、ZDNet Japan様で掲載されている内容を参考にしておりますので、より詳しく内容を知りたい方は、ページ下の元記事リンクより参照ください。
GitHubは米国時間8月3日、「GitHub Copilot」のコード参照機能をプライベートベータ版として提供した。GitHub Copilotが提案するコード候補が「GitHub」にあるパブリックコードと一致することを検出し、そのリポジトリーやライセンスに関する情報に基づいたコード利用の判断を可能にする。
AIプログラミング支援ツールのGitHub Copilotは、訓練にパブリックコードを使用する。そのため、提案されるコード候補がパブリックコードと一致しているかを知りたいという声が多くの開発者から挙がっていたという。
コード参照機能は、GitHub上のパブリックコードと一致するコード候補のコンテキストを検出・表示するフィルターを搭載する。フィルターが有効の場合、コード候補の周囲にあるコードの約150文字をチェックし、GitHub.com上の全パブリックコードのインデックスと比較する。レイテンシーバジェットは10〜20msだという。
一致が検出された場合、一致するコード、そのコードを含むレポジトリーの一覧、適用されるライセンスに関する情報がエディター上に表示される。これらを参照することで、一致するコードを含む候補を破棄することも、利用を許可することもできる。
コード参照が重要な理由としてGitHubは、GitHub Copilotが提案するコード候補で一致が発生する確率は1%以下だが、この確率は全ユーザーケースで均一ということではないという同社調査の結果を挙げる。周囲にコードを伴う既存アプリケーションというコンテキストでは一致はほとんど発生しないが、何もない、または、ほとんど何もないファイルでは、一致がより頻繁に発生するという。
提案はプロンプトに大きく依存するため、GitHub Copilotは開発者のタスクに合った候補を提供できる。多くのコードを含む既存のアプリケーションでは、コードに特化した候補が提案されるが、何もない、または、ほとんど何もないファイルでは、コードがわずかなため、パブリックコードと一致する候補がより多く提案されるとGitHubは説明する。
さらに、候補がパブリックコードと一致する際、多くの場合、十数のリポジトリーと一致ことも明らかになっているという。GitHub Copilotが使用するモデルは、巨大な確率機と同じであり、多くのリポジトリーに出現するコード片は、同モデルで検出される「パターン」である可能性が高いという。
また、一致するコードを含むリポジトリーの多くは、複数のライセンスで許諾されており、それらが相反するライセンスだという場合もあるという。このことは、一致をそのソースに帰属させることを難しくさせるという。
参照リストを確認することで、一致を最初から単に破棄するのでなく、帰属させるかどうか、何を帰属させるか、誰に帰属させるかを判断できるとGitHubは述べる。さらに、同様の問題に対する他の開発者によるアプローチを研究することで学ぶことができ、一致する提案を受け入れる前にコードのコンテキストを評価できるとしている。