只把个人信息
涂黑。
Noir 是一款脱敏专用的小型LLM:接收文档和“想遮盖什么”的指定,以列表形式返回符合的位置。文档外发之前,只用公司内部的 CPU 就能处理。滚动页面,一道光线会扫过文档。
JA担当の山田太郎です。お電話は03-0000-1234までお願いします。
ENPlease call Emily Carter at (555) 010-4477 before March 3.
DEFrau Anna Becker wohnt in der Lindenstraße 12, 10115 Berlin.
HRIvan Horvat (42 godine) javio je da je na bolovanju.
※ 例文及姓名、号码均为虚构。上方动画是演示的重放。
指定时,
用平常的话就行。
“个人信息”“联系方式”“但年龄除外”。用平时的说法来指定,同一份文档里被遮盖的位置也会随之改变。请点击按钮,或者直接看下去。
主题:【样本贸易】合同内容确认
样本贸易 行政部 张三 先生
您好,一直承蒙关照。我是猫猫数据有限公司的李小红。
想在11月20日(周五)与您商量合同续签事宜。月费仍为4,800元。
听说负责人王五先生(42岁)因腰痛今天休息。
请联系 010-0000-1234 或 [email protected]。
寄送地址:北京市示例区样本路1号 样本大厦5层
※ 此处是动作演示,重放的是固定的结果(并没有运行真实模型)。例文均为虚构。
比120B
更不会多遮。
我们用日语、英语文档各100份,给 gpt-oss-120b(1,170亿参数)下达相同的指令做了比较。上面的纸张是各类错误的示例。下面的柱条是该类错误发生的比例,越短越好。
※ 自建测试的实测结果(2026年11月,Q4_K_M,并用针对邮箱、电话、URL、日期的通用规则)。详细条件见页面末尾。
指定越模糊,
差距越明显。
用天平比较漏遮的多少,漏得多的一边会下沉。把类型明确列出来的指定下,双方不相上下;而像“个人信息”这样模糊的指定,或带有“但……除外”时,差距就拉开了。
Noir0%
gpt-oss-120b0%
※ 日语、英语合计。漏遮率(%,1格 = 1%)。指定的构成为:列出类型的指定 69份,模糊的指定 104份,带排除项 27份。
4种语言,
各自的成绩。
我们为每种语言准备了专用的 Noir(日语、英语共用)。黄色表示优于 gpt-oss-120b 的数字。
- 克罗地亚语、德语的漏遮率与 gpt-oss-120b 基本持平。漏掉的大多是“02.11.2026”“14:12 Uhr”这类欧洲写法的日期和时间。
- 再加2条识别这类日期、时间的规则,按测算,漏遮率可降至克罗地亚语 31→23%、德语 25→15%,低于 gpt-oss-120b(24%、19%)。计划集成到产品中。 计划中
返回的是
JSON。
找到的位置按同一对象归并后,以列表形式返回。字符串与文档中的写法完全一致,可以直接在正文中查找并替换。
- id:同一个人、同一事物会归并为1条(“欧阳明”和“欧阳”)。
- type:48种标签的名称,以提示词的语言返回(中文则为“人名”)。
- mentions:与文档中写法完全一致的字符串。没有符合的内容时为
[]。
请从下面的文档中,找出所有
符合对象的内容。…(略)
输出只包含 JSON 数组: [{"id": "E1",
"type": "...", "mentions": ["..."]}]
对象:
个人信息。但年龄除外
方式: 遮盖(不填 replacements)
文档:
(此处放文档)1份文档,
约20秒。
用笔记本电脑的 CPU(无GPU)读完约900字的文档并返回需要遮盖的位置,这一过程在此重放。重放为5倍速,计时器显示的是实际秒数。
0.0秒5倍速重放
读文档写出遮盖位置
已遮盖 0 / 0
- 指定
- 人名、电话号码、邮箱地址、地址
- 读取
- 约140 token/秒
- 生成
- 约24 token/秒
- 设备
- Core i7-11800H,8线程
- 按这个速度依次处理,1台机器每小时约17万字。
- 用 GPU 同时处理16条时,100份文档约需20秒(gpt-oss-120b 约90秒)。 内部测量
※ 文档和遮盖位置均为示例(本页面中并没有运行模型)。时间是根据内部测得的读取和生成速度计算的。指代同一个人的不同说法会归并为1条,一次遮盖。
每1,000字
切开再交给它。
长文档先切成1,000字左右的小块,再一块一块交给模型。与训练时见过的长度保持一致,遗漏就会减少。结果在最后汇总,并与识别邮箱、电话、URL、日期等固定格式的规则合并。
启动(llama.cpp)
llama-server -m noir-ja-en-Q4_K_M.gguf \ -c 16384 -t 8 -np 1 --jinja --port 8191
已公开下载权重 →
- 使用时关闭思考模式(
enable_thinking: false),并设为temperature 0。 - 按语言选择模型:日语、英语用 ja-en,德语用 de-en,克罗地亚语用 hr-en。
- 在 CPU(Core i7-11800H,8线程)上,1,000字的小块约需20秒。 内部测量
同一份文档,
换条指令就换种涂法。
您可以在示例文档上选择指令来试用。换一条指令,同一份文档里被遮盖的位置也会改变。发给模型的提示词和返回的 JSON,也都可以原样查看。
1选择文档
2选择指令选中后立即运行
或者,自己选择类型
发给模型的提示词
返回的 JSON
[]
测试方法,
以及咨询。
- 文档:日语、英语、德语、克罗地亚语各100份。包括邮件、会议纪要、人事备忘、发票、诊疗信息等,均为测试而编写的虚构文档,并在应遮盖的位置标注了正确答案。
- 指定:每份文档采用“列出类型”“模糊的说法”“带排除项”三者之一。同样的提示词也交给了 gpt-oss-120b(reasoning effort medium)。
- 指标:漏遮=正确答案中未被遮盖的比例;多遮=已遮盖位置中不必要的比例;违反指定=遮盖了指定之外类型的比例。
- 实施时间:2026年11月,Q4_K_M。正式发布前会再次核对。