リソース/モデルのトレーニング/データ準備

パイプラインステップ

個人データとシークレット(PII)

ファインチューニングされたモデルはトレーニングテキストを一言一句繰り返す可能性があるため、トレーニングの前に、メールアドレス、電話番号、カード番号、IBAN、国民ID、APIキーが検出され、デフォルトでプレースホルダーに置き換えられます。

第5章読了時間 2分参考文献 4件

概要

PII(個人を特定できる情報)とは、メールアドレス、電話番号、国民ID、銀行口座など、個人を識別するあらゆるデータを指します。ユーザーはサポートを求める際に自身の詳細情報を貼り付けるため、チャットログにはPIIが溢れています。APIキーやパスワードなどのシークレットも、同じ理由でそこに残ります。このステップでは、トレーニングデータからそれらを検出し、データがトレーニングに送られる前にどう処理するかを決定します。

モデルが学習データを漏洩する理由

トレーニングは、モデルが各ターゲットの回答を生成する確率を高めるように促します。ほとんどのテキストにおいて、それはパターンを学習することを意味しますが、IBAN、メールアドレス、キーなどの稀で正確な文字列の場合、それらを予測する唯一の方法は記憶することです。記憶されたテキストは、後のプロンプトが元のコンテキストに似ている場合に、再び出力される可能性があります。

これは仮説ではありません。Carliniら(2020年)は、モデルにプロンプトを与え、その出力をフィルタリングすることで、GPT-2のトレーニングデータから名前、電話番号、メールアドレスを含む何百もの逐語的なシーケンスを抽出しました。その後の研究では、モデルのサイズが大きく、例が繰り返される頻度が高いほど記憶量が増加することが判明し、Lukasら(2023年)は、一般的なスクラブ手法ではPIIの漏洩を減らすことはできても完全に排除することはできないことを示しました。ファインチューニングのデータは、何度も繰り返し参照される(各エポックが1回のパスとなる)はるかに小さなデータセットであるため、記憶することは難しくなるどころか、むしろ容易になります。

仕組み

検出機能は、会話テキストをスキャンし、メールアドレス、電話番号、クレジットカード番号、IBAN、国民ID番号、APIキーなど、認識可能な構造を持つ識別子を探します。一致したものはすべて、選択したモードに従って処理されます。Redact(墨塗り)を使用すると、値は同じタイプのプレースホルダーに置き換えられます。

検出 → プレースホルダー
Email        dana.k@example.com              →  [EMAIL]
Phone        +44 20 7946 0958                →  [PHONE]
Card number  4111 1111 1111 1111             →  [CARD]
IBAN         GB33 BUKB 2020 1555 5555 55     →  [IBAN]
API key      sk_live_…                       →  [API_KEY]
データセット内

userこんにちは、Danaです。返金先:GB33 BUKB 2020 1555 5555 55 、確認の連絡先:dana.k@example.com または +44 20 7946 0958.

学習ファイル内 · マスキング

userこんにちは、Danaです。返金先:[IBAN] 、確認の連絡先:[EMAIL] または [PHONE].

検出された個人データ同種のプレースホルダー
マスキング前後の同一のユーザーメッセージです。モデルは「口座への返金」「メールでの確認」といったリクエストの形式を学習しますが、実際の口座番号、住所、電話番号が学習ファイルに含まれることはありません。

プレースホルダーは、トレーニングのシグナルをそのまま維持します。モデルは、返金リクエストにはアカウントが記載されていることや、適切な回答ではメールでの確認を求めることを学習しますが、実際のアカウントを見ることは決してありません。実際の使用時には、値が入るべき場所に[EMAIL]と記述することがありますが、これは実際の顧客のアドレスを記述してしまうよりもはるかに安全な失敗です。

墨塗り一般的 推奨#

検出された各値を、[EMAIL]や[IBAN]などの型指定されたプレースホルダーに置き換えます。推奨されるデフォルト設定です。モデルはデータではなくパターンを学習します。

フラグ#

値は保持しますが、いくつ、どこで発見されたかを報告します。決定を下す前にデータセットを監査する場合や、識別子が合成テストデータであり、モデルにその正確なフォーマットを再現させる必要がある場合に使用します。

無視#

何もしません。完全に合成された会話など、データに実際の個人情報が含まれていないことがわかっている場合にのみ適しています。

実践例: 返金に関する会話
  1. ユーザーの入力: 「GB33 BUKB 2020 1555 5555 55への返金をお願いします。確認はdana.k@example.comへ。」 アシスタントの回答: 「完了しました — dana.k@example.comへ確認メールを送信中です。」
  2. 検出機能により、1つのIBANと、ユーザーのメッセージおよびターゲットとなる回答の両方で同じメールアドレスが2回検出されます。
  3. Redactを使用すると、両方のメッセージが書き換えられ、ターゲットは「完了しました — [EMAIL]へ確認メールを送信中です。」となります。
  4. ターゲット内のメールアドレスは危険です。ターゲットテキストは、モデルが生成するように学習する対象だからです。黒塗りされていない場合、将来返金について尋ねたユーザーがDanaのアドレスを受け取る可能性があります。
  5. Flagを使用すると、レポートには1つの会話内に3つの項目が表示されますが、学習ファイルにはそのまま保持されます。

検出機能で捕捉できないもの

パターン検出は、固定された形式を持つ識別子に対しては信頼性があります。しかし、フリーテキストに対してははるかに弱くなります。例えば、人名、文章で書かれた住所、診断結果、あるいは組み合わせて初めて個人を特定できる詳細情報(「リヨンオフィスのCFO」など)です。墨塗りは保証ではなくセーフティネットとして扱い、この点を念頭に置いてデータセットのサンプルを確認してください。特にチャットが健康、金融、人事、または法務に関する事項を扱っている場合は注意が必要です。

よくある間違い

  • ユーザーのメッセージのみを黒塗りすること: アシスタントの回答はモデルが再現するように学習するターゲットであるため、最も重要です。
  • 自動的な黒塗りを完全なものとして扱うこと。文章中の名前、住所、機密事項は構造化された識別子ではありません。
  • 「とりあえず」Flagを使用し、フラグが立てられたファイルでそのまま学習を行うこと。
  • シークレットの消し忘れ: サポートチャットに貼り付けられたAPIキーは、モデルの出力において個人データと同じくらい危険です。
  • 2つの準備プロセス間で黒塗りモードを変更し、学習設定のみが異なるかのように、結果として得られたモデルを比較すること。

参考文献および関連資料

外部ソースは新しいタブで開きます。

  1. 01Extracting Training Data from Large Language ModelsCarlini et al., 2020 · arXiv · arxiv.org言語モデルにプロンプトを与えることで、トレーニングセットから個人データを引き出せることを示した研究。
  2. 02Quantifying Memorization Across Neural Language ModelsCarlini et al., 2022 · arXiv · arxiv.orgモデルのサイズ、重複、プロンプトの長さに伴って記憶量がどのように増加するか。
  3. 03Analyzing Leakage of Personally Identifiable Information in Language ModelsLukas et al., 2023 · arXiv · arxiv.orgスクラブやその他の防御策が、実際にPIIの漏洩をどの程度軽減するかを測定します。
  4. 04Personal dataWikipedia · en.wikipedia.orgGDPRなどの法的枠組みにおける個人データおよびPIIの定義。

専門家が数週間かける作業を数分に短縮します

Scalataがお客様のチーム、データ、および統制にどのように適合するかをご確認ください。

営業へのお問い合わせ