← 記事一覧へ releases macos open-source

HideMyData:同じ Privacy Filter モデルで動く macOS ネイティブアプリ

コミュニティが開発した Mac アプリ HideMyData は、PDF や画像の PII を端末上でマスキングするツールです。本サイトと同じ openai/privacy-filter モデルを、MLX と Apple Vision でネイティブ動作させています。

スクリーンショットや PDF を誰かに送るとき、名前やメールアドレス、口座番号を黒塗りにし忘れていないか、Preview で何度も見直す——あの面倒な作業を、HideMyData は丸ごと無くそうとしています。

mkbula さんが開発した macOS ネイティブアプリで、v0.1.0 が 4 月 28 日にリリースされたばかりです。注目したいのは、本サイトを支えているのと同じ openai/privacy-filter モデルを使っている点。違いは、MLX-Swift でネイティブ実行され、PDF や画像の OCR を Apple Vision が担当することです。中身は同じ、見た目が違う、という感じです。

Privacy Filter Online を使っていて「PDF を 1 ページずつコピペせずに一気に処理したい」と思ったことがある人にはぴったりだと思います。ローカルで動き、オープンソース、ライセンスは GPL-3.0。私たちが作ったわけではありませんが、共通のルーツを持つ良いプロジェクトなので紹介する価値があります。

実際に何ができるのか

PDF や画像をドロップすると、HideMyData は以下の 3 層で処理します。

  1. Apple Vision OCR がテキストを抽出します——スキャンされた PDF や、フォントが埋め込まれていてコピー時に文字を取り出せない厄介な PDF にも対応します。
  2. privacy-filter モデル(MLX 8-bit 量子化) が、本サイトと同じ NER 推論を行います。Apple Neural Engine とユニファイドメモリの恩恵を受けながら、文脈をふまえて氏名、メール、電話番号、住所、日付、各種 ID を検出します。
  3. 手作業でメンテされた正規表現 が、文脈では拾いにくいパターン——IBAN、SSN、MAC アドレス、IPv4/v6、JWT、API キー、暗号資産ウォレットアドレスなど——を確実に捕まえます。決定的なパターンは正規表現に任せ、モデルは曖昧な判断に集中する構成です。

検出結果はマスキング用の矩形として表示されるので、自分で追加・削除・調整できます。スタイルは 2 種類——ベタ塗りの黒と、すりガラス風のぼかし。資料用のスクリーンショットなら、ぼかしのほうが雰囲気を保ちやすくて使いやすいです。

保存すると、マスキングはファイルに焼き込まれます。ページがラスタライズされて再構築されるため、元のテキストやグリフはファイルから完全に消えます——隠されているのではなく、本当に存在しません。これは見た目以上に大事なポイントです。よくある PDF のマスキング事故は、黒い四角を上に重ねただけで送ってしまうケース——下のテキストはコピペで丸見え、最悪の場合は情報漏洩につながります。HideMyData はページを作り直すので、四角の下に「復元できる元データ」が残りません。

Privacy Filter Online との使い分け

私たちが提供しているのはブラウザ版です。同じモデルを Transformers.js と WebGPU/WASM 経由で、タブの中で動かしています。テキストの一部や画像 1 枚をサクッとチェックしたい、何もインストールしたくない、という用途には最適です。

HideMyData のほうが向いているのは、こんなとき:

  • PDF を扱う場合——特にページ数が多いとき。ブラウザでも PDF は表示できますが、マスキング作業はあまり気持ちよくありません。
  • スキャン文書を扱う場合——OCR の精度が成果に直結する場面では、Apple Vision はかなり頼りになります。
  • モデルを毎回キャッシュからダウンロードし直したくない場合。ネイティブアプリはモデルを ~/Library/Application Support/HideMyData/ に保管します。
  • ラスタライズ&再構築の保存挙動が必要な場合。Web 版はテキストのリダクション結果をコピーする形で、PDF そのものを書き換えるわけではありません。

要するに同じアイデアをネイティブに持ち込んだもので、ブラウザでは得られないディスクと GPU アクセスを使っています。

実装で面白いところ

中身が気になる人向けに、いくつか触れておきます。

  • 推論は MLX-Swift。Apple Silicon ではユニファイドメモリのおかげで GPU/CPU 間のコピーが要らず、openai/privacy-filter の 8-bit 量子化版は作業メモリにも余裕で収まります。MLX を選ぶのは妥当な判断です。
  • モデルの読み込みは OpenMedKit が担当。Hugging Face の重みを MLX で扱える形に変換する Swift グルーコードです。
  • PDFKit + Vision + モデル がひとつのパイプラインに収まっている。すべて Apple 純正のレイヤーで、Python のサイドカーもなければ Electron もなく、ファンが唸ることもありません。コールドスタートも早いです。

設計の良いところは、「賢い自動マスキングを信用してください」という落とし穴に陥っていない点です。保存の前に手動編集ステップが入ります。モデルの提案を確認し、必要なら直してから確定する——失敗したら情報漏洩するソフトウェアにはちょうどいい役割分担です。

注意点

まだ v0.1.0 です。前提として知っておきたいこと:

  • macOS 26 以降、Apple Silicon 専用。MLX バックエンドは Intel Mac では動きません。
  • 開発者証明書での署名はまだ無し。初回起動で Gatekeeper にブロックされます。README に回避策(xattr -rd com.apple.quarantine /Applications/HideMyData.app)が載っています。
  • 初回のモデルダウンロードは約 1.5 GB。ホテルの Wi-Fi などでは時間に余裕を見ておきましょう。
  • ライセンスは GPL-3.0。商用プロダクトに組み込む場合は影響範囲を確認してください。

要は初期段階のオープンソースです。必要なピースは揃っていて、リポジトリのデモ動画もよく出来ていますが、荒削りな部分はあるはずなので、issue トラッカーは追いかけておくと安心です。

試してみる

同じモデルを別のプラットフォームで動かすものを作ったら、ぜひ教えてください。オープンなモデルの本当の意味は、ブラウザツールも Mac アプリもこれから出てくる何かも、同じ課題に違う角度からアプローチできるところにあります。