送ったデータは使われちゃうの？よく聞かれるAzure OpenAI Serviceのデータプライバシーとセキュリティについてまとめました。

この記事は、Azure OpenAI Serviceのドキュメント「Responsible AI（責任あるAI）」の4つのページ「わかりやすさに関するメモ（Use cases for Azure OpenAI Service）」「制限付きアクセス（Limited access）」「倫理規定（Code of conduct）」「データ、プライバシー、セキュリティ（Data, privacy, and security）」の4つのドキュメントを要約して日本語化したものです。

<strong>今回は「<a href="https://learn.microsoft.com/ja-jp/legal/cognitive-services/openai/data-privacy">データ、プライバシー、セキュリティ（Data, privacy, and security）</a>」についてです。</strong>

<h2>イントロダクション</h2>

この記事では、Azure OpenAIサービスに提供されたデータがどのように処理、使用、および保管されるかについて詳細を提供します。Azure OpenAIは、コンプライアンス、プライバシー、およびセキュリティに配慮して設計されていますが、お客様はこの技術の使用と実装に責任があります。本記事では、Azure OpenAIサービスがどのようにデータを処理するかについて説明し、顧客が保持するデータの種類やその管理方法についても解説します。
<strong>※本記事はChatGPT含めたOpenAIについてではなく、Azure OpenAI Serviceについての解説となります。</strong>

Azure OpenAI Serviceに送信されたデータが勝手に利用される可能性があるかどうかという問題について、簡潔にまとめてみました。<strong>結論から言うと、Azure OpenAI Serviceは利用者のデータを勝手に利用することはありません。</strong>
<ol>
 	<li>Azure OpenAI Serviceでは、利用者データはOpenAIに送信されることはありません。また、Azure OpenAI Serviceのモデルをトレーニングするために利用者データが使用されることはありません。</li>
 	<li>Azure OpenAI Serviceでは、ポリシーに違反する可能性がある内容について監視を行い、必要に応じて確認を行います。</li>
 	<li>ファインチューニングによって作成されたモデルは、そのユーザーのモデルのファインチューニングにのみ使用されます。</li>
</ol>

Azure OpenAIサービスに提供されたデータがどのように処理、使用、および保管されるかについて詳細を提供します。Azure OpenAIは、サービスの提供と適用製品条項に違反する使用を監視するためにデータを処理および保管します。Microsoftの製品およびサービスのデータ保護付加契約書も参照してください。Azure OpenAIは、コンプライアンス、プライバシー、およびセキュリティに配慮して設計されていますが、お客様はこの技術の使用と実装に責任があります。
<h2><span>Azure OpenAIサービスが処理するデータについて</span></h2>
Azure OpenAIは、以下の種類のデータを処理しています。
<ol>
 	<li>プロンプトと補完。プロンプトはユーザーによって提出され、補完はサービスによって出力されます。補完は、完了(/completions、/chat/completions)と埋め込み(embeddings)操作を介して行われます。</li>
 	<li>トレーニングと検証データ。プロンプトと補完のペアからなる、独自のトレーニングデータを提供することができます。このデータは、OpenAIモデルの微調整のために使用されます。</li>
 	<li>トレーニングプロセスの結果データ。微調整されたモデルのトレーニング後、サービスは、各ステップで処理されたトークンと検証スコアを含むジョブのメタデータを出力します。</li>
</ol>
これらのデータは、Azure OpenAIサービスが提供され、適用可能な製品条項に違反する使用がないかどうかを監視するために、Azure OpenAIによって処理されます。Azure OpenAIは、コンプライアンス、プライバシー、セキュリティに配慮して設計されていますが、お客様は使用方法とこの技術の実装に責任を持つ必要があります。
<h2><span>Azure OpenAIサービスがデータを処理する方法について</span></h2>
Azure OpenAIサービスがデータを処理する方法については、以下の３つのプロセスに分かれています。
<ol>
 	<li><strong>ファインチューニングによるカスタムモデルの作成 </strong><br />
Azure OpenAIサービスでは、ユーザーが提供したトレーニングデータを使用して、カスタムモデルを作成することができます。このプロセスでは、トレーニングデータが自動的に品質チェックされ、Azure OpenAIプラットフォーム上のモデルトレーニングコンポーネントにインポートされます。トレーニング中、データはバッチに分割され、OpenAIモデルの重みを変更するために使用されます。<br /><br /></li>
 	<li><strong>テキストプロンプトの処理による完成文や埋め込み結果の生成 </strong><br />
