Downloads · 30 days
23
46% of all-time downloads
querypieai/dlp-tier2-jp-electra-auto-f2
dlp-tier2-jp-electra-auto-f2 is a text classification model from querypieai. Use it when you need a label for a piece of text. It is set up for transformers. The card lists the license as apache-2.0.
このモデルは、DLPパイプラインの第2段階で使用する日本語シーケンス分類器です。izumi-lab/electra-small-japanese-discriminator をベースに、JP2 hard-negative 統合データセットでファインチューニングしました。
Downloads · 30 days
23
46% of all-time downloads
All-time downloads
50
Public
Parameters
13.8M
55.4 MB on disk
Likes
0
Public
Click a slice to open those files.
.safetensors55.4 MB · 100%
From the Hugging Face model README
このモデルは、DLPパイプラインの第2段階で使用する日本語シーケンス分類器です。izumi-lab/electra-small-japanese-discriminator をベースに、JP2 hard-negative 統合データセットでファインチューニングしました。
ここでの「Tier2」は、モデルアーキテクチャやバージョンではなく、DLP検出パイプラインの第2段階を指す。
| 段階 | 役割 | 方式 |
|---|---|---|
| Tier 1 | 第1次候補検出 | セキュリティルール、正規表現、キーワード/文字列マッチングなどの高速なルールベースフィルタ |
| Tier 2 | 第1次候補の再確認 | 本モデルのような文脈分類モデルで情報漏えいリスクの有無を再判定 |
このモデルは、Tier 1がすでに候補として検出した、またはポリシー上追加確認が必要なテキストを入力することを前提に設計されている。一般文書全体を必ずこのモデルで直接分類する用途ではなく、ルールベースの第1次フィルタ後の精密再確認段階で使用する。
| ラベル ID | 意味 |
|---|---|
| 0 | benign |
| 1 | leakage_risk |
ラベル名は作業理解のための説明用メタデータです。学習および推論コードでは整数ラベルを使用します。
第1段階のDLPフィルタが検出した、または第2段階の再確認へ移行したテキストを再検査するために使用します。文または段落単位のリスク分類を対象とし、エンティティの文字範囲抽出は行いません。本番運用では、チャンク分割、しきい値、ポリシーロジックと組み合わせて使用してください。
192 文字のチャンクと 48 文字の重複を使用し、各チャンクを独立して評価します。truncation=True、padding=True、max_length=192 でトークン化します。モデルは入力チャンクごとにクラスlogitsを返します。
logits[0]: benign クラスのスコア(ラベルID 0)logits[1]: leakage_risk クラスのスコア(ラベルID 1)softmaxを適用してクラス確率を計算します。推奨される陽性クラス確率は probabilities[1] です。この値が判定しきい値以上であれば該当チャンクを leakage_risk、それ未満であれば benign に分類します。
複数チャンクの文書では、プロジェクトパイプラインがチャックスコアの最大値を文書リスクスコアとして使用し、同じしきい値を適用します。モデル自体は複数チャンクを集約しません。
transformers、torchAutoTokenizer と AutoModelForSequenceClassification インターフェースを使用し、trust_remote_code やカスタムPythonコードは不要です。model.eval() を呼び出し、本番推論ではgradient計算を無効化します。truncation=True、padding=True、max_length=192 です。querypieai/dlp-tier2-jp-electra-auto-f2 リポジトリIDを使用します。オフライン使用時はこのモデルカードを含むローカルディレクトリパスを使用します。0.3019219248しきい値は検証データで recall_min=0.9、false_positive_rate_max=0.2 の制約付きF2目的で選択しました。しきい値はモデル較正パラメータではなく、確率計算後に適用するポリシー決定です。
izumi-lab/electra-small-japanese-discriminator25,765 / 3,725 / 3,753件leakage_risk)比率: 学習 7.00%、検証 10.12%、テスト 10.02%04.603556332212795e-05861920.00.0しきい値 0.30 におけるテスト性能:
| 指標 | 値 |
|---|---|
| Accuracy | 0.9931 |
| Precision | 0.9944 |
| Recall | 0.9362 |
| F1 | 0.9644 |
| F2 | 0.9473 |
| False positive rate | 0.0006 |
| False negative rate | 0.0638 |
選択されたしきい値と最終構成における検証性能:
| 指標 | 値 |
|---|---|
| Accuracy | 0.9914 |
| Precision | 0.9943 |
| Recall | 0.9204 |
| F1 | 0.9559 |
| F2 | 0.9343 |
| False positive rate | 0.0006 |
| False negative rate | 0.0796 |
検証とテストの指標は、このプロジェクトのDLP PoC構成では比較的安定しています。
from transformers import AutoModelForSequenceClassification, AutoTokenizer
import torch
model_id = "querypieai/dlp-tier2-jp-electra-auto-f2"
threshold = 0.30
tokenizer = AutoTokenizer.from_pretrained(model_id)
model = AutoModelForSequenceClassification.from_pretrained(model_id)
model.eval()
text = "ここに確認する文章を入力します。"
inputs = tokenizer(text, return_tensors="pt", truncation=True, max_length=192, padding=True)
with torch.no_grad():
logits = model(**inputs).logits
positive_probability = torch.softmax(logits, dim=-1)[0, 1].item()
prediction = "leakage_risk" if positive_probability >= threshold else "benign"
print({"score": positive_probability, "prediction": prediction})