Rizzo-AI-Academy/rizzo-pii
Local-first privacy guard: anonymize your documents before sharing with LLMs.
rizzo‑pii – イタリア語法律テキスト向けのローカルかつ可逆な PII 匿名化
これは何ですか – 約 0.3 B パラメータのイタリア語優先トークン分類別名化プレースホルダーがクラウドに送信され、その後ローカルで実際の値が復元されます。
キーアイデア
| アイデア | なぜ重要か |
|---|---|
| 100 % ローカル検出 & 再識別 | API キー不要、テレメトリなし – 機密スパンはユーザーのマシンから決して離れません。 |
| 可逆プレースホルダー | アプリは各 PII スパンを [FULLNAME_1] のような安定したタグに置き換え、ローカル辞書に保存し、LLM が回答を返した後に元の値を再挿入できます。 |
| イタリア法域カバレッジ | 22 のエンティティタイプをカバーし、codice fiscale、partita IVA、土地登記データ、行為識別子などを明示的に含み、英語優先の汎用モデルでは見逃されがちです。 |
| チェックサムバックアップの安全網 | 構造化識別子(IBAN、CF、PIVA、クレジットカード番号)については、決定的な regex + mod‑97/Luhn チェックがニューラルタガーを上書きし、数学的に正確な検出を保証します。 |
| 超小型 CPU フレンドリー フットプリント | 約 0.3 B の密集パラメータ、約 0.5 GB RAM、どの 64‑bit CPU でも実行可能 – 推論には GPU 必要ありません。 |
仕組み(ワークフロー)
- ローカルタギング – モデルが文書をスキャンし、22 カテゴリダイタグを出力し、決定的な regex/チェックサム層が構造化 ID を捕捉します。
- プレースホルダー置換 – 各スパンがタイプ認識プレースホルダー(
[IBAN_1],[CF_1]など)に置き換えられ、マッピングがディスクに保存されます。 - フロンティア LLM へ送信 – プレースホルダーのみのテキストがリモートモデル(ChatGPT、Claude、Gemini など)に送信されます。LLM は繰り返されるプレースホルダーにより文書の一貫性を保ちながら推論できます。
- ローカル復元 – LLM の回答が後処理され、保存された辞書を使ってプレースホルダーが実際の値に戻されます。
プライバシー保証は構造的です:第三者プロセッサーは実際の個人データを一切見ません。
テクニカルスナップショット
- モデル:mmBERT‑base (ModernBERT) をトークン分類用したファインチューニング、0.3 B 密集パラメータ、fp32 チェックポイント約 1.2 GB、CPU 推論用に約 0.5 GB に量子化。
- トレーニングデータ:約 745k ラベル付き行(約 45% がイタリア語)から実データ(Ai4Privacy、DeepMount)および数学的に有効な識別子を含む合成法律散文。16 GB コンシューマー GPU で 1 エポックのファインチューニング(約 2 時間)。
- パフォーマンス:マイクロ F1 = 0.989、トークン精度 = 0.998、7k 実イタリア語ホールドアウトセットで;イタリア語法タグの 5 つすべてが完璧な 1.000 スコアを達成。
- カテゴリ:22 の BIO タグ(FULLNAME、AGE、GENDER、DATE、TIME、STREET、BUILDINGNUM、ZIPCODE、CITY、PROVINCE、EMAIL、TELEPHONENUM、CF、PIVA、ID_DOC、IBAN、CREDITCARDNUMBER、AMOUNT、TARGA、ORG、DOCID、CATASTO)+ regex 専用の
URLタグ。 - パッケージング:Tauri で構築されたデスクトップ UI、軽量級 Flask 「サイドカー」 バックエンド、およびプログラム利用用のシンプルな HTTP API。
典型的なユースケース
- 法律事務所 & 公証人 – 強力な LLM に要約や下書きを依頼する前に、契約書、判決書、顧客書類から名前、税コード、土地登記データを削除してプライバシーを保護。
- 会計士 & 税務コンサルタント – AI アシスト分析ツールを使用する前に、請求書、税申告書、財務諸表を仮名化。
- 医療管理者 – LLM にコーディング支援を問い合わせる前に、患者識別子(CF、IBAN など)を医療レポートから削除。
- GDPR の対象となるあらゆる組織 – 場所から離れるテキストが仮名化のみであることを確保することでデータ最小化要件を満たす。
始め方
- ダウンロード – Releases ページからプリビルドインストーラ/AppImage を取得(Windows、macOS Apple Silicon、Linux)。
- 実行 – アプリを起動;PDF、
.txt、または.mdファイルをドラッグ&ドロップ、またはプレーンテキストを貼り付け。 - 匿名化 – Anonymise ボタンをクリック;UI に色付きタグが表示され、ダウンロード可能な辞書が提供されます。
- LLM へクエリ – プレースホルダーのみのテキストをお気に入りの LLM UI(ChatGPT、Claude、Gemini など)にコピー。
- 復元 – LLM の回答をアプリに貼り付け、Restore ボタンを押す;元の識別子が再表示されます。
開発者でモデルを再構築または拡張したい方へ:
- リポジトリをクローンし、Python 3.11 仮想環境をセットアップし、
requirements.txtをインストール(Blackwell GPU がある場合は PyTorch + CUDA 12.8、そうでなければ CPU のみ)。 - データ生成スクリプト(
src/data_pipeline/*)を実行して合成コーパスを再作成。 src/training/train_pii.pyでファインチューニング(クイックテスト用に--type quick、フル 745k 行用に--type full)。- ウェブサービスは
python src/app/app.pyで起動し、http://127.0.0.1:5005を公開。
制限と注意点
- 言語焦点 – イタリア語法律テキストに最適化;他言語でのパフォーマンスは保証されません(他言語もサポートしますが精度は低下します)。
- 構造化 ID 依存 – IBAN、CF、PIVA などの完璧な検出には regex/チェックサム層が不可欠;文書に不正な識別子があると見逃される可能性があります。
- 推論では GPU 加速不要 – しかしトレーニングには約 16 GB VRAM の適度な GPU が必要。
- プレースホルダー衝突 – 同一値は同じプレースホルダーを共有(LLM の一貫性を保つため意図的)ため、同じ値の異なる出現を区別できません。
結論
rizzo‑pii は、イタリア語話者のプロフェッショナルが個人識別子を露出させることなく強力なクラウド LLM を活用できる、GDPR‑by‑design の実用的なプライバシー層を提供します。極小の CPU フットプリント、可逆の仮名化、および法律特有のエンティティカバレッジにより、希少な利用可能なオープンソース プライバシー保存 AI ツールの一例となっています。