ユーザーは、REST API、クライアントライブラリ、またはAzure OpenAI Studioを使用して、完成文や埋め込み結果を生成するためのテキストプロンプトをモデルに提出することができます。Azure OpenAIサービスでは、プロンプトと完成文の双方に対してコンテンツフィルタリングモデルが実行されます。この処理により、モデルにはプロンプトと完成文が保存されず、プロンプトと完成文を使用してモデルのトレーニングや改良を行うことはありません。<br /><br /></li>
 	<li><strong>悪用や有害なコンテンツの生成、または障害が発生した場合のデバッグ目的でのプロンプトと完成文の解析 </strong><br />
Azure OpenAIサービスとMicrosoftの担当者は、プロンプトと完成文を分析して、悪用や有害なコンテンツの生成を検出し、障害が発生した場合のデバッグを行うことがあります。しかし、このプロセスにおいても、プロンプトと完成文は保存されず、プロンプトと完成文を使用してモデルのトレーニングや改良を行うことはありません。</li>
</ol>
<h2>OpenAIモデルのファインチューニング用のトレーニングデータについて</h2>
Azure OpenAIサービスにおいて、ユーザーが提供するトレーニングデータはFine-tunes APIを通じてAzure OpenAI Studioにアップロードされます。トレーニングデータは自動ツールによって事前に品質チェックが実施され、データのフォーマットチェックが行われます。その後、Azure OpenAIプラットフォーム上のモデルトレーニングコンポーネントにトレーニングデータがインポートされます。トレーニングプロセス中に、トレーニングデータはバッチに分割され、OpenAIモデルの重みを変更するために使用されます。<br />
提供されたトレーニングデータは、そのユーザーのモデルのファインチューニングにのみ使用され、Microsoftはユーザーのトレーニングデータを使用して、Microsoftのモデルをトレーニングしたり改善したりすることはありません。
<h2>テキストプロンプトからの補完およびエンベッドの結果生成について</h2>
Azure OpenAIサービスでは、顧客はREST API、クライアントライブラリ、Azure OpenAI Studioを通じてCompletionsまたはEmbeddings操作を使用して、テキストプロンプトをモデルに送信し、モデルがテキスト出力（補完）を生成し、API経由で返されます。

サービスにデータが送信されると、それはコンテンツフィルターおよび指定されたOpenAIモデルを通じて処理されます。コンテンツフィルターモデルは、プロンプト入力と生成された補完の両方で実行されます。

これらの操作中、プロンプトや補完はモデルに保存されず、モデルのトレーニング、再トレーニング、改善に使用されることはありません。
<h2><span>悪用と有害なコンテンツ生成の防止</span></h2>
Azure OpenAIサービスには、潜在的に有害なコンテンツをフィルタリングするコンテンツ管理システムが含まれています。このシステムは、入力プロンプトと生成された補完の両方を実行し、誤用を検出するための分類モデルのアンサンブルを通過します。システムが有害なコンテンツを検出した場合、プロンプトが不適切である場合はAPI呼び出しでエラーが返され、生成がフィルタリングされた場合は応答のfinish_reasonにcontent_filterが表示されます。コンテンツのフィルタリングについてはこちらをご覧ください。これらのコンテンツ分類モデルにはプロンプトや補完は保存されず、プロンプトや補完はトレーニング、再トレーニング、または分類モデルの改善に使用されません。<br />

同期的なコンテンツフィルタリングに加えて、Azure OpenAIサービスは、30日間、サービスからのプロンプトと補完を監視するために保存します。この期間中に、Microsoftの承認された従業員は、自動システムによってトリガーされたプロンプトと補完データを調査して、潜在的な不適切な使用や不正行為を確認することができます。欧州経済領域でAzure OpenAIサービスを展開している顧客に対しては、Microsoftの承認された従業員は欧州経済領域に配置されます。<br />

ポリシー違反が確認された場合、顧客には、問題を即座に修正し、さらなる不正行為を防止するための措置を取るように求められる場合があります。問題に対処しない場合、Azure OpenAIリソースのアクセスが停止または中止される可能性があります。<br />

顧客は、こちらのフォームを提出してコンテンツフィルタリングおよび/または乱用監視を変更するように申請できます。顧客が承認され、すべての要件を満たして乱用監視を変更し続ける場合、プロンプトと補完は保存されません。
<h2><span>データの保持方法と顧客が利用できるコントロールについて</span></h2>
<ol>
 	<li><strong>Azure OpenAIサービスが保持するデータについて</strong><br />
