ブログに戻るテクニカル

GDPR準拠のMLトレーニングデータ:コードを書かずに10,000件のレコードを匿名化する方法

GDPRは、元の収集目的を超えてMLトレーニングに個人データを使用することを制限しています。アドホックなPythonスクリプトに依存するデータサイエンティストは、一貫性がなく、監査準備が整っていない匿名化を作成します。バッチ処理により、GDPR準拠のトレーニングデータセットが45分で生成されます。

April 20, 20267 分で読めます
ML training dataGDPR data scienceSchrems IItraining dataset anonymizationresponsible AI

GDPR準拠のMLトレーニングデータ:コードを書かずに10,000件のレコードを匿名化する方法

GDPRの対象データを扱うすべてのデータサイエンスチームは、このスクリプトのバージョンを何らかの形で作成しています:

import re
def anonymize_email(text):
    return re.sub(r'[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+.[a-zA-Z]{2,}', '[EMAIL]', text)

これはGDPR準拠ではありません。これはメールアドレスの置き換えです。データセットには、名前、電話番号、医療記録ID、その他のPIIカテゴリが含まれており、コンプライアンスの失敗を引き起こす可能性があります。

「メールを匿名化しました」と「このデータセットはMLトレーニングのためにGDPR準拠です」の間には大きなギャップがあり、その影響は重大で、しばしば過小評価されています。

GDPRがMLトレーニングデータの使用を制限する理由

GDPRの目的制限原則(第5条第1項(b))は、個人データは特定の明示的かつ正当な目的のために収集され、これらの目的と矛盾する方法でさらに処理されてはならないと述べています。

注文履行のために収集された顧客データは、推薦モデルのトレーニングのために収集されたものではありません。治療のために収集された健康記録データは、再入院予測モデルのトレーニングのために収集されたものではありません。製品フィードバックのために収集された調査応答データは、感情分析モデルのトレーニングのために収集されたものではありません。

このデータをMLトレーニングに使用するには、次のいずれかが必要です:

  1. MLトレーニング目的のために各データ主体からの明示的な同意(運用上複雑で、遡及的にはしばしば不可能)
  2. トレーニング目的が元の収集と互換性があることを示す正当な利益評価(法的に不確実、DPA依存)
  3. 匿名化 — PIIを削除または置き換え、データがGDPRに基づく個人データでなくなるようにする

適切な匿名化は、最も抵抗が少なく、法的確実性が高い道です。課題は、正確かつ一貫して行うことです。

アドホックな匿名化スクリプトの問題

新しいデータセットごとに一回限りのPythonスクリプトを書くデータサイエンスチームは、重層的な問題を引き起こします:

不完全なカバレッジ: 一つのデータセットのスキーマを処理するために書かれたスクリプトは、前回のスキーマ更新以降に追加された列のPIIを見逃します。6ヶ月前に追加された臨床ノートフィールド:regexパターンには含まれていません。顧客のミドルネームフィールド:regexはFIRST_NAMEとLAST_NAMEパターンのみを処理します。

データセット間の不一致: データセットAはscript_v1.pyで匿名化されました。データセットBはscript_v3.pyで匿名化されました。データセットCはscript_v3.pyを知らない別のチームメンバーによって匿名化されました。マージされたトレーニングデータセットには3つの異なる匿名化方法があります。DPOはそれを認証できません。

監査トレイルなし: スクリプトは実行されました。何が変更されましたか?どのエンティティが見つかりましたか?どの行で?処理メタデータがなければ、コンプライアンス文書は不可能です。DPA監査人が「このトレーニングデータセットが匿名化されていることをどうやって知っていますか?」と尋ねたとき、「Pythonスクリプトを実行しました」というのは満足のいく答えではありません。

モデルドリフト: 2023年のデータで機能したregexパターンは、2024年のデータで導入された新しい識別子形式を検出できません(新しいSSN形式、異なるメールドメインパターン、進化する電話番号形式)。スクリプトは自動的に更新されません。

バッチ処理アプローチ

あるヘルスケアAI企業のデータサイエンスチームは、米国チームがEUオフィスからアクセスできるようにするために8,000件の患者記録を匿名化する必要があります(Schrems IIの越境データ転送制限が適用されます)。

従来のアプローチ: データエンジニアがカスタムPython匿名化スクリプトを書きます。時間:2-3日の開発、1-2日のDPOとのテストとレビュー、1日の反復。合計:4-6日。MLプロジェクトのタイムラインが遅れます。

