🚀 StarPII
このモデルは、コードデータセット内の個人識別情報(PII)を検出するために訓練された名前付きエンティティ認識(NER)モデルです。コードデータセットからPIIを取り除く目的で、高精度にPIIを検出することができます。
🚀 クイックスタート
このモデルは、コードデータセット内の個人識別情報(PII)を検出するために訓練されたNERモデルです。以下のセクションでは、モデルの詳細、使用するデータセット、パフォーマンス、および使用上の考慮事項について説明します。
✨ 主な機能
- コードデータセット内のPIIを高精度に検出します。
- 6つのターゲットクラス(名前、メールアドレス、キー、パスワード、IPアドレス、ユーザー名)を識別します。
- 擬似ラベル付きデータセットでの事前学習により、PII検出性能を向上させます。
📚 ドキュメント
🔍 モデルの説明
このモデルは、コードデータセット内の個人識別情報(PII)を検出するために訓練されたNERモデルです。bigcode-encoder を、独自にアノテーション付けしたPIIデータセット bigcode-pii-dataset でファインチューニングしました(正確なデータ分割については bigcode-pii-dataset-training を参照)。エンコーダモデルの上に線形層を追加し、トークン分類ヘッドとして使用しました。ターゲットクラスは6つで、名前、メールアドレス、キー、パスワード、IPアドレス、ユーザー名です。
📦 データセット
アノテーション付きデータセットでのファインチューニング
ファインチューニングに使用したデータセットには、20961個の機密情報と31のプログラミング言語が含まれています。ただし、ベースとなるエンコーダモデルは、The Stack データセットの88のプログラミング言語で事前学習されています。
擬似ラベル付きデータセットでの初期学習
キーなどのまれなPIIエンティティに対するモデルの性能を向上させるため、アノテーション付きデータセットでのファインチューニングの前に、擬似ラベル付きデータセットで初期学習を行いました。この方法では、少量のラベル付きデータでモデルを学習させ、その後、大量のラベルなしデータに対する予測を生成します。
具体的には、bigcode-pii-ppseudo-labeled にある18,000個のファイルにアノテーションを付けました。このアノテーションには、以前に内部でラベル付けされたPII データセット でファインチューニングされた2つのエンコーダモデル Deberta-v3-large と stanford-deidentifier-base のアンサンブルを使用しました。この データセット は、この研究 からの400個のファイルを含むコード用のものです。
良質の擬似ラベルを選択するために、モデル間の平均確率ロジットを計算し、最小スコアに基づいてフィルタリングしました。検査の結果、キーとパスワードについては誤検出率が高いことがわかったため、周囲のコンテキストに key
、auth
、pwd
などのトリガーワードが含まれるエンティティのみを残しました。この合成データセットでの学習は、アノテーション付きデータセットでのファインチューニングの前に行われ、すべてのPIIカテゴリに対して優れた結果をもたらしまし。これは次のセクションの表に示されています。
💹 パフォーマンス
このモデルは、表の最後の行(NER + 擬似ラベル)に示されています。
メールアドレス、IPアドレス、キー
方法 |
メールアドレス |
|
|
IPアドレス |
|
|
キー |
|
|
|
精度 |
再現率 |
F1 |
精度 |
再現率 |
F1 |
精度 |
再現率 |
F1 |
正規表現 |
69.8% |
98.8% |
81.8% |
65.9% |
78% |
71.7% |
2.8% |
46.9% |
5.3% |
NER |
94.01% |
98.10% |
96.01% |
88.95% |
94.43% |
91.61% |
60.37% |
53.38% |
56.66% |
+ 擬似ラベル |
97.73% |
98.94% |
98.15% |
90.10% |
93.86% |
91.94% |
62.38% |
80.81% |
70.41% |
名前、ユーザー名、パスワード
方法 |
名前 |
|
|
ユーザー名 |
|
|
パスワード |
|
|
|
精度 |
再現率 |
F1 |
精度 |
再現率 |
F1 |
精度 |
再現率 |
F1 |
NER |
83.66% |
95.52% |
89.19% |
48.93% |
75.55% |
59.39% |
59.16% |
96.62% |
73.39% |
+ 擬似ラベル |
86.45% |
97.38% |
91.59% |
52.20% |
74.81% |
61.49% |
70.94% |
95.96% |
81.57% |
このモデルは、bigcode大規模モデルの学習においてPIIをマスクするために使用されました。ユーザー名は誤検出と未検出の割合が高かったため、除外しました。他のPIIタイプについては、以下のポストプロセッシングを追加しました。これは、将来のモデル使用にも推奨される方法です(コードはGitHubでも入手可能です)。
- 4文字未満の機密情報は無視します。
- 完全な名前のみを検出します。
- gibberish-detector を使用して、9文字未満または意味のない文字列でない検出されたキーは無視します。
ipaddress
Pythonパッケージを使用して、有効でないまたはプライベート(インターネットに公開されていない)IPアドレスは無視します。また、人気のDNSサーバーのIPアドレスも無視します。このリストは この論文 と同じものを使用しています。
🤔 モデル使用上の考慮事項
このモデルを使用する際には、その適用に関連する潜在的なリスクに注意する必要があります。誤検出と未検出の可能性があり、これは機密データを処理する際に意図しない結果をもたらす可能性があります。また、モデルの性能はデータタイプやプログラミング言語によって異なる可能性があるため、特定の使用事例に対しては検証とファインチューニングが必要です。研究者や開発者は、モデルを使用する際に倫理基準とデータ保護対策を守ることが期待されています。このモデルを公開することで、私たちはプライバシー保護型AI技術の開発を促進しながら、PIIに関連する潜在的なリスクにも注意を払いたいと考えています。
📄 ライセンス
モデルの使用条件
これは、コードデータセット内の個人識別情報(PII)を検出するために訓練されたNERモデルです。モデルを使用する前に、以下の使用条件を読み、同意することを求めます。
- データセットからPIIを削除する目的でのPII検出以外の目的でモデルを使用しないことに同意します。
- モデルまたはその修正バージョンを、いかなる目的でも共有しないことに同意します。
- 適用される法律によって要求される場合、または書面で合意されない限り、モデルは「現状のまま」提供され、明示的または黙示的を問わず、いかなる種類の保証または条件も付与されません。これには、権利、非侵害、商品性、または特定の目的への適合性に関する保証または条件も含まれます。モデルを使用する適切性を判断する責任は、あなた自身にあり、これらの使用条件に基づく権限の行使に関連するすべてのリスクを負います。
- いかなる場合も、著者または著作権者は、契約、不法行為、またはその他の理由による、モデルまたはモデルの使用またはその他の取引に起因する、または関連するいかなる請求、損害、またはその他の責任に対して責任を負いません。
プロパティ |
詳細 |
データセット |
- bigcode/pii-annotated-toloka-donwsample-emails - bigcode/pseudo-labeled-python-data-pii-detection-filtered |
評価指標 |
- f1 |
パイプラインタグ |
token-classification |
言語 |
- code |
⚠️ 重要提示
モデルを使用する前に、上記の使用条件を読み、同意する必要があります。
💡 使用建议
モデルの性能を向上させるために、ポストプロセッシングを行うことをおすすめします。具体的には、4文字未満の機密情報、完全な名前以外の名前、意味のない文字列でない検出されたキー、有効でないまたはプライベートなIPアドレスを無視することができます。