トレーニング、検証、およびトレーニング結果データ。ファインチューニングAPIを使用して、顧客はトレーニングデータをアップロードし、モデルを調整することができます。このデータはAzure Storageに保存され、Microsoft Managed keysによって暗号化されます。アップロードされたファイルは、DELETE API操作によってユーザーによって削除できます。<br /><br /></li>
 	<li><strong>ファインチューンされたOpenAIモデル</strong><br />
ファインチューンAPIを使用して、顧客は自分自身のファインチューンされたバージョンのOpenAIモデルを作成できます。これは、サービスを介してアップロードされたトレーニングデータに基づいています。トレーニングされたファインチューニングモデルは、Azure Storageに保存され、暗号化されます。ファインチューニングモデルは、DELETE API操作を呼び出すことによって、ユーザーによって削除できます。<br /><br /></li>
 	<li><strong>プロンプトと補完</strong><br />
Azure OpenAIサービスがプロンプトと補完のデータを保持する場合がありますが、これは最大30日間に限定されます。データは暗号化され、同じリージョン内のAzure Storageに保存されます。Microsoftの承認された従業員のみが、データをデバッグしたり、適用可能な製品条件に違反している可能性がある乱用のパターンを調査するためにアクセスできます。ただし、特定の条件を満たす場合は、顧客が承認されると、乱用モニタリングを変更できるため、プロンプトと補完のデータが保持されないことに注意してください。</li>
</ol>

顧客は、<a href="https://www.microsoft.com/ja-jp/trust-center?rtc=1">Azure Trust Center</a>を訪問して、Microsoftのプライバシーとセキュリティに関する取り組みについて詳しく知ることができます。

<h2>よくある質問</h2>
<ol start="3">
 	<li><strong>ロギングと人間のレビュープロセスから抜けることはできますか？ </strong><br />
一部のお客様は、機密性が高く、機密保持が義務付けられている入力データを処理するためにAzure OpenAIサービスを使用したいと考える場合があります。ただし、有害な出力や誤用の可能性が低い場合、上記のような悪用検出のためにMicrosoftがそのようなデータを処理することを望まない場合があります。これは、内部方針や適用される法的規制によるものです。このような懸念に対処するため、Microsoftでは、特定の使用事例について証明し、追加の限定されたアクセスの条件を満たすお客様に、<a href="https://aka.ms/oai/modifiedaccess">Azure OpenAIコンテンツ管理機能の修正を申請する</a>ことを許可しています。<br /><br /></li>
 	<li><strong>ロギングがオフになっているかどうかを確認する方法はありますか？ </strong><br />
承認されたお客様がログの監視がオフになっていることを確認する方法は2つあります。AzureポータルまたはAzure CLI（またはMGMT API）です。
注意: "ContentLogging"属性の値が"false"の場合、ログがオフになっています。それ以外の場合、このプロパティはAzureポータルまたはAzure CLIの出力に表示されません。ログがオンになっているかどうかを確認したい場合は、サポートチケットを発行する必要があります。<br /><br /></li>
 	<li><strong>コンテンツフィルタリングによってログが取られますか？ </strong><br />
