C++ · 项目报告

localai-org/privacy-filter.cpp

OpenAI's privacy filter NER model architecture implemented in a minimal C++/GGML runtime

已完成 打开 GitHub
L
217星标
8Fork
0Issue
MIT许可证

分析结果

项目分析

privacy-filter.cpp 是一个用 C++/GGML 实现的轻量级 PII/NER 隐私信息识别推理引擎,面向 OpenAI privacy-filter 系列 token-classification 模型。它可以从文本中识别姓名、邮箱、电话、地址、证件号等敏感实体,并返回精确的 UTF-8 字节偏移。项目支持 CPU、Vulkan、CUDA 后端,提供 CLI、C API、GGUF 模型转换脚本和测试/验证工具,重点优势是长文本场景下比 Hugging Face Transformers 更低内存、更高吞吐。

适用领域 隐私保护 / PII 检测 / NER 命名实体识别 / 大模型数据治理 / 本地化 AI 推理 / 合规审计 / 日志脱敏 / 边缘设备 AI / C/C++ 推理引擎 / GGML/GGUF 模型部署
配置难度 中等。直接使用 CLI 和预转换 GGUF 模型较简单;但如果要在生产系统中集成 C API、启用 CUDA/Vulkan、转换自定义模型、做中文业务评测和合规级脱敏,需要具备 C++ 构建、模型推理、GPU 环境和数据安全工程经验。
商业价值 该项目适合用于构建企业级本地隐私过滤、数据脱敏和 LLM 输入输出安全网关。它的核心商业价值在于减少敏感数据外泄风险、降低对外部 API 的依赖、提升长文本 PII 扫描性能,并能以较低资源成本部署在服务器或边缘设备上。对于金融、医疗、政企、客服、日志治理、RAG 数据治理等场景,可作为隐私合规基础组件集成到现有数据处理和 AI 应用链路中。
01

技术亮点

  • 相比 Hugging Face Transformers,在长文本 PII 检测上速度和内存优势明显
  • GPU 场景下 README 报告可处理 131k token 文档,而 HF 在 16GiB 显存下约 16k token OOM
  • CPU 8k token 场景报告约 7.7 倍加速
  • 支持 Raspberry Pi 5 等边缘设备本地推理,适合离线隐私检测
  • 返回精确 UTF-8 字节偏移,便于直接做文本脱敏、替换和审计
  • 提供预转换 GGUF 模型,降低部署门槛
  • 自带 Hugging Face checkpoint 到 GGUF 的转换脚本,不依赖 llama.cpp converter
  • 提供稳定的 C API,便于绑定到 Go、Python、Rust 等语言
  • 支持 CPU、Vulkan、CUDA 多后端
  • 项目包含 parity 验证、tokenizer 差分测试、fuzz 测试等质量保障措施
  • MIT License,便于商业集成
02

目标用户

  • 需要在本地或私有环境中检测敏感信息的后端开发者
  • 构建日志、工单、客服记录、医疗文本脱敏系统的工程团队
  • 关注数据合规、隐私保护、DLP 的安全团队
  • 希望避免调用外部 API 处理敏感数据的企业开发者
  • 需要在 CPU、GPU 或边缘设备上部署 NER/PII 模型的 AI 工程师
  • 使用 C/C++、Go、Python ctypes/cgo 等集成底层推理库的开发者
  • LocalAI、私有 LLM 网关、RAG 平台、数据清洗平台的开发团队
03

配置要求

  • 需要 CMake 和支持 C++ 的编译器
  • 仓库依赖 GGML,建议使用 --recursive 克隆以获取子模块
  • 模型文件需要为 GGUF 格式,架构为 openai-privacy-filter
  • CPU 推理可直接使用;多线程数可通过 C API 的 n_threads 参数控制
  • GPU 推理需要额外编译 Vulkan 或 CUDA 后端
  • Vulkan 后端需要 Vulkan SDK/headers、loader 和 glslc
  • CUDA 后端需要 CUDA Toolkit,并可能需要针对新 GPU 架构设置 CMAKE_CUDA_ARCHITECTURES
  • 模型转换脚本依赖 Python、torch、safetensors、gguf 等 requirements.txt 中的包
  • C API 调用时需要管理 pf_ctx 生命周期,并用 pf_entities_free / pf_buf_free 释放返回缓冲区
  • 长文本可通过 pf_set_window(ctx, max_forward_tokens) 设置窗口大小,窗口值大于 2048 时启用分窗处理
04

适用场景

  • 在发送文本到大模型之前,自动识别并打码邮箱、手机号、姓名、地址等 PII 信息
  • 对日志、客服对话、工单、医疗记录、金融文档进行批量隐私扫描
  • 在企业内部构建离线敏感数据检测服务,避免数据传出内网
  • 为 RAG 数据入库前增加隐私过滤步骤
  • 在边缘设备或低资源服务器上运行隐私识别,例如 Raspberry Pi 本地扫描
  • 在 LLM 网关中实现请求/响应内容的实时 PII 检测与拦截
  • 替代部分基于 Python Transformers 的隐私识别服务,以降低延迟和显存占用
  • 通过 C API 嵌入到 Go、Rust、Python、Java 等上层服务中
05

部署与配置

  • 克隆仓库并拉取子模块:git clone --recursive <repo>
  • 构建 CPU 版本:cmake --preset release && cmake --build --preset release -j
  • 如需 Vulkan 后端,安装 Vulkan headers、loader 和 glslc,然后配置 -DPF_VULKAN=ON
  • 如需 CUDA 后端,安装 CUDA Toolkit,然后配置 -DPF_CUDA=ON;新架构 GPU 可能需要手动指定 CMAKE_CUDA_ARCHITECTURES
  • 下载预转换的 GGUF 模型,例如 LocalAI-io/privacy-filter-multilingual-GGUF、LocalAI-io/privacy-filter-GGUF 或 LocalAI-io/privacy-filter-nemotron-GGUF
  • 查看模型信息:build/release/pf-cli --info model.gguf
  • 运行分类示例:echo "Contact John Doe at jdoe@example.com" | build/release/pf-cli --classify model.gguf 0.5
  • 如需自行转换 Hugging Face checkpoint,执行 pip install -r scripts/requirements.txt,然后运行 python scripts/convert.py --model <hf-model-dir> --outfile model-f16.gguf
06

风险与注意事项

  • 项目 star 数约 217,生态和社区规模仍较小,生产环境采用前需要充分验证
  • 模型效果取决于所使用的 privacy-filter checkpoint,不保证覆盖所有行业专有敏感字段
  • PII/NER 检测存在误报和漏报风险,不能作为唯一合规保障措施
  • C++/C API 集成需要注意内存释放、ABI 兼容和异常处理边界
  • GPU 后端编译依赖环境较复杂,Vulkan/CUDA 在不同平台上可能需要额外调试
  • 中文场景效果需要实测,虽然有 multilingual 模型,但具体类别、召回率和边界准确性应结合业务数据评估
  • 长文本窗口和阈值设置会影响召回率、速度和误报,需要根据场景调参
  • 处理敏感数据时仍需做好访问控制、日志保护和结果存储安全
  • README 中的性能数据来自特定硬件和配置,实际部署性能可能不同

历史记录

热榜历史快照

2026-06-20 第30名 新收录 · github_search