Skip to main content

アプリケーション カード: GitHub Copilot Chat

GitHub Copilot Chatの目的、機能、制限事項を理解して責任を持って使用する方法について説明します。

アプリケーション カードとは

GitHub’s application and platform cards are intended to help you understand how our AI technology works, the choices application owners can make that influence application performance and behavior, and the importance of considering the whole application, including the technology, the people, and the environment. Application cards are created for AI applications and platform cards are created for AI platform services. These resources can support the development or deployment of your own applications and can be shared with users or stakeholders impacted by them.

As part of its commitment to responsible AI, GitHub adheres to Microsoft's six core principles: fairness, reliability and safety, privacy and security, inclusiveness, transparency, and accountability. These principles are embedded in the Responsible AI Standard, which guides teams in designing, building, and testing AI applications. Application and Platform Cards play a key role in operationalizing these principles by offering transparency around capabilities, intended uses, and limitations. For further insight, readers are encouraged to explore Microsoft’s Responsible AI Transparency Report and GitHub 条件.

1. 概要

GitHub Copilot Chat は、GitHub Copilot と対話して、コーディング関連の質問をし、その回答を受け取ることができるチャット インターフェイスです。 GitHub Copilot Chatは、GitHub.com、サポートされている IDE (VS Code、Visual Studio、JetBrains、Eclipse)、GitHub Mobile、および Windows ターミナル で利用できます。 GitHub.com および GitHub Desktop では、Copilotはプル要求の概要を生成し、メッセージをコミットすることもできます。これは、プル要求またはコミットで行われた変更の AI を利用した概要です。

GitHub Copilot Chatでは、構文、プログラミングの概念、テスト ケース、デバッグなど、さまざまなコーディング関連の質問に回答できます。 GitHub Copilot Chatは、コーディング以外の質問に回答したり、コーディング以外のトピックに関する一般的な情報を提供したりするようには設計されていません。

GitHub Copilot Chat でサポートされている主な言語は英語です。

2. 主な用語

GitHub Copilot Chatに関連する主な用語の用語集を次の一覧に示します。

  • コンテンツ フィルタリング: ユーザーに表示される前に、プロンプトと応答をスキャンして有害なコンテンツを検出してブロックする安全システム。
  • ハルキュレーション: 言語モデルが出力を生成する現象で、妥当と思われるが、実際には正しくない、提供されたコンテキストでサポートされていない、または完全に製造されている。 ハルキュレーションは、大規模な言語モデルの既知のリスクであり、AI によって生成された出力の人間によるレビューが重要である理由です。
  • 大規模言語モデル (LLM): 自然言語とコードを生成、分析、変換できるテキスト データの大規模な本文でトレーニングされたニューラル ネットワークの一種。 GitHub Copilot Chatでは、1 つ以上の LLM を使用してプロンプトを処理し、応答を生成します。
  • Prompt: GitHub Copilot Chatに提供される入力。 システムは、プロンプトを言語モデルに送信する前に、プロンプトを追加のコンテキスト (ファイルやリポジトリ データを開くなど) と組み合わせます。
  • Public code matching: Copilotの候補が一般公開されているコードと一致するかどうかを確認する機能。 設定によっては、一致する候補がオフまたはオンになる場合があります。オンにした場合は、ソース リポジトリへの参照とライセンス情報を使用してブロックまたは注釈を付けることができます。
  • プル要求の概要: AI によって生成されたプル要求の変更の概要。散文段落と、影響を受けるファイルにリンクされたキー変更の箇条書きリストで構成されます。 サマリーは、GitHub.com に対してオンデマンドで生成されます。
  • レッド チーミング: テスト担当者が意図的に AI システムから安全でない、有害な、または意図しない動作を引き起こそうとする構造化されたテストプラクティス。 赤いチーミングは、脆弱性を特定し、リリース前とリリース後の安全性の軽減策を改善するのに役立ちます。
  • トレーニング データ: GitHub Copilot Chatを支える基盤モデルのトレーニングに使用された、公開されている大量のテキストやコード。 トレーニング データの構成は、さまざまなプログラミング言語、フレームワーク、トピックにわたるモデルの提案の品質とカバレッジに影響します。

3. 主な機能