いいえ、コンテンツフィルタリングは悪用監視と異なり、データのログまたは保存は必要ありません。<br />
コンテンツフィルタリングは、乱用の検出を目的としたログ記録やデータの保存は必要ありません。コンテンツフィルタリングは、推論時にプロンプトと補完に対してアルゴリズム的に検出を適用して、フィルタリングするコンテンツを決定します。このプロセスではデータは安全に保存されず、プロンプトや補完のヒトレビューも行われません。サービスにおけるコンテンツフィルタリングについては、こちらで詳しく説明されています。また、Azure OpenAIのコンテンツフィルタリングを変更する場合は、こちらのフォームを使用して申請できます。上述のように、コンテンツフィルタリングおよび乱用検出の変更を申請するために同じフォームを使用しますが、データログとアクセスの影響は変更内容に応じて異なります。<br />
また、Azure OpenAIサービスのコンテンツフィルタリングは、悪用監視とは異なります。コンテンツフィルタリングは、プロンプトと完了時のアルゴリズム的検出を適用して、コンテンツがフィルタリングされる必要があるかどうかを判断することで機能します。このプロセスの一部としてデータはストレージに保存されず、フィルタリングされたプロンプトや完了についての人的レビューも行われません。このサービスに関する詳細は、<a href="https://learn.microsoft.com/en-us/azure/cognitive-services/openai/concepts/content-filter">Azure OpenAI Service content filtering - Azure OpenAI | Microsoft Learn</a>をご覧ください。また、お客様はAzure OpenAIのコンテンツフィルタリングを変更するために申請することもできます。詳細については、<a href="https://customervoice.microsoft.com/Pages/ResponsePage.aspx?id=v4j5cvGGr0GRqy180BHbR7en2Ais5pxKtso_Pz4b1_xURE01NDY1OUhBRzQ3MkQxMUhZSE1ZUlJKTiQlQCN0PWcu">Azure OpenAI Limited Access Review: Modified Content Filters and Abuse Monitoring (microsoft.com)</a>を参照してください。上述したように、お客様はコンテンツフィルタリングおよび/または悪用監視の変更を申請するために同じフォームを使用しますが、データログとアクセスへの影響は、コンテンツ管理システムのどの側面が変更されたかによって異なります。<br /><br /></li>
 	<li><strong>Microsoftが私のデータにアクセスする必要がある場合はどうなりますか？</strong><br />
Microsoftがカスタマーのデータにアクセスする必要がある場合は、ほとんどの操作、サポート、およびトラブルシューティングはカスタマーのデータへのアクセスを必要としません。カスタマーのデータにアクセスする必要がある稀な場合には、<a href="https://learn.microsoft.com/en-us/azure/security/fundamentals/customer-lockbox-overview">Customer Lockbox for Microsoft Azure</a>を使用して、カスタマーがデータアクセスの承認または拒否を行うことができます。カスタマーロックボックスは、Microsoftがカスタマーのデータにアクセスする必要がある場合に使用されます。この場合、カスタマーがサポートチケットを開いた場合や、Microsoftが問題を特定した場合にカスタマーのデータにアクセスする必要がある場合です。Azure OpenAI Serviceでは、カスタマーロックボックスがサービスによって保存されるすべてのカスタマーデータ（ファインチューニング用にアップロードされたデータなど）に適用されますが、上記の乱用監視のために記録され、アクセスされたプロンプトおよび完了を除きます。<br /><br /></li>
 	<li><strong>Azure OpenAIによって処理された顧客データがOpenAIに送信されることはありますか？</strong><br />Azure OpenAIでは、顧客データがOpenAIに送信されることはありません。MicrosoftはAzureのインフラストラクチャ内にOpenAIモデルをホストしており、Azure OpenAIに送信されたすべての顧客データはAzure OpenAIサービス内に留まります。<br /><br /></li>
 	<li><strong>顧客データはOpenAIモデルのトレーニングに使用されますか？</strong><br />また、Azure OpenAIサービス内のモデルのトレーニング、再トレーニング、または改良に、顧客データを使用することはありません。つまり、顧客データはAzure OpenAIサービスで処理された後、削除されます。したがって、顧客のデータが誤ってOpenAIに送信されたり、OpenAIのモデルのトレーニングに使用されたりすることはありません。</li>
</ol>
<h2>まとめ</h2>
Azure OpenAI Serviceは、Microsoftのクラウドインフラストラクチャ内でOpenAIモデルをホストしており、ユーザーがアップロードしたデータはAzure OpenAI Service内で処理されます。このサービスは、AIモデルを利用して開発者が様々な応用プログラムを開発するために使用されます。OpenAIモデルのトレーニングには大量のデータが必要ですが、<strong>Azure OpenAI Serviceではユーザーのデータをトレーニングに使用することはありません。</strong>

また、Azure OpenAI Serviceには、コンテンツフィルタリング、乱用検出、およびデータの暗号化といったセキュリティ機能が備わっており、ユーザーのデータを保護するためにさまざまな仕組みがあります。例えば、<strong>乱用検出によっては、ユーザーが送信したデータのログを取得し、検査する場合がありますが、Microsoftはユーザーのデータを利用しません。</strong>Azure OpenAI Serviceが処理したデータはすべてAzure内で処理され、<strong>OpenAIモデルがホストされているAzure OpenAI Service内でのみ使用されます。</strong>

Microsoftは、ユーザーのデータを利用することはありません。Azure OpenAI Serviceは、高度なセキュリティ機能を備えた安全なサービスであり、開発者がAIモデルを活用することができるプラットフォームとなっています。