GitHub、「GitHub Copilot」にコード参照機能--コード候補がパブリックコードと一致するか検出

河部恭紀 (編集部)

2023-08-04 12:01

 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は述べる。さらに、同様の問題に対する他の開発者によるアプローチを研究することで学ぶことができ、一致する提案を受け入れる前にコードのコンテキストを評価できるとしている。

ZDNET Japan 記事を毎朝メールでまとめ読み(登録無料)

ZDNET Japan クイックポール

マイナンバーカードの利用状況を教えてください

NEWSLETTERS

エンタープライズコンピューティングの最前線を配信

ZDNET Japanは、CIOとITマネージャーを対象に、ビジネス課題の解決とITを活用した新たな価値創造を支援します。
ITビジネス全般については、CNET Japanをご覧ください。

このサイトでは、利用状況の把握や広告配信などのために、Cookieなどを使用してアクセスデータを取得・利用しています。 これ以降ページを遷移した場合、Cookieなどの設定や使用に同意したことになります。
Cookieなどの設定や使用の詳細、オプトアウトについては詳細をご覧ください。
[ 閉じる ]