Rampart 隱私防護系統解析:14.7MB 輕量化邊緣側 PII 過濾方案
深度解析開源隱私系統 Rampart!本文拆解「規則+MiniLM」雙層過濾架構,看它如何利用 WebGPU 加速在瀏覽器端實現 3.9ms 極速 PII 遮蔽。內含 OpenPII 基準測試數據與 NPM 實作程式碼,助你打造 Privacy-by-Design 的 AI 應用。
1. 系統定位與核心設計哲學
Rampart 技術定位在於構建 AI 互動流程中的「第一線防禦」。該系統顛覆傳統的後端過濾模式,直接在客戶端瀏覽器環境下執行 PII(個人識別資訊)的識別與去識別化。
NDS 的核心設計原則體現了極致的隱私主權:
「唯有不離開裝置的個人資料才是真正私密的。」 (The only personal information you can be sure is private is the information that never leaves your device.)
核心痛點解決方案
Rampart 旨在解決目前主流 AI 隱私方案的兩大核心痛點:
- AI 隱私承諾無法驗證: 從架構設計的「第一原理」來看,使用者與企業根本無法驗證雲端 AI 供應商的隱私聲明。雲端運算環境隱藏著諸如零時差漏洞 (Zero-day vulnerabilities) 與內部威脅 (Insider threats) 等不可控的安全風險。
- 遠端過濾模型體積過大: 現有的高效能 PII 移除模型(如 OpenAI Privacy Filter)體積高達 2.8GB。對於低頻寬環境下的使用者,這意味著高昂的載入成本與極差的即時性。
2. 雙層過濾機制 (Dual-Layer Filtering) 技術拆解
Rampart 採用了「規則 + 模型」的混合架構,專門針對 17 種實體類別 (Entity Types) 進行優化,確保在低記憶體佔用 (Low memory footprint) 的前提下達成高精準度。
| 層級 (Layer) | 技術路徑 | 處理對象與細節 |
|---|---|---|
| 決定性規則層 (Deterministic) | Regex 結合實質驗證邏輯 (如 Checksum、Luhn 演算法)。 | 結構化資料:SSN、信用卡號、電話、銀行帳號、Email、IP、政府證件。 |
| 小型語言模型層 (MiniLM) | 利用輕量化模型進行語意分析與上下文識別。 | 非結構化/高變異資料:個人姓名、街道名稱、完整地址等上下文語境資訊。 |
3. 硬體加速與輕量化效能指標
對於系統架構師而言,Rampart 的核心競爭優勢在於其對終端資源的極致利用:
- 模型體積 (含分詞器): 14.7MB。將分詞器 (Tokenizer) 整合進 15MB 內的封裝,使其具備極佳的邊緣側部署潛力。相較於 OpenAI 2.8GB 的模型,體積縮減幅高達 99.4%。
- 運行延遲 (p50 Latency): 在瀏覽器環境下透過 WebGPU 硬體加速,推論延遲中位數僅 3.9ms。這能有效將計算壓力從主 UI 執行緒 (Main Thread) 卸載,確保使用者在輸入文字時不會感到任何延遲或卡頓 (Zero jank)。
- 下載效率對比: 以 10mbps 的低頻寬網路環境測試,下載 2.8GB 模型需耗時約 38 分鐘,這在即時通訊場景中是完全不可接受的;而 Rampart 的 14.7MB 體積可確保在數秒內完成部署並投入運作。
4. 效能基準測試 (Benchmarks) 與語言支持
Rampart 在 OpenPII 1.5M 測試集(取 30,000 列測試切片)上展現了頂尖的召回率 (Recall),證明了「輕量化模型 + 規則驗證」方案在特定領域能超越巨型通用模型。
業界主流方案對比測試
| 方案名稱 | 召回率 (Recall) | 模型體積 | 部署方式 |
|---|---|---|---|
| Rampart | 98.42% | 14.7 MB | 規則 + 小型模型 (終端側) |
| OpenAI Privacy Filter | 97.4% | ~2.8 GB | 通用語言模型 |
| GLiNER small v2.1 | 94.2% | ~600 MB | 專業命名實體識別模型 |
| Community BERT-small PII | 81.5% | ~29 MB | 小型 BERT 模型 |
| Microsoft Presidio | 65% | ~13 MB | 規則 + 通用模型 |
| AWS Bedrock Guardrails | 63.8% | N/A | 雲端 API 服務 (非終端側) |
語言支持
- 拉丁系語言支持: Rampart 目前完整支援以下七種語言的隱私辨識:英文、西班牙文、法文、德文、義大利文、葡萄牙文、荷蘭文。
5. 開發者實作指引 (Implementation Guide)
Rampart 的 Guard 物件具備狀態化管理能力。當 protect 執行時,瀏覽器會將原始 PII 資料暫時且局部地緩存在裝置端(不進入持久化存儲或遠端伺服器),以便後續進行還原。
import { createGuard } from "@nationaldesignstudio/rampart";
// 1. 初始化 Guard 實例,載入 14.7MB 的推論引擎
const guard = await createGuard();
// 2. 原始敏感資訊
const rawInput = "My name is John Wick. I live at 88 Cedar Lane, Brookvale, CT 06482.";
// 3. 執行 protect:識別並遮蔽 PII,同時在 local cache 記錄對應關係
const safe = await guard.protect(rawInput);
console.log(safe.text);
// 預期輸出: "My name is [GIVEN_NAME_1]. I live at [BUILDING_NUMBER_1] [STREET_NAME_1]..."
// 4. 傳遞給遠端 AI 模型 (如 GPT-4 或 Claude) 並取得回傳
const reply = await llm(safe.text);
// 假設 reply 為: "Thanks [GIVEN_NAME_1], Brookvale CT 06482 works for eligibility."
// 5. 執行 reveal:利用內部狀態將占位符還原為原始資訊,完成往返處理 (Round-trip)
console.log(guard.reveal(reply));
// 最終輸出: "Thanks John Wick, Brookvale CT 06482 works for eligibility."
6. 產品侷限性與架構師總結
- 產品階段: 目前處於 Alpha 階段。它是一道強大的「首層防禦」,但針對極度敏感的場景,建議與後端深度審核機制配合使用。
- 非拉丁語系限制: 目前尚未完美支援中文、日文、韓文等非拉丁語系(非拉丁語系名稱的召回率僅約 13.7%),在針對這些語系部署時應加入額外的防護控制。
架構師總結 Rampart 成功證明了透過高效的算子優化與 WebGPU 加速,邊緣側模型完全有能力在不犧牲隱私的前提下,取代傳統笨重的雲端過濾架構。對於追求「Privacy-by-Design」的開發團隊而言,這是目前市場上部署成本最低、回應速度最快的首選方案。
🔗 官方相關連結
- HuggingFace 模型主頁與技術卡片: nationaldesignstudio/rampart
- NPM 開源函式庫套件: @nationaldesignstudio/rampart
問與答 (Q&A)
Q1:什麼是 Rampart?它的主要用途是什麼?
A: Rampart 是由 National Design Studio (NDS) 開發並開源的第一代「設備端個人資訊 (PII) 過濾系統」。它的主要用途是在使用者將對話內容發送給 AI 聊天機器人或遠端伺服器之前,直接在設備的瀏覽器端找出並處理個人身分資訊,確保機密資料絕對不會外洩。
Q2:市面上已經有過濾模型,為什麼還需要 Rampart?
A: 傳統的 PII 移除多半依賴遠端伺服器,但 AI 廠商的隱私承諾往往難以驗證,且可能面臨未知的零日漏洞或內部威脅。此外,現有的本地端防護模型體積過於龐大(例如 OpenAI Privacy Filter 高達約 2.8 GB,網速較慢時可能需要 38 分鐘才能下載完成),而 Rampart 的體積非常輕量,完美解決了瀏覽器端部署的難題。
Q3:Rampart 是如何精準抓出個人資料的?
A: 它是透過「決定性規則 + 小型語言模型」的雙層架構來運作:
- 決定性規則層: 針對信用卡、身分證等有固定格式的資料,使用正規表達式搭配驗證演算法(如 Luhn 演算法)來精準攔截。
- MiniLM 語言模型層: 針對人名、街道地址等缺乏固定格式的資料,交由理解上下文的 MiniLM 語言模型來捕捉並替換。
Q4:這套系統會不會很龐大、影響網頁執行速度或聊天體驗?
A: 完全不會!Rampart 包含分詞器在內的整體模型大小僅有 14.7 MB。在支援 WebGPU 的瀏覽器環境下,它的推論延遲中位數只有短短的 3.9 毫秒。這意味著在體感上,訊息幾乎是瞬間就被過濾並送出的,完全不影響聊天的流暢度。
Q5:它會不會把所有地點都遮蔽,導致 AI 無法提供在地化建議?
A: 不會的。Rampart 的設計在隱私與實用性之間取得了完美的平衡。它會精準遮蔽具體的「街道名稱」與「門牌號碼」,但會預設保留「城市」、「州/地區」以及「郵遞區號」。這讓 AI 助理依然能根據粗略的地理位置提供資格審查或在地化的實用建議。
Q6:它目前支援哪些語言?中文支援嗎?
A: Rampart 目前完整支援 7 種拉丁語系語言:英文、西班牙文、法文、德文、義大利文、葡萄牙文與荷蘭文。官方特別提示目前尚未完美支援中文(包含漢字、韓文、日文等非拉丁語系名稱的召回率較低,總計僅約 13.7%),因此建議在針對這些語系部署時應加入額外的防護控制。