ここで説明する主な機能では、GitHub Copilot Chatが実行するように設計されている内容と、サポートされているタスク全体で実行されるしくみについて説明します。

  • Conversational coding assistance: GitHub Copilot Chat は、コーディング関連の質問をしたり、コード、説明、またはステップ バイ ステップ ガイダンスの形式で回答を受け取ったりするための自然言語インターフェイスを提供します。 ユーザーはフォローアップの質問をして回答を絞り込むことができます。会話履歴はセッション内で保持されます。
  • Context 対応応答: GitHub Copilot Chatでは、開いているファイル、アクティブなリポジトリ、チャット履歴、(有効な場合) Web 検索結果などのコンテキスト情報を使用して、ユーザーの現在の作業に関連する応答を生成します。 使用できる特定のコンテキストは、プラットフォーム (GitHub.com、IDE、モバイル、Windows ターミナル、または GitHub Desktop) によって異なります。
  • マルチプラットフォーム対応: GitHub Copilot Chat は、GitHub.com、対応している IDE(VS Code、Visual Studio、JetBrains、Eclipse)、GitHub Mobile、Windows ターミナル、GitHub Desktop など、複数の環境で利用できます。 各プラットフォームは、環境に合わせて最適化されたカスタマイズされたエクスペリエンスを提供します。
  • Agent モード: サポートされている IDE では、GitHub Copilot Chatはエージェント モードで動作できます。このモードでは、モデルは自律的にマルチステップ タスクを計画し、ツール (ターミナル コマンドの実行やファイルの編集など) を呼び出し、結果を反復処理します。 これにより、1 ターンの質問と回答の対話を超えてチャット エクスペリエンスが拡張されます。
  • Copilot Spaces: スペースを使用すると、ユーザーはリポジトリ、ファイル、問題、その他の資料をコンテキストのキュレーションされたコレクションに整理できます。 スペース内で質問が行われると、Copilotは含まれるコンテキストを使用して、より対象を絞った関連性の高い回答を生成します。 また、リモート GitHub MCP サーバー経由で IDE からスペースにアクセスすることもできます。
  • Pull 要求の概要: GitHub.com では、Copilotは、プル要求の変更の AI を利用した概要を生成できます。 出力は、散文の概要と、影響を受けるファイルにリンクされた主要な変更の箇条書きリストで構成されます。 サマリーはオンデマンドで生成され、校閲者が変更された内容をすばやく理解するのに役立ちます。
  • コミット メッセージの生成: GitHub.com と GitHub Desktop では、Copilot は、選択したコード変更に基づいて、推奨されるコミットの要約(タイトル)と説明を生成できます。 GitHub Desktop では、ユーザーは特定のコード行またはファイルを選択して、コンテキストと精度を向上させることができます。 生成されたメッセージは、コミットする前に確認および編集できます。
  • Bring Your Own Key (BYOK): 組織は、既定のGitHubホスト型モデルを使用するのではなく、独自の API キーを指定することで、サポートされているサードパーティ プロバイダーから大規模な言語モデルにGitHub Copilot Chatを接続できます。
  • Content フィルタリング: GitHub Copilot Chatには、有害なコンテンツを検出してブロックするためのプロンプトと応答をスキャンするコンテンツ フィルタリング システムが含まれる場合があります。 パブリック コード照合機能は、提案が一般公開されているコードと一致するかどうかをチェックし、設定に応じて、ソースとライセンスの情報を使用してそれらの一致をブロックまたは注釈を付けます。

4. 使用目的

