Copilot pull request summaries について
Copilot pull request summaries は、pull request で行われた変更、影響を受けるファイルおよびレビュー担当者がレビューを行う際に注目すべき内容の概要を作成できる AI 搭載の機能です。
ユーザーが概要をリクエストすると、Copilot により pull request がスキャンされ、変更の概要が文章で提供されます。また、影響を受けるファイルの箇条書きリストが出力されます。
Copilot pull request summaries でサポートされている言語は英語のみです。
Copilot pull request summaries では、Copilot API を利用した単純なプロンプト フローが使用されます。追加のトレーニング済みモデルは必要ありません。 これには、汎用の大規模言語モデルが利用されます。
応答の生成
現在のプロセスでは、大規模言語モデルを使用して自動完了プロセスを開始し、pull request の概要を生成できます。
パイプラインアプローチ
ユーザーが概要をリクエストすると、ワークフローがトリガーされます。 このワークフローでは、コードの差分を使用してプロンプトの呼び出しを作成します。この呼び出しで、pull request の概要を生成するよう Copilot にリクエストされます。 概要のリクエストにより、プロンプトに要約可能なファイルとの生の差分を含むパイプライン プロセスが開始されます。また、pull request の全体の概要を生成するよう Copilot にリクエストされます。
出力の形式
この機能は、pull request の作成時に開始できます。また、作成後に pull request の説明を編集するか、pull request スレッドのコメントを使用することでも開始できます。 開始時に、Copilot により次の 2 部構成の概要が生成されます。
- pull request の変更の概要を示す、文章で記述された段落。
- キーの変更の箇条書きリスト。変更が行われる各コード行にリンクされています。
プル要求が大きくなると、Copilot が生成されるまでに数分かかることがあります。 エンタープライズ設定によっては、概要が生成された後に概要に関するフィードバックを UI から直接共有して、機能の継続的な改善に役立てることができます。
pull request の概要のユース ケース
Copilot pull request summaries の目的は、編集者が人間によるレビューをリクエストする際に行われた変更のコンテキストを共有する必要がある場合、編集者の能力を最適化し、コンテキストをすばやく提供できるようにすることです。 pull request を開くのに必要な時間を短縮することで、開発者の生産性を高めることができます。
多くのユーザーにとって、これにより pull request 内で行われた変更に関して通常使用できるよりも便利なコンテキストを提供できます。
pull request の概要のパフォーマンスを向上させる
代わりではなくツールとして Copilot pull request summaries を使用する
この機能の目的は、コンテキストを追加する人間の作業に取って代わることではなく、補足を行うことです。有用なコンテキストは引き続き追加し、Copilot でコードの解析および特定のファイルへのリンクのビジー処理を行うことをおすすめします。 作成する pull request の情報が正確であることを確認および評価する責任があります。
フィードバックを提供する
Note
Copilot pull request summaries に関するフィードバックを GitHub に提供する機能は、エンタープライズ設定によって異なります。 詳しくは、「企業内の Copilot のポリシーと機能を管理する」を参照してください。
Copilot pull request summaries で問題や制限が発生した場合は、概要が生成された後、[pull request の作成] または [コメントの更新] をクリックする前に、テキスト ボックスの下に表示される [不適切な概要] ボタン (サムダウン アイコン) をクリックすると、フィードバックを提供できます。
概要を適切か不適切か評価した後、表示されるリンクをクリックすると、フィードバックを書き込むことができます。
pull request の概要に関する制限事項
現在、Microsoft チームではこの機能に制限があることを認識しています。 それらの多くで Copilot API を活用することが期待されますが、範囲の制限、処理時間の長さ、不正確な応答に関連する Copilot pull request summaries に固有の制限がいくつかあります。 またユーザーは、PR で使用される用語が AI によって生成される概要に現れることを想定する必要があります。 この機能は RAI Red Teaming の対象となり、今後も機能の有効性および安全性がモニタリングされます。 詳細については、Microsoft セキュリティ ブログの「Microsoft AI Red Team building future of safer AI」(より安全な AI の未来を構築する Microsoft AI Red Team) を参照してください。
制限付きのスコープ
容量のため、30 件以上のファイルを参照する大きな pull request では、完全に処理される時間が長くなります。 現時点では正確なしきい値はありませんが、最初の 30 件のファイルが確認され、その後、概要から省略されているその他のファイルが確認されます。 現在のこのスコープの制限については、解決に取り組んでいる最中です。
処理時間
一般に、ユーザーがアクションを開始した後、40 秒以内に概要が返されることを想定しています。 しかし、これには 1 分ほど、場合によっては数分かかる場合があるようです。 処理時間の短縮に取り組んでいますが、pull request の他の部分に進む前に、ユーザーはこの処理の完了を待ちたくない可能性があります。
不正確な応答
Copilot が学習できる入力とコンテキストが多いほど、出力は向上します。 ただし、この機能はまだ新しいため、生成される概要が正確な精度に到達するには時間がかかります。 一方で、生成された概要があまり正確ではない場合には、この説明が含まれた pull request を保存して公開する前にユーザーが変更を加える必要があります。 さらに、Copilot が不正確なステートメントを生成する "幻覚" のリスクもあります。 これらの理由から、見直しは必須であり、出力の見直しを慎重に行うことを Microsoft チームとして強くお勧めします。
概要の再生成
pull request の概要は、ユーザーが手動で要求した場合にのみ作成されます。 ユーザーが pull request の更新または変更を送信しても、概要は自動的に更新されません。 ユーザーは必要に応じて、Copilot に新しい概要を生成するよう依頼できます。 更新された Copilot の概要を手動で見直すことを強くお勧めします。 更新された概要には、元の概要と同じ不正確さのリスクが伴います。
pull request コンテンツのレプリケーション
概要は pull request で行われた変更のアウトラインであるため、有害または不快な用語が pull request のコンテンツ内にある場合は、概要にもそれらの用語が含まれる可能性があります。
参考資料
- GitHub Copilot トラスト センター
- GitHub Enterprise Cloud ドキュメントの「GitHub Copilot で pull request の概要を作成する」。