PIIとは
Personally Identifiable Information / 個人識別情報
氏名・住所・連絡先等、個人を特定できる情報の総称
ひとことで言うと
氏名や住所など、個人を特定できてしまう情報のこと。
概要
PII(Personally Identifiable Information, 個人識別情報)とは、氏名・住所・電話番号・メールアドレス・マイナンバーやクレジットカード番号等、単独または他の情報と組み合わせることで特定の個人を識別できる情報の総称。 LLMアプリケーションの文脈では、学習データに含まれる個人情報は、モデルの出力を通じて意図せず漏洩することがある。 また、ユーザーが入力したPIIは、ログや第三者のAPIへの送信を通じて不適切に扱われることもある。 GDPRや個人情報保護法等の法規制の対象になりやすく、LLMアプリケーションを設計する際は、入力からPIIを検出・マスキングする、ログに平文で保存しない等の対策が求められる。
背景
LLMは大量のWebテキストを学習に用いるため、その中に含まれる個人情報を意図せず記憶し、特定の入力に対して再現してしまう可能性が指摘されている。 また、チャット等でユーザーが入力する内容にPIIが含まれることも多く、これらをどう扱うかがLLMアプリケーションの設計における重要な課題になっている。
ワークフロー
ユーザー入力やログを受け付ける段階で、正規表現や専用の検出モデルを用いてPIIのパターン(メールアドレス・電話番号等)を検出 → 該当箇所をマスキングまたは削除 → マスキング済みのデータのみをログ保存やモデルへの入力に利用。
コード例
正規表現による簡易的なPIIマスキングの例
import re
def mask_email(text: str) -> str:
return re.sub(r"[\w.+-]+@[\w-]+\.[\w.-]+", "[REDACTED_EMAIL]", text)
print(mask_email("連絡先はexample@example.comです"))欠点
- 学習データに含まれるPIIが、モデルの出力を通じて意図せず漏洩するリスクがある
- 入力されたPIIは、ログの保存やAPI経由での外部送信を通じて不適切に扱われることがある
- 個人情報保護法やGDPR等の法規制への対応が必要になる場合がある
比較
関連用語
よくある質問
LLMにPIIを入力しても大丈夫?
サービスの利用規約やデータの取り扱い方針によって異なる。 学習への再利用の有無、ログの保存期間等を確認し、機密性の高い情報の入力は避けるか、マスキングした上で利用することが推奨される。
正規表現だけでPIIを検出できる?
メールアドレスや電話番号等、形式が定まっている情報はある程度検出できるが、氏名や住所のように表記の揺れが大きい情報は正規表現だけでは検出しきれず、専用の検出モデルを組み合わせることが多い。
参考文献
- DocumentationNIST: Guide to Protecting the Confidentiality of PII