GitHub Copilot Chatは、さまざまな業界の複数のシナリオで使用できます。 ユース ケースの例を次に示します。

  • Answering のコーディングに関する質問: 特定のコーディングの問題に関するヘルプまたは説明を GitHub Copilot Chatに依頼し、自然言語またはコード スニペット形式で応答を受け取ります。 応答では、モデルのトレーニング データ、リポジトリ コンテキスト、またはウェブ検索結果(有効になっている場合)を活用することがあります。
  • コードの説明と改善の提案: 関数の目的、入力、出力、依存関係の自然言語の説明を生成します。 GitHub Copilot Chatでは、エラー処理の改善や、より読みやすい制御フローなどの改善を提案することもできます。 生成された説明は、常に正確または完全であるとは限らず、確認する必要があることに注意してください。
  • 単体テスト ケースの: GitHub Copilot Chatは、エディターで開いているコードまたは強調表示されたコード スニペットに基づいてコード スニペットを生成することで、単体テスト ケースの作成に役立ちます。 関数のシグネチャと本文に基づいて、可能な入力パラメーター、予想される出力値、アサーションを提案できます。 GitHub Copilot Chatでは、エッジ ケースと境界条件 (エラー処理、null 値、予期しない入力の種類など) のテスト ケースを提案することもできます。これは、手動で識別するのが困難な場合があります。 生成されたテスト ケースは、考えられるすべてのシナリオに対応できるわけではありません。手動テストとコード レビューは引き続き必要です。
  • コード修正の提案: エラー メッセージ、コード構文、および周囲のコンテキストに基づいて、バグの修正候補を取得します。 GitHub Copilotチャットでは、問題を解決する可能性がある変数、制御構造、または関数呼び出しに対する変更を提案できます。 推奨される修正プログラムは、常に最適または完全であるとは限りません。
  • コーディング タスクの計画: GitHubの問題の読み取りと要約、それらに関する質問への回答、または次の手順の提案。
  • リリース、ディスカッション、コミットについて学習する: リリースで変更された内容、ディスカッションの要点、または特定のコミットの変更を要約します。
  • プル要求の変更 (GitHub.com): プル要求の変更の AI を利用した概要 (影響を受けるファイルにリンクされた主要な変更の箇条書きリストなど) を生成して、レビュー担当者が変更された内容とレビューの対象となる場所をすばやく理解できるようにします。
  • コミット メッセージ (GitHub.com および GitHub Desktop) の: コミットするために選択したコード変更に基づいてコミット メッセージの概要 (タイトル) と説明を生成し、時間を節約し、コミット履歴を明確に維持するのに役立ちます。 GitHub Desktop では、コンテキストを理解しやすくするために特定のコード行またはファイルを選択して、精度を高めることができます。 コミットする前に、提案されたタイトルと説明を確認して編集できます。
  • 適切なコマンドを見つける (Windows ターミナル): コマンドラインでタスクを実行するのに役立つコマンドを Copilot に提案してもらいます。 返されたコマンドが期待を満たすまで質問を修正し、コマンド ラインに挿入して実行できます。
  • 見慣れないコマンドの説明 (Windows ターミナル): Copilot に依頼して、コマンドの機能について、入力パラメーターと出力パラメーター、使用例を含む自然言語の説明を生成します。 生成された説明は、必ずしも正確または完全であるとは限りません。
  • 新機能の開発 (Spaces): 関連するコード、製品仕様、設計メモをスペースにまとめることで、Copilot が現在の実装を説明し、不足している点を明らかにし、新しいコードや次のステップの草案を作成できるようになります。
  • 繰り返しタスク (スペース) のロジックを定義する: フローチャート、例、またはスキーマを使用してプロセスを 1 回文書化し、一貫したパターンと再利用可能なテンプレートのためにチーム全体で再利用します。
  • チームメイトとの知識の共有 (スペース): 最新のコードとドキュメントを 1 か所で収集し、Copilotがシステムの説明、質問への回答、チームメイトのオンボードを行えるようにします。

5. モデルとトレーニング データ

GitHub Copilot Chatでは、さまざまな AI モデルを活用して、ユーザーが見るエクスペリエンスを高めます。 Copilotで使用できるモデルの比較については、AI モデルの比較 を参照してください。 サポートされているモデルの完全な一覧については、 AUTOTITLE を参照してください。 モデルがホストされる場所については、 GitHub Copilotのモデルのホスティング を参照してください。 GitHub Copilot Chat の背後にある基盤モデルのトレーニングに使用されたデータの詳細については、上記のリンク先にある AI モデルの比較と、GitHub Copilot FAQ の GitHub Copilot はどのようなデータでトレーニングされていますか? を参照してください。

Bring Your Own Key (BYOK) の使用

GitHub Copilot Chat で Bring Your Own Key を使用すると、既定のCopilot モデルを超えて、サポートされているプロバイダーの大規模な言語モデルにチャット エクスペリエンスを接続できます。 サポートされているプロバイダーの例としては、Anthropic、AWS Bedrock、Google AI Studio、Microsoft Foundry、OpenAI、OpenAI 互換プロバイダー、xAI などがあります。 選択したプロバイダーの API キーは、Copilot設定で直接追加します。

BYOK がアクティブな場合:

  • Feature scope: 選択したモデルが GitHub Copilot Chat内で使用されます。 エージェント モードでは、BYOK によってメインの会話が行われますが、コード アプリケーションや他のツール呼び出しなどの特定のアクションでは、それらのタスク用に最適化されたCopilot統合モデルが引き続き使用される場合があります。 これらの組み込みモデルは、BYOK プロバイダーを介して実行されません。
  • Content フィルター処理: どのプロバイダーがアクティブであるかに関係なく、応答は引き続きGitHubの API を通過し、結果が表示される前にコンテンツ フィルター処理を行う場合があります。
  • 品質に関する考慮事項: 提案は、選択したプロバイダーの強みとトレーニング範囲によって異なる場合があります。
  • データ処理: BYOK を使用する場合、プロンプトと応答は選択したプロバイダーに送信され、そのプロバイダーのデータ保持とプライバシー ポリシーの対象となる場合があります。
  • お客様の責任: お客様は以下の責任を負います。
    • プロバイダー API キーのセキュリティ
    • 使用コストまたはクォータ
    • 出力の検証
    • 選択したモデルが安全性と品質の要件を満たしているかどうかを評価する
    • 選択したプロバイダーの条件に準拠する
    • 選択したモデルが適用される法律に準拠しているかどうかを判断する
    • 人間が出力を使用して人に影響を与える意思決定を行う前に、必ずレビューするようにする。
  • エクスポートの制限: 特定の AI モデルは、エクスポート制御の対象となる場合があります。 選択したプロバイダーとモデルが、管轄区域での使用が承認されていることを確認します。