バッチ処理アプローチ:

  1. 8,000件のレコードをCSV(標準データサイエンス形式)としてエクスポート
  2. バッチ処理にアップロード
  3. エンティティタイプを設定:PERSON, EMAIL_ADDRESS, PHONE_NUMBER, US_SSN, MEDICAL_RECORD, DATE_OF_BIRTH, LOCATION
  4. 方法を選択:置き換え(MLトレーニングのためにデータセット構造を保持するために現実的な偽データで置き換え)
  5. 処理:8,000件のレコードに対して45分
  6. 匿名化されたCSVをダウンロード
  7. DPOが処理メタデータ(レコードごとに見つかったエンティティ、適用された方法)をレビュー:2時間
  8. DPOが承認し、データ共有が進行

合計時間:45分の処理 + 2時間のDPOレビュー vs. 4-6日のエンジニアリング。MLのタイムラインは順調に進みます。

MLトレーニングデータのための置き換えと赤外線

匿名化方法の選択はMLの有用性に影響します:

赤外線(黒いバー/プレースホルダーの置き換え): PIIを**[REDACTED]または類似のトークンで置き換えます。結果として得られるデータセットには、PIIがあった場所に一貫したプレースホルダートークンがあります。PIIを検出するように訓練されたNLPモデルにとって、これはラベル付きデータセットを作成します。下流タスク(感情、分類、推薦)に基づいて訓練されたモデルにとって、[REDACTED]トークンは自然言語モデリングを妨害します — モデルは[REDACTED]**が特別なトークンであることを学び、実際の名前や値の分布から学ぶことができません。

置き換え(現実的な合成置き換え): 「John Smith」を「David Chen」(現実的だが異なる名前)に置き換えます。メール「jsmith@company.com」は「dchen@synthetic.com」になります。結果として得られるデータセットは、NLPモデルのトレーニングに重要な自然言語の分布 — 文の構造、エンティティの配置、共起パターン — を維持します。

特にMLトレーニングデータに関しては、置き換えが適切な方法です。モデルは特定の偽の値を予測することを学ぶわけではありません(それらはランダムな置き換えです)が、名前、メール、その他のエンティティがテキストにどのように現れるかの構造的および文脈的パターンから学びます。

Schrems IIと越境データフロー

Schrems IIの決定(CJEU、2020)は、EU-USプライバシーシールドを無効にし、EUから米国サーバーへのデータ転送に不確実性を生じさせました。データサイエンスへの実際の影響:EU起源のトレーニングデータは、適切な転送保護策なしに米国ベースのMLインフラストラクチャ(AWS US-East、GCP US-Central)に送信できません。

適切な保護策には、以下が含まれます:

  • 転送影響評価を伴う標準契約条項(SCC)
  • グループ内転送のための拘束力のある企業ルール(BCR)
  • 匿名化データの例外: 適切に匿名化されたデータはGDPRに基づく個人データではなく、転送制限の対象ではありません

EU起源のデータを使用する米国ベースのMLインフラストラクチャを使用するチームにとって、適切な匿名化はSchrems IIの問題を完全に排除します。匿名化されたデータセットはもはや個人データではなく — どのインフラストラクチャでも転送、保存、処理が可能で、転送メカニズムの要件はありません。

DPO承認のための文書

匿名化されたトレーニングデータをDPOに提出する際には、以下を提供してください:

  1. ソースデータの説明: 元のデータセットは何であったか、その収集目的は何であったか、どの個人データカテゴリが含まれていたか?

  2. 匿名化設定: どのエンティティタイプが検出され、置き換えられたか?どの方法が適用されたか?

  3. 処理メタデータ: レコードごとに検出されたエンティティの数、検出信頼度スコア、処理された総レコード数

  4. 残余リスク評価: 匿名化されたデータセットから任意の個人が再特定される可能性はどのくらいか?285以上のエンティティタイプが構造化テキストに適用された置き換え方法の匿名化では、この確率はほとんどのトレーニングデータセットにとって非常に低いです。

  5. 意図された使用: どのMLモデルがトレーニングされるか?トレーニングの目的は何か?

バッチ処理からの処理メタデータは、自動的にポイント2-3を提供します。ポイント1、4、5はデータサイエンティストの入力を必要とします。

結論

GDPR準拠のMLトレーニングデータは、アドホックスクリプトなしで、数日のエンジニアリングの遅延なしで、モデルトレーニングのためのデータセットの有用性を犠牲にすることなく達成可能です。置き換え匿名化方法は、データがNLPモデルのトレーニングに有用である自然言語の特性を保持しながら、GDPRの責任を生じさせる個人データの特性を取り除きます。

45分のバッチ処理は、タイムラインを遅延させるコンプライアンスレビューと、簡単なDPOの承認との違いです。

出典:

データを保護する準備はできましたか?

48言語で285以上のエンティティタイプを使用してPIIを匿名化し始めましょう。