アプリケーション カードとは
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 のインライン候補では、作業中にオートコンプリート形式の候補が表示されます。 これらの候補は、エディターまたは GitHub.com のテキスト フィールドにインラインで表示されるため、コードの記述や要求の説明のプルをより迅速に行うことができます。
Copilot のインライン提案には、次の 2 つの形式があります:
- IDE インライン候補: サポートされているエディターでコードを入力すると、Copilotは、現在の行を完了したり、新しいコード ブロックを生成したり、既存のコードに対する編集を提案したりするためのインライン候補を自動的に提供します。 これらの提案には、次に行う編集の場所と、その編集内容 (コードの削除、変更、挿入など) の両方を予測することが含まれる場合があります。 提案のすべてまたは一部を受け入れるか、無視するか、入力を続けて無視することができます。 インライン提案は、さまざまなプログラミング言語とフレームワークで機能します。
- pull request テキスト補完: GitHub.com で pull request の説明を入力中に手を止めると、Copilot が続きを文章として提案します。 提案は、プルリクエストのタイトル、既存の説明テキスト、コミットのタイトル、部分的な差分、最近閲覧したプルリクエストと Issue のタイトルを基にしています。 Tab キーを押して提案を受け入れるか、入力を続けて拒否できます。
プル リクエストのテキスト補完で主にサポートされる言語は英語です。 インライン提案では、多くのプログラミング言語がサポートされています。品質は、各言語で使用できるトレーニング データの量と多様性によって異なります。
2. 主な用語
次の一覧は、GitHub Copilotインライン提案に関連する主要な用語の用語集を示しています。
- コンテンツフィルタリング:ユーザーに表示される前に、有害、不快、または安全でないコンテンツを検出してブロックするためのプロンプトと応答をスキャンする安全システム。
- ハルキュレーション: 言語モデルが出力を生成する現象で、妥当と思われるが、実際には正しくない、提供されたコンテキストでサポートされていない、または完全に製造されている。 ハルキュレーションは、大規模な言語モデルの既知のリスクであり、AI によって生成された出力の人間によるレビューが重要である主な理由です。
- Inline suggestion: 入力時にエディターに表示されるCopilotから AI によって生成されたコード候補。 インライン提案では、コードの挿入、変更、削除など、次の変更が行われる場所とその変更の内容の両方を予測することで、現在の行を完了したり、既存のコードに対する編集を提案したりすることができます。 候補はカーソルに表示される場合や、コードベース内の他の関連する場所にユーザーを誘導したりして、入力を続けることで受け入れたり、無視したりすることができます。
- 大規模言語モデル (LLM): 自然言語とコードを生成、分析、変換できるテキスト データの大規模な本文でトレーニングされたニューラル ネットワークの一種。 Copilot のインライン提案では、コンテキストを処理して提案を生成するために 1 つ以上の LLM を使用します。
- パブリック コード マッチング: Copilotの提案が一般公開されているコードと一致するかどうかをチェックする安全機能。 設定に応じて、一致する候補がブロックされるか、ソース リポジトリへの参照とライセンス情報で注釈が付けられます。
- Pull 要求のテキスト補完: GitHub.com での pull request の説明に対するオートコンプリート スタイルの提案。 入力中に一時停止すると、Copilotは pull request コンテキストに基づいて思考を継続するよう提案します。
- トレーニング データ: Copilot のインライン提案を支える基盤モデルのトレーニングに使用された、大量の公開テキストとコード。 トレーニング データの構成は、さまざまなプログラミング言語、フレームワーク、トピックにわたるモデルの提案の品質とカバレッジに影響します。
3. 主な機能
ここで概説する主な機能と性能は、GitHub Copilot のインライン提案が何を行うように設計されているか、およびサポート対象のタスク全体にわたってどのように機能するかを説明するものです。
- インライン コードの提案: サポートされているエディターでコードを入力すると、Copilotは、現在の行を完了したり、新しいコード ブロックを生成したり、既存のコードに編集を提案したりできるインライン候補を自動的に提供します。 これらの提案には、コードの挿入、変更、または削除、コード コメント、テストなどが含まれます。これは、行う必要がある変更と、コードベース内のどこで行われるべきかを予測することによって行われます。 候補がカーソルに表示されたり、ユーザーが関連する他の編集場所に案内されたりする場合があり、入力を続けることによって、完全または部分的に受け入れたり、無視したりすることができます。
- コメント駆動型コード生成: 想定するコードを記述するコード コメントを記述することで、インライン提案をガイドできます。 たとえば、「再帰を使用する」や「シングルトンパターンを使用する」といったコメントは、Copilot が提案するアルゴリズムの種類に影響します。
- 複数言語のサポート: インライン提案は、さまざまなプログラミング言語とフレームワークで機能します。 提案の品質は、各言語で使用できるトレーニング データの量と多様性によって異なります。 GitHubで開発されたプログラミング言語の一覧については、「プログラミング言語」を参照してください。
- プル リクエストのテキスト補完: GitHub.com でプル リクエストの説明を入力しているときに入力の手を止めると、Copilot が続きを文章で提案します。 この提案は、プルリクエストのタイトル、既存の説明テキスト、コミットタイトル、差分の一部、そして最近閲覧したプルリクエストと Issue のタイトルに基づいています。
4. 使用目的
GitHub Copilotインライン提案は、さまざまな業界の複数のシナリオで使用できます。 ユース ケースの例を次に示します。
- コード作成の高速化: 開発者は、コードの完了、新しいブロックの生成、既存のコードの変更など、入力時に予測された変更を受け入れることで、インライン提案を使用して迅速に作業できます。 修正候補は、現在の行全体、またはファイル内の他の関連する場所にコードを挿入、更新、または削除する場合があります。これは、変更を行う必要がある内容と発生する場所の両方を予測することです。 これは、サポートされている言語とフレームワーク間でコードが進化するにつれて、定型コード、繰り返しパターン、一般的なイディオム、一貫性の維持に特に役立ちます。
- 単体テスト: Copilotは、入力パラメーター、予想される出力値、アサーションなど、周囲のコードに基づいてテスト ケースを提案できます。 これにより、開発者は、手動で識別するのが困難なエッジ ケースや境界条件など、テスト カバレッジをより迅速に作成できます。 生成されたテストは、すべてのシナリオに対応していない可能性があるため、引き続き確認する必要があります。
- コメントによるコード生成: 開発者は、必要なコードを記述する自然言語コメントを記述でき、Copilotは対応する実装または変更を生成できます。 これは、クラスに追加するアルゴリズム、設計パターン、またはメソッドとプロパティを指定する場合に役立ちます。
- Drafting pull request description: GitHub.com に pull request の説明を記述する場合、Copilotは、考えを続けることを提案でき、変更の明確な概要をより迅速に記述できます。
5. モデルとトレーニング データ
インライン提案GitHub Copilot、さまざまな AI モデルを活用して、ユーザーに表示されるエクスペリエンスを強化します。 Copilotで使用できるモデルの比較については、AI モデルの比較 を参照してください。 サポートされているモデルの完全な一覧については、 AUTOTITLE を参照してください。 モデルがホストされる場所については、 GitHub Copilotのモデルのホスティング を参照してください。 GitHub Copilot のインライン候補を支える基盤モデルのトレーニングに使用されたデータについて詳しくは、上記のリンク先にある AI モデル比較と、GitHub Copilot FAQ の GitHub Copilot はどのようなデータでトレーニングされていますか? を参照してください。
プル要求のテキスト補完では、汎用の大規模言語モデルを使用して Copilot API を利用する単純なプロンプト フローを使用します。 この機能には、トレーニング済みの追加モデルは使用されません。
6. パフォーマンス
Copilotインライン提案は、自然言語処理と機械学習の組み合わせを使用して、周囲のコンテキストを理解し、提案を提供することで機能します。 このプロセスは、一貫したパイプラインに従います。
- 入力処理: カーソル位置からの周囲のコードは、インライン検索候補システムによって前処理され、コンテキスト情報 (エディターで開いているタブからのコード スニペットなど) と組み合わされ、プロンプトの形式で大規模な言語モデルに送信されます。 データ保持の詳細については、Copilot セキュリティ センターを参照してください。
- 言語モデル分析: 大規模な言語モデルが入力プロンプトを処理します。 インライン検索候補の場合、モデルは、エディター内の現在のファイルと開いているファイルのコンテキストに基づいてインライン候補と予測された編集の両方を生成します。たとえば、コードの挿入、変更、削除を含め、行う必要がある変更と発生する場所を予測します。 pull request のテキスト補完では、Copilot は Copilot API を介して言語モデルを使用します。
- 応答の生成: 言語モデルは、入力プロンプトと提供されたコンテキストの分析に基づいて応答を生成します。 インライン提案の場合、これは、編集内容とコードベース内のどこで行われるかを予測することで、コードの完了、新しいブロックの生成、既存のコードへの変更の提案 (削除を含む) の形式を取る場合があります。 プル リクエストのテキスト補完では、応答は説明文の続きを文章として生成したものになります。
- 出力の書式設定: 応答は、周囲のコンテンツとは視覚的に異なる変更候補としてエディターにインラインで表示されます。 修正候補は、カーソルの近くに表示されるだけでなく、編集が提案されるコードベース内の他の関連する場所を強調表示し、明示的に受け入れる場合にのみファイルまたはテキスト フィールドに適用されます。
Copilotインライン提案は、既存の作業を強化するための最も関連性の高い有用な提案を提供することを目的としています。 ただし、探している回答が必ずしも提供されるとは限りません。 ユーザーは、提案を受け入れる前にレビューと検証を行い、正確で適切であることを確認する責任があります。 製品開発プロセスの一環として、生成された提案はコンテンツ フィルターを通じて実行されます。 コンテンツ フィルタリング システムは、有害または不快なコンテンツ、または安全でないコードを検出してブロックします。 GitHubの設定に応じて、フィルターはパブリック コードとの一致を含む提案もブロックまたは注釈付けします。
エクスペリエンス別の違い
インライン提案 (IDE)
インライン提案では、タスクに特化した微調整された言語モデルが使用されます。 現在の作業を囲むコードと、コードベースとユーザーのシステムからのコンテキストを分析します。 この分析に基づいて、システムはコードを完了したり、新しいブロックを生成したり、既存のコードに対する編集 (削除を含む) を提案したりできます。そのためには、行う必要がある変更とコードベース内のどこで行われるかを予測します。 システムは、コーディング タスクを支援することのみを目的としています。
プル リクエストのテキスト補完 (GitHub.com)
プル要求のテキスト補完では、汎用の大規模言語モデルを使用する Copilot API を利用した単純なプロンプト フローが使用されます。 プル リクエストの説明を入力中に手を止めると、システムはプル リクエストのタイトル、既存の説明文、コミット タイトル、差分の一部、最近表示したプル リクエストや Issue のタイトルを組み合わせて、考えの続きを文章として提案します。 サポートされている主な言語は英語です。
7. 制限事項
GitHub Copilot のインライン提案の制限事項を理解することは、それらを安全かつ効果的な範囲内で使用すべきかを判断するうえで重要です。 革新的なソリューションやアプリケーションでCopilotインライン提案を活用することをお勧めしますが、Copilotインライン提案はすべてのシナリオに対して設計されたわけではないことに注意してください。 ユース ケースを選択する際には、 GitHub 条件 と次の考慮事項を参照することをお勧めします。
- 制限付きスコープ: インラインの提案は、コードの大規模な本文でトレーニングされますが、まだスコープが限られており、より複雑なコード構造を処理したり、プログラミング言語を不明瞭にしたりできない場合があります。 言語ごとに、提案の品質は、その言語のトレーニング データの量と多様性によって異なります。 たとえば、JavaScript はパブリック リポジトリで適切に表現されており、最もサポートされている言語の 1 つです。 パブリック リポジトリでの表現が少ない言語は、支援するのが難しい場合があります。 さらに、インライン提案では、記述されているコードのコンテキストに基づいてのみコードを提案できるため、より大きな設計やアーキテクチャの問題を特定できない可能性があります。 インライン候補は、自然言語の出力ではなく、コードとコード関連の出力を生成することを目的としています。
- 潜在的なバイアス: Copilot の学習データのソースには、ツールによって引き継がれる可能性のあるバイアスや誤りが含まれている場合があります。 さらに、インライン候補は、特定のプログラミング言語やコーディング スタイルに偏りがあり、最適ではないコード候補や不完全なコード候補につながる可能性があります。
- セキュリティ リスク: Copilotは、記述されているコードのコンテキストに基づいてコードを生成します。これは、慎重に使用しないと機密情報や脆弱性が公開される可能性があります。 Copilotを使用してセキュリティに敏感なアプリケーションのコードを生成し、生成されたコードを常に確認してテストする場合は注意が必要です。
- 公開コードとの一致: インライン候補機能は新しいコードを生成できますが、その生成は確率的に行われます。 確率は低くなりますが、Copilotによって、トレーニング セット内のコードに一致するコード候補が生成される場合があります。
- 不正確なコード: Copilot は、一見有効に見えるコードを生成することがありますが、実際には意味的または構文的に正しくなかったり、開発者の意図を正確に反映していなかったりする場合があります。 不正確なコードのリスクを軽減するには、重要または機密性の高いアプリケーションを処理する場合は特に、生成されたコードを慎重に確認してテストする必要があります。 また、生成されたコードがベスト プラクティスと設計パターンに準拠し、コードベースの全体的なアーキテクチャとスタイル内に収まるように確認する必要もあります。
- 大きなプル リクエストは提案の品質を低下させる可能性があります: 非常に大きなプル リクエストでは、Copilot がテキスト補完のために利用するプル リクエスト コンテンツの一部が API 呼び出しに収まらない可能性があります。 その結果、予想される一部の提案が表示されないか、コンテキストに応じて正確でない可能性があります。
- pull request テキスト補完におけるハルシネーションのリスク: pull request テキスト補完は大規模言語モデルによって生成されるため、ハルシネーションのリスクがあります。つまり、Copilot がもっともらしく聞こえるものの、事実としては不正確な記述を生成してしまう可能性があります。 発行する前に生成されたテキストを慎重に確認することが不可欠です。
- プル リクエスト内容の複製: プル リクエストのテキスト補完は、プル リクエスト自体の内容を基に行われます。 pull request コンテンツに有害または不快な用語 (コミット メッセージや差分など) が表示される場合、提案にそれらの用語も含まれる可能性があります。
- 対応言語: プル リクエストのテキスト補完で主にサポートされる言語は英語です。 インライン提案では、多くのプログラミング言語がサポートされています。品質は、各言語で使用できるトレーニング データの量と多様性によって異なります。
8. 評価
パフォーマンスと安全性の評価では、有害なコンテンツを生成するリスクを特定しながら、根拠、関連性、一貫性などの要因を調べることで、AI アプリケーションが確実かつ安全に動作しているかどうかを評価します。 以下の評価は、既に実施されている安全コンポーネントを用いて行ったが、これも9に記載されている 。安全コンポーネントと軽減策。
パフォーマンスと品質の評価
GitHub Copilotインライン提案は、提案の品質、関連性、開発者の価値を評価するように設計された多層オフラインおよびオンライン評価システムを通じて評価されます。 また、このシステムは、高品質の標準を維持しながら、迅速なモデル反復を可能にするように設計されています。
パフォーマンスと品質の評価方法
オフライン評価では、複数のプログラミング言語にわたる主要なインライン提案シナリオをカバーする、精選された一連のテスト スイートを使用します。 モデルは、コードの正確性やコンテキストの関連性などの主要な動作の回帰を検出するために、予想される出力に対して評価されます。 また、出力品質、一貫性、開発者の意図との整合性を評価することで、候補モデルと運用ベースラインを比較します。
オンライン評価では、候補モデルを制御されたユーザー セグメントにデプロイして、受け入れ率、表示レート、編集品質、保持期間を測定します。
評価では、待機時間、トークン使用量、コンピューティングフットプリントを品質メトリックと共に追跡し、モデルが運用上の制約内で価値を提供できるようにします。
また、MicrosoftとGitHub内部開発者の経験を活用して、実際の開発条件下で候補モデルを評価し、より広範なロールアウトの前に、質的なフィードバックとエッジケースの動作に関する早期シグナルを提供します。
リスクと安全性の評価
AI によって生成されるコンテンツに関連する潜在的なリスクを評価することは、重大度が異なるコンテンツ リスクから保護するために不可欠です。 これには、有害なコンテンツの生成や脱獄攻撃の脆弱性のテストに対する AI アプリケーションの素因の評価が含まれます。 GitHubでは、
- 憎しみと不公平さ
- 性的
- Violence
- 自傷行為
- 保護材料
- 脱獄
- コードの脆弱性
リスクと安全性の評価方法
敵対的テスト: 基本モデルが更新されたとき、またはトレーニング データ ソースに重大な変更が加えられた場合 (新しい種類のデータセットの組み込みなど)、モデルは安全テストを受け、有害な、安全でない、またはポリシー違反の出力を引き出すように設計された入力で意図的にチャレンジされます。 このテストでは、有害なコンテンツ、知的財産リスク、安全でないコード生成など、複数のリスク カテゴリについて説明します。 結果は運用環境のベースラインと比較され、回帰がある場合は、真のリスクを評価するために手動でレビューを受けます。
品質と安全性に関する評価データ
当社の評価データは、 安全性 と 品質の重要な領域全体で AI アプリケーションのパフォーマンスを評価し、実際のシナリオとリスクをシミュレートするためにカスタム構築されています。 私たちは、多分野にわたる研究と専門家の意見に基づいて、懸念事項の関連評価の側面を特定することから始めます。 これらの懸念は、対象となる評価目標に変換され、評価メトリックの策定をガイドします。 safetyでは、望ましくない応答またはエッジケース応答を引き出す敵対的なプロンプトを作成し、その後、GitHubの標準との整合性を評価するためにトレーニングされた AI 支援アノテーターを使用してスコア付けされます。 品質を高めるために、取得拡張生成 (RAG) アプリケーションとエージェントの評価など、シナリオに関連するルーブリックベースのプロンプトを作成します。 データセットは、実際のユーザー シナリオをシミュレートするために、合成データセットやパブリック データセットなど、さまざまなソースからキュレーションされます。 キュレーションされたデータセットを使用すると、両方の評価が反復的に改良され、人間のアライメントが行われ、メトリックの有効性と信頼性が向上します。 この手法は、顧客が評価を使用してより優れた AI を構築する方法を反映した、反復可能で厳格な評価の基礎を形成します。
カスタム評価
Copilotインライン提案は、潜在的な安全リスクを特定して対処するために RAI レッド チーミングの対象となっています。 今後も機能の有効性と安全性を監視しています。 詳細については、Microsoft セキュリティ ブログの「Microsoft AI Red Team building future of safer AI を参照してください。
9. 安全コンポーネントと軽減策
GitHub Copilotインライン提案では、提案パイプライン全体で複数の保護層を持つ安全アーキテクチャが採用されています。
- 入力と出力の処理: コード コンテキスト (編集履歴、周囲のコード、カーソル位置など) は、言語モデルに到達する前に構造化され、スコープが設定されます。 モデルは狭いタスク (定義されたウィンドウ内の次のコード編集を予測する) に制約され、厳密な出力形式に従う必要があり、自由形式の応答ではなくコード編集のみが生成されます。 また、システム プロンプトでは、コンテンツ ポリシーへの準拠が強制され、ガイドラインに違反する可能性がある要求に対する拒否応答が義務付けられています。
- Content とコードの安全フィルター: GitHub Copilotには、有害または不適切な出力を減らし、誤用を防ぐために設計された安全フィルターが含まれています。 ユーザーは、使用する前に提案を確認する必要があります。
- パブリック コード マッチング: GitHub Copilotは、提案が公開されているコードと一致するタイミングを識別するように設計された重複検出システムを使用します。 組織や個人はこれを構成して、一致する提案をブロックしたり、リポジトリとライセンス情報を参照するコードを提供したりすることができます。
- 人間の監視: インラインの提案は、人間のループ内の原則に従います。提案は周囲のコンテンツとは視覚的に異なり、ユーザーが明示的に受け入れた場合にのみ適用されます。 意図的なユーザー 操作なしでは、コードの変更は行われません。 ユーザーは、生成されたすべての提案を確認、テスト、検証することをお勧めします。
10. GitHub Copilotインライン提案のデプロイと導入に関するベスト プラクティス
責任ある AI は、GitHubとその顧客の間で共有されるコミットメントです。 GitHubは、安全性、公平性、透明性を中核に AI アプリケーションを構築しますが、お客様は、独自のコンテキスト内で責任を持ってこれらのテクノロジをデプロイおよび使用する上で重要な役割を果たします。 このパートナーシップをサポートするために、デプロイ者とエンド ユーザーが責任ある AI を効果的に実装できるように、次のベスト プラクティスを提供します。
- 結果的な決定や機密性の高いドメインでCopilot の提案を使用する場合は注意を払い、結果を評価します: 結果的な決定とは、教育、雇用、金融プラットフォーム、政府のベネフィット、医療、住宅、保険、法的プラットフォームへの個人のアクセスに法的または重大な影響を与える可能性のあるもの、または物理的、精神的、または財政的損害をもたらす可能性がある決定です。 金融プラットフォーム、医療、住宅などの機密性の高いドメインでは、さまざまなグループに不釣り合いな影響を与える可能性があるため、特に注意が必要です。 これらの分野の意思決定に AI を使用する場合は、影響を受けた利害関係者が意思決定の方法を理解し、意思決定をアピールし、関連する入力データを更新できることを確認します。
- 法的および規制上の考慮事項を評価する: お客様は、AI プラットフォームとソリューションを使用する際に、潜在的な特定の法的および規制上の義務を評価する必要があります。これは、すべての業界またはシナリオでの使用に適していない可能性があります。 さらに、AI プラットフォームまたはソリューションは、該当するサービス条件および関連する行動規範で禁止されている方法で設計されておらず、使用されない場合があります。
- プロンプトは話題に沿った内容にする: Copilot のインライン候補は、コードまたはコードに関連する提案を生成するためのものです。 エディターのコンテンツをコードまたはコーディング関連の情報に制限すると、提案の品質が向上する可能性があります。
- pull request テキスト入力候補の適切なコンテキストを提供する: pull request テキスト入力候補の品質は、pull request タイトルの品質、コミット メッセージ、および説明に既に含まれているテキストによって異なります。 わかりやすいタイトルとコミット メッセージを提供すると、提案の関連性が向上します。 作成する pull request の情報が正確であることを確認して評価することはユーザーの責任です。
- 代替ではなく、Copilotインライン候補をツールとして使用します: Copilotはコードを生成するための強力なツールですが、人間のプログラミングの代わりとしてではなく、ツールとして使用することが重要です。 Copilotの提案を受け入れる前に常に確認し、要件を満たし、エラーやセキュリティ上の問題がないことを確認するために、後でさらに検証する必要があります。
- 必要に応じて人間の監視を実行する: 人間の監視は、AI アプリケーションと対話するときの重要なセーフガードです。 AI アプリケーションは継続的に改善されますが、AI は間違いを犯す可能性があります。 生成される出力は、不正確、不完全、バイアス、ずれ、または目的の目標とは無関係である可能性があります。 これは、入力のあいまいさや基になるモデルの制限など、さまざまな理由が原因で発生する可能性があります。 そのため、ユーザーは Copilot のインライン提案によって生成された応答を確認し、それらが自身の期待や要件に合致していることを検証する必要があります。
- 過度の依存のリスクに注意してください。 AI への過剰な依存は、ユーザーが誤った AI 出力または不完全な AI 出力を受け入れた場合に発生します。これは、主に、AI 出力の間違いを検出するのが難しい可能性があるためです。 エンド ユーザーの場合、過度の依存により、生産性の低下、信頼の喪失、アプリケーションの破棄、財務上の損失、心理的損害、身体的危害などが生じる可能性があります。 (たとえば、医師が不適切な AI 出力を受け入れる)。
- 機密性の高いドメインでエージェント AI を設計する場合は、注意が必要です。 ユーザーは、エージェントアクションが元に戻せないか、非常に結果的である機密性の高いドメインでエージェント AI アプリケーションを設計またはデプロイするときは注意を払う必要があります。 GitHub 条件 で詳しく説明されているように、自律エージェント AI を作成する際にも、追加の予防措置を講じる必要があります。
- 安全なコーディングとコード レビューのプラクティスを使用する: インライン提案では構文的に正しいコードを生成できますが、常に安全であるとは限りません。 ハードコーディングされたパスワードや SQL インジェクションの脆弱性の回避など、セキュリティで保護されたコーディングのベスト プラクティスに従うだけでなく、コード レビューのベスト プラクティスに従う必要があります。
- 常に最新情報を把握する: Copilot のインライン提案は、まだ発展途上の技術です。 ツールの更新や変更のほか、発生する可能性がある新しいセキュリティ リスクやベスト プラクティスについても、最新の状態を保つ必要があります。 Visual Studio Code、Visual Studio、JetBrains スイートの IDE では、拡張機能の自動更新が既定で有効になっています。
重要
セキュリティの脆弱性、バグ、IP 侵害など、生成されたコードに関連するすべてのリスクの責任はユーザー側にあります。
11. GitHub Copilot のインライン候補の詳細を見る
Copilotインライン提案の責任ある使用に関する追加のガイダンスについては、次のドキュメントを確認することをお勧めします。