BYOK を使用すると、組織はニーズに最も適した言語モデルを選択できます。 モデルのパフォーマンスと安全性の特性はプロバイダーに依存します。

6. パフォーマンス

GitHub Copilot Chatは、自然言語処理と機械学習の組み合わせを使用して、質問を理解し、回答を提供することで機能します。 このプロセスには、以下が含まれます。

  1. 入力処理: ユーザーのプロンプトは、システムによって前処理され、コンテキスト情報 (現在のリポジトリ、開いているファイル、チャット履歴など) と組み合わされ、大規模な言語モデルに送信されます。 ユーザーによる入力は、コード スニペットまたはプレーン ランゲージの形式をとることができます。
  2. 言語モデル分析: プロンプトは、テキスト データの大きな本文でトレーニングされたニューラル ネットワークである言語モデルを介して渡されます。 言語モデルにより、入力プロンプトが分析されます。
  3. 応答の生成: モデルは、入力プロンプトとそのコンテキストの分析に基づいて応答を生成します。 この応答は、生成されたコード、コードの提案、または既存のコードの説明の形式をとることができます。
  4. 出力の書式設定: 応答は、構文の強調表示、インデント、その他の機能で書式設定され、わかりやすく表示されます。 質問の種類によっては、ソース コード ファイル、問題、ドキュメントなど、モデルが使用したコンテキストへのリンクも提供される場合があります。

エクスペリエンス別の違い

  • On GitHub.com: モデルは、(管理者が有効にした場合) GitHubおよび Web 検索結果に格納されているリポジトリ データから追加のコンテキストを収集できます。 応答には、ソース コード ファイル、問題、またはドキュメントへのリンクが含まれる場合があります。
  • プル リクエストの要約 (GitHub.com): ユーザーが要約を要求すると、ワークフローはファイルのコード差分を使用してプロンプトを作成し、Copilot に全体の要約を生成するよう依頼します。 出力は、変更の概要を示す散文段落と、それぞれのコード行にリンクされた主要な変更の箇条書きリストで構成されます。 概要は、新規または既存のプル要求の説明、または pull request タイムラインのコメントで生成できます。 プル要求が大きくなると、処理に最大で数分かかる場合があります。 pull request の概要でサポートされている言語は英語のみです。
  • メッセージ生成 (GitHub.com): GitHub.com の [Commit changes] ボタンをクリックすると、選択したファイルのコード変更に基づいて、推奨される概要 (タイトル) と説明が生成Copilot。 テキストは、コミットする前に確認および編集するために、概要と説明のフィールドに挿入されます。 コミット メッセージ生成でサポートされている言語は英語のみです。
  • コミット メッセージの生成 (GitHub Desktop): GitHub Desktop で [Copilot] ボタンをクリックすると、Copilot が、選択したコード変更に基づいて、推奨される概要 (タイトル) と説明を生成します。 コンテキストと精度を向上させるために特定のコードまたはファイル行を選択し、最終処理する前に候補を再生成できます。 サポートされている言語は英語のみです。
  • IDE で: システムは、ユーザー入力と、リポジトリの名前やユーザーが開いているファイルなどのコンテキスト情報を組み合わせます。 VS Code とVisual Studioでは、オプションの .github/copilot-instructions.md ファイルから追加のコンテキストを自動的に指定できます (ユーザーは設定でこれを無効にすることができます)。 VS Code または Visual Studio で @github チャット参加者を使用する場合、GitHub Copilot Chatは、GitHubに格納されているコードとBing検索結果 (管理者によって有効になっている場合) からコンテキストを収集することもできます。
  • On GitHub Mobile: 入力プロンプトが前処理され、言語モデルに送信されます。 このシステムは、コーディング関連の質問にのみ対応することを目的としています。 使用可能なオプションはCopilotプランによって異なります。Copilot Enterprise サブスクリプションを持つユーザーは、プライベート インデックス付きリポジトリのデータを使用して会話を行うことができます。また、Web 検索統合が有効になっている場合は、Web 検索結果から通知された応答を受け取ることができます。 Copilot Pro サブスクリプションを持つユーザーは、人気の高いパブリック リポジトリについて話し合うことができます。
  • In Windows ターミナル: ユーザーのプロンプトがコンテキスト情報 (アクティブなシェルの名前とチャット履歴) と組み合わされ、言語モデルに送信されます。 応答は、提案されたコマンドまたはコマンドの説明の形式になります。 推奨されるコマンドは自動的には実行されません。コマンドをクリックしてコマンド ラインに挿入してから、手動で実行する必要があります。
  • In Copilot Spaces: スペースを使用すると、GitHub Copilot Chatが質問に回答するために使用するコンテキストを整理できます。 領域には、リポジトリ、コード、プル要求、問題、トランスクリプトやメモ、画像、ファイルのアップロードなどのフリー テキスト コンテンツを含めることができます。 スペースで質問を送信すると、Copilotは、その空間からの関連するコンテキストで要求を拡張します。 また、リモート GitHub MCP サーバー経由で IDE からスペースにアクセスすることもできます。 スペース内のすべてのコンテンツがすべての応答で使用されるわけではありません。Copilot含まれるコンテンツの一部が処理されるため、追加する内容を選択することで関連性を確保できます。

