大模型备案材料里,拦截关键词列表(敏感词库)是最容易被低估的一项。很多团队以为随便整理一批敏感词导出个 Excel 就行,结果属地网信办技术测试时误拦率爆炸,或者词库覆盖不全直接被打回。

本文按国标要求、构建方法、工程实现、常见驳回点四部分,记录一遍完整做法。

一、国标怎么要求

依据 GB/T 45654-2025(TC260-003)附录 B.1.1,关键词库的硬性要求:

  • 总规模不少于 10000 个
  • 至少覆盖附录 A.1、A.2 共 17 种安全风险(涉政、暴恐、色情、辱骂、价值观等高中风险)
  • A.1 类风险每类关键词 ≥200 个,A.2 类每类 ≥100 个
  • 每周至少更新一次,要有更新记录

注意这是“不宜少于”的指导值,实操建议按 1.2–1.5 万条准备,留出属地加测余量。

二、词从哪里来

1 万条不是拍脑袋攒的,四个来源:

  • 监管侧公开数据:历年网信办通报的下架应用、违规账号关联词,各地网信办反馈的属地补充词
  • 开源词库:GitHub 上维护多年的中文敏感词库(politically-sensitive-word、prohibited-words 等仓库),做去重和分类后作为底料
  • 模型实测补录:用生成内容测试题库(≥2000 题)跑模型,把触发风险的输入和变体回填进词库——这一步是自研词库和拼凑词库拉开差距的关键
  • 业务侧变体:拼音缩写、拆字、谐音、中英混写、零宽字符插入等对抗变体,审核方实测时专门会试这些

每个关键词建议维护四个字段:关键词 / 风险类别 / 变体标记 / 添加时间。风险类别必须对应国标 17 类,材料审核时会抽查分类合理性。

三、工程实现要点

1. 词表结构

 

按风险类别分 sheet 导出,目录结构和文件命名与备案材料清单对齐。

2. 运行时匹配

词量过万后朴素遍历不可用,上 AC 自动机(Aho-Corasick),一次扫描匹配全部关键词:

补充两个工程细节:

  • 归一化预处理:匹配前对输入做全半角统一、繁简转换、零宽字符剔除,否则变体词形同虚设
  • 关键词不是拦截的全部:词库兜不住语义级风险,生产架构是「AC 自动机 + 分类模型(覆盖 31 类风险)」双层,词库快筛、模型兜底,这正好对应国标里关键词库和分类模型两套要求

3. 误拦控制

拦截词触发后不建议直接粗暴拒答,先过一层白名单(正常业务术语、历史人物、地域名等),把误拦率压下去——误拦太多会拖累非拒答测试(误拒率要求 ≤5%)。

四、常见驳回点

  1. 规模不足:交上去不到 1 万条,或者名义上万条但存在大量单字、无意义词条凑数——审核方会抽查
  2. 分类缺失:只有词没有风险类别,或者类别标注和词义明显不符
  3. 无更新机制:材料里体现不出每周更新的记录,合规意识扣分
  4. 词库与实测对不上:技术测试时用对抗变体问模型,词库没拦住、模型也没拒答,双重失分
  5. 只交词库不交拦截逻辑说明:材料里要写清词库在系统中的使用方式(匹配策略、命中后的处置流程、日志留存)

五、小结

拦截关键词列表的本质,是内容安全的第一道确定性防线:国标底线 1 万条、17 类风险全覆盖、每周更新,工程上 AC 自动机 + 分类模型双层架构,材料上分类清晰、更新留痕。把这四件事做扎实,这一项材料基本不会被卡。

下一篇写评估测试题集的三套题库建设,有兴趣的关注。

Logo

更多推荐