GitHub Copilot Chatは、質問に対して最も関連性の高い回答を提供することを目的としています。 ただし、お探しの回答が必ず提供されるとは限りません。 GitHub Copilot Chat のユーザーは、システムによって生成された応答を確認および検証し、正確かつ適切であることを確認する責任があります。

7. 制限事項

GitHub Copilot Chatの制限事項を理解することは、安全で効果的な境界内で使用されているかどうかを判断するために重要です。 革新的なソリューションやアプリケーションで GitHub Copilot Chatを活用することをお勧めしますが、GitHub Copilot Chatは可能なすべてのシナリオ向けに設計されたわけではないことに注意してください。 ユース ケースを選択する際には、 GitHub 条件 と次の考慮事項を参照することをお勧めします。

  • 適用範囲が限定的: GitHub Copilot Chat は大量のコードで学習されていますが、より複雑なコード構造や、あまり一般的でないプログラミング言語には対応できない場合があります。 各言語の提案の品質は、トレーニング データの量と多様性によって異なります。 たとえば、JavaScript は適切に表現され、十分にサポートされていますが、一般的でない言語では品質の低い結果が得られる場合があります。
  • 潜在的なバイアス: 既存のコード リポジトリから引き出されたトレーニング データには、ツールによって永続化できるバイアスとエラーが含まれている可能性があります。 GitHub Copilot Chatは、特定のプログラミング言語やコーディング スタイルに偏りがあり、最適ではないコード候補や不完全なコード候補につながる可能性があります。
  • セキュリティ リスク: 生成されたコードでは、慎重に確認しないと、機密情報や脆弱性が公開される可能性があります。 生成されたコードを常に十分に確認してテストします。特に、セキュリティに影響を受けやすいアプリケーションの場合は特に注意してください。
  • パブリック コードとの照合: 確率は低くなりますが、GitHub Copilot Chatでは、トレーニング セット内のコードと一致するコードが生成される場合があります。 厳格なテスト、IP スキャン、セキュリティ脆弱性の確認など、自分で独自に作成したものではない素材を使用するコードに対して取るのと同じ予防措置を講じる必要があります。 詳細については、「GitHub Copilot の提案に一致するパブリック コードの検索」を参照してください。
  • 不正確なコード: GitHub Copilot Chat は、一見有効に見えても意味的または構文的に正しくないコードや、開発者の意図を正確に反映していないコードを生成する場合があります。 生成されたコード (特に重要なアプリケーションや機密性の高いアプリケーション) を慎重に確認してテストします。
  • コーディング以外のトピックに対する対応: GitHub Copilot Chat はコーディング以外の質問に回答するようには設計されておらず、それらのコンテキストでの応答は無関係または無意味である可能性があります。
  • 破壊的コマンド (Windows ターミナル): Copilotは、コンテンツの削除やハード ドライブのフォーマットなど、破壊的なコマンドを提案する可能性があります。これは、特定のシナリオで必要になる可能性がありますが、誤って使用すると問題が発生する可能性があります。 最終的には、実行を選択したコマンドに対して責任を負います。 フェールセーフと安全メカニズムが存在するにもかかわらず、コマンドの実行には固有のリスクがあります。
  • PR サマリーの変更行数上限 (GitHub.com): 追加行数と削除行数の合計が 400 を超えるファイルは、要約の対象から除外されます。
  • PR の概要は自動更新されません (GitHub.com): プル要求の概要は、ユーザーが手動で要求した場合にのみ作成されます。 プル要求に対して更新または変更が行われた場合、概要は自動的に更新されません。 ユーザーは新しい概要を要求できますが、更新された出力を慎重に確認する必要があります。元の出力と同じ不正確さのリスクが伴います。
  • ** PR コンテンツの複製 (GitHub.com)**: 概要は pull request の変更の概要を示しているため、pull request コンテンツに有害または不快な用語が表示される場合は、それらの用語を複製する可能性があります。 ユーザーは、PR で使用される用語が AI によって生成された概要に表示される必要があります。
  • **コミット メッセージ (GitHub.com および GitHub Desktop) の制限付きスコープ **: コミット メッセージの生成は、複雑なコード変更、短い差分ウィンドウ、または最近開発されたプログラミング言語で苦労する可能性があります。 提案の品質は、関連する言語のトレーニング データの可用性と多様性によって異なります。
  • コミット コンテンツの複製 (GitHub.com および GitHub Desktop): コミット メッセージはコミットの変更を要約するため、コードの変更に有害または不快な用語が表示された場合、生成されたメッセージにそれらの用語が含まれる可能性があります。
  • コミット メッセージは自動更新されません (GitHub.com および GitHub Desktop): コミット メッセージは、要求したときにのみ生成されます。 追加の変更を行った場合、コミット メッセージは自動的に更新されません。 新しい提案を再生成することはできますが、更新された出力を慎重に確認する必要があります。元の出力と同じ不正確さのリスクが伴います。
  • ユーザーの意図の理解 (Spaces): Spaces は、GitHub Copilot Chat の応答を厳選されたコンテキストに基づかせるのに役立ちますが、システムがユーザーの意図を誤解する可能性はあります。 常に出力を確認して、目標が反映されたことを確認します。
  • Context limits (Spaces): スペースにはサイズ制限が定義されており、GitHub Copilot Chatは、含めるコンテンツの一部のみを処理します。 スペース内のすべてのファイル、ドキュメント、またはメモが応答で使用されるわけではありません。 追加内容を選択することで、最も関連性の高いコンテキストを確実に使用できます。
  • 自然言語によってパフォーマンスが異なる: GitHub Copilot Chat は主に英語向けに最適化されています。 他の言語のプロンプトではパフォーマンスが異なる場合があります。
  • ** Web 検索**: GitHub.com およびサポートされている IDE でGitHub チャット参加者を使用する場合、GitHub Copilot Chatは必要に応じてBing検索を使用して、最近のイベント、新しいテクノロジ、高度に固有の主題に関するクエリなど、質問に答えることができます。 エンタープライズ管理者は、組織のBingを有効または無効にすることができます。 Web 検索を使用すると、プロンプトの内容と追加のコンテキストが、ユーザーに代わってBing検索クエリを生成するために使用されます。 Bing に送信される検索クエリは、Microsoft のプライバシーに関する声明によって管理されます。 詳細については、「企業での GitHub Copilot のポリシーと機能の管理」を参照してください。

8. 評価

パフォーマンスと安全性の評価では、有害なコンテンツを生成するリスクを特定しながら、根拠、関連性、一貫性などの要因を調べることで、AI アプリケーションが確実かつ安全に動作しているかどうかを評価します。 以下の評価は、既に実施されている安全コンポーネントを用いて行ったが、これも9に記載されている 。安全コンポーネントと軽減策

パフォーマンスと品質の評価

GitHub Copilot Chat AI 機能は、業界標準のベンチマーク (SWE-Benchなど) と内部で開発された評価スイートの組み合わせを使用して評価されます。 ベンチマーク タスクは、パブリック オープンソース リポジトリと合成シナリオから提供されます。実際のユーザー クエリや顧客コードは使用されません。 各評価には、モデル出力の非決定的性を考慮する複数の独立した実行が含まれています。 主要なメトリックには、解決率 (正常に完了したタスクの割合)、トークン効率、待機時間、ツール呼び出しの信頼性などがあります。 モデルは、エラー率、応答待ち時間、集計使用パターンを使用して、運用環境で更新が行われ、継続的に監視されたときに再評価されます。

パフォーマンスと品質の評価方法

GitHub Copilot Chatの新しいモデルでは、デプロイ前に段階的な評価プロセスが行われます。 インテグレーター チームは、その表面に固有のベンチマーク スイートを実行し、バグ修正、コード生成、マルチファイル リファクタリングなどの代表的なコーディング タスクでモデルをテストします。 確立されたベースラインと既存の運用モデルに対して結果がレビューされます。 モデルは、次のステージに進む前に、解決率、トークン効率、待機時間などの主要なメトリック間でベースライン パフォーマンスを満たすか、超える必要があります。 部門横断の審査委員会は、いずれのモデルについても、ユーザー向けデプロイが承認される前に、承認するか見送るかの正式な判断を下します。

リスクと安全性の評価

AI によって生成されるコンテンツに関連する潜在的なリスクを評価することは、重大度が異なるコンテンツ リスクから保護するために不可欠です。 これには、有害なコンテンツの生成や脱獄攻撃の脆弱性のテストに対する AI アプリケーションの素因の評価が含まれます。 GitHubでは、Microsoft Foundry</c0 からコーディング目的に適合するものも含め、パフォーマンス評価を実施>。

  • 憎しみと不公平さ
  • 性的
  • Violence
  • 自傷行為
  • 保護材料
  • 脱獄
  • コードの脆弱性

品質と安全性に関する評価データ

当社の評価データは、 安全性品質の重要な領域全体で AI アプリケーションのパフォーマンスを評価し、実際のシナリオとリスクをシミュレートするためにカスタム構築されています。 私たちは、多分野にわたる研究と専門家の意見に基づいて、懸念事項の関連評価の側面を特定することから始めます。 これらの懸念は、対象となる評価目標に変換され、評価メトリックの策定をガイドします。 safetyでは、望ましくない応答またはエッジケース応答を引き出す敵対的なプロンプトを作成し、その後、GitHubの標準との整合性を評価するためにトレーニングされた AI 支援アノテーターを使用してスコア付けされます。 品質を高めるために、取得拡張生成 (RAG) アプリケーションとエージェントの評価など、シナリオに関連するルーブリックベースのプロンプトを作成します。 データセットは、実際のユーザー シナリオをシミュレートするために、合成データセットやパブリック データセットなど、さまざまなソースからキュレーションされます。 キュレーションされたデータセットを使用すると、両方の評価が反復的に改良され、人間のアライメントが行われ、メトリックの有効性と信頼性が向上します。 この手法は、顧客が評価を使用してより優れた AI を構築する方法を反映した、反復可能で厳格な評価の基礎を形成します。

カスタム評価

製品開発プロセスの一環として、GitHub Copilot Chatの安全性を理解し、向上させるためにレッド チーミングを行います。 有効にすると、入力プロンプトと出力入力候補はコンテンツ フィルターを介して実行されます。

9. 安全コンポーネントと軽減策

  • コンテンツ フィルタリング: 有効にすると、コンテンツ フィルタリング システムによって有害なコンテンツの出力が検出され、防止されます。 不快なコンテンツが発生した場合は、 copilot-safety@github.comに報告してください。
  • パブリック コード マッチング: 設定によっては、GitHub Copilot Chatで重複検出フィルターがオンまたはオフになっている可能性があります。 有効な場合、GitHub Copilot Chatパブリック コードに一致する提案をブロックするか、ソース リポジトリへのリンクとライセンスの詳細で注釈を付けます。 VS Code で、パブリック コードに一致する提案を有効にした場合、GitHub Copilot Chatは、一致したコードとライセンスの詳細をエディターに表示するためのリンクを含むメッセージを表示します。 Visual Studio、JetBrains、Eclipse、GitHub Mobile では、GitHub Copilot Chatはパブリック コードとの一致をブロックするフィルターを使用します。 設定に関係なく、厳格なテスト、IP スキャン、セキュリティの脆弱性のチェックなど、独自に生成されなかったマテリアルを使用するコードと同じ予防措置を講じる必要があります。 詳細については、「GitHub Copilot の提案に一致するパブリック コードの検索」を参照してください。

10. GitHub Copilot Chatのデプロイと導入に関するベスト プラクティス

責任ある AI は、GitHubとその顧客の間で共有されるコミットメントです。 GitHubは、安全性、公平性、透明性を中核に AI アプリケーションを構築しますが、お客様は、独自のコンテキスト内で責任を持ってこれらのテクノロジをデプロイおよび使用する上で重要な役割を果たします。 このパートナーシップをサポートするために、デプロイ者とエンド ユーザーが責任ある AI を効果的に実装できるように、次のベスト プラクティスを提供します。

  • ** GitHub Copilot Chatを使用して最終的な決定や機密性の高いドメインで結果を評価する場合は>注意を払い、結果を評価します**: 結果的な決定とは、教育、雇用、金融プラットフォーム、政府のベネフィット、医療、住宅、保険、法的プラットフォームへの個人のアクセスに法的または重大な影響を与える可能性のあるもの、または物理的、精神的、または財政的損害をもたらす可能性がある決定です。 金融プラットフォーム、医療、住宅などの機密性の高いドメインでは、さまざまなグループに不釣り合いな影響を与える可能性があるため、特に注意が必要です。 これらの分野の意思決定に AI を使用する場合は、影響を受けた利害関係者が意思決定の方法を理解し、意思決定をアピールし、関連する入力データを更新できることを確認します。

  • 法的および規制上の考慮事項を評価する: お客様は、AI プラットフォームとソリューションを使用する際に、潜在的な特定の法的および規制上の義務を評価する必要があります。これは、すべての業界またはシナリオでの使用に適していない可能性があります。 さらに、AI プラットフォームまたはソリューションは、該当するサービス条件および関連する行動規範で禁止されている方法で設計されておらず、使用されない場合があります。

  • 必要に応じて人間の監視を実行する: 人間の監視は、AI アプリケーションと対話するときの重要なセーフガードです。 AI アプリケーションは継続的に改善されますが、AI は間違いを犯す可能性があります。 生成される出力は、不正確、不完全、バイアス、ずれ、または目的の目標とは無関係である可能性があります。 これは、入力のあいまいさや基になるモデルの制限など、さまざまな理由が原因で発生する可能性があります。 そのため、ユーザーは GitHub Copilot Chatによって生成された応答を確認し、期待と要件に一致することを確認する必要があります。

  • 過度の依存のリスクに注意してください。 AI への過剰な依存は、ユーザーが誤った AI 出力または不完全な AI 出力を受け入れた場合に発生します。これは、主に、AI 出力の間違いを検出するのが難しい可能性があるためです。 エンド ユーザーの場合、過度の依存により、生産性の低下、信頼の喪失、アプリケーションの破棄、財務上の損失、心理的損害、身体的危害などが生じる可能性があります。 (たとえば、医師が不適切な AI 出力を受け入れる)。

  • 機密性の高いドメインでエージェント AI を設計する場合は、注意が必要です。 ユーザーは、エージェントアクションが元に戻せないか、非常に結果的である機密性の高いドメインでエージェント AI アプリケーションを設計またはデプロイするときは注意を払う必要があります。 GitHub 条件 で詳しく説明されているように、自律エージェント AI を作成する際にも、追加の予防措置を講じる必要があります。

  • ** GitHub Copilot Chatを代替ではなくツールとして使用します**: GitHub Copilot Chatはコードを生成するための強力なツールですが、それを人間のプログラミングの代わりではなくツールとして使用することが重要です。 GitHub Copilot Chatによって生成されたコードを常に確認してテストし、要件を満たし、エラーやセキュリティ上の問題がないことを確認します。

  • プロンプトは話題に沿った内容にする: GitHub Copilot Chat は、コーディングに関連する質問に対応することを目的としています。 プロンプトをコーディングの質問やタスクに制限すると、モデルの出力品質が向上します。

  • セキュリティで保護されたコーディングとコード レビューのプラクティスを使用する: ハードコーディングされたパスワードや SQL インジェクションの脆弱性を回避するなど、セキュリティで保護されたコーディングのベスト プラクティスに従い、生成されたすべてのコードを確認します。

  • コンテキスト (スペース) を使用して選択する: 最も関連性の高いファイル、リポジトリ、メモのみをスペースに追加すると、Copilot集中できます。 不要なコンテンツを含むスペースをオーバーロードすると、応答品質が希釈される可能性があります。

  • コンテキストの更新 (スペース): プロジェクトの進化に合わせて、スペース内のファイル、問題、またはドキュメントを更新します。 古いコンテキストでは、Copilotが不正確または不完全な回答を生成する可能性があります。

  • ソース(スペース)と併せて指示を使用する: 自然言語の指示と厳選されたソースを組み合わせることで、Copilot がユーザーの意図をより適切に理解できるようになります。

  • 空間内のアンカー チャット (スペース): スペース内から会話を開始すると、継続性と関連性が確保され、設定したコンテキストに合わせて応答が維持されます。

  • 発行前の PR の概要の確認 (GitHub.com): プル要求の概要は、変更に関する独自のコンテキストを補完 (置き換えではなく) することを目的としています。 プル要求を保存または発行する前に、生成された概要の精度を常に確認して評価してください。

  • コミットする前にコミット メッセージを確認する (GitHub.com および GitHub Desktop): コミット メッセージの生成は、変更についての独自の説明を補完するものであり、置き換えるものではありません。 コミットする前に、推奨されるタイトルと説明を常に確認して編集してください。 GitHub Desktop では、特定のコード行またはファイルを選択すると、精度が向上します。 コミット メッセージの生成は、GitHub.com の Copilot settings ページでオプトアウトできます。

  • フィードバックを送信: 問題や制限事項に遭遇した場合は、各チャットの回答の下にある高評価/低評価ボタンからフィードバックをお寄せください。 pull request の概要に関するフィードバックを提供する機能は、エンタープライズ設定によって異なります。 詳細については、「企業での GitHub Copilot のポリシーと機能の管理」を参照してください。 コミット メッセージの生成については、community ディスカッションまたはGitHub デスクトップ リポジトリで問題を開くことでフィードバックを共有できます。 これは、ツールを改善し、懸念事項に対処するのに役立ちます。

  • 最新: GitHub Copilot Chatは進化しています。 更新プログラム、新しいセキュリティ リスク、ベスト プラクティスを常に最新の状態に保ちます。

11. GitHub Copilot Chatの詳細を確認する

GitHub Copilot Chatの責任ある使用に関する追加のガイダンスについては、次のドキュメントを確認することをお勧めします。

責任ある AI の詳細を確認する