1. 背景
备案材料里的"关键词拦截列表",工程上不能当一张平面词表来做。本文记录一套生产可用的敏感词库分层实现方案,核心问题有三个:怎么拦得准(查全)、怎么拦得少误伤(查准)、怎么对抗变体(对抗)。文中代码为示意性伪代码。
2. 三层拦截架构
第一层:绝对拦截层
高危类目(涉政、暴恐、涉黄等),命中即拦截,无豁免。
匹配引擎不建议用正则遍历,词表到万级规模后性能塌方。标准做法是 Aho-Corasick 自动机:预处理词表构建状态机,匹配时间复杂度与文本长度线性相关,与词表规模无关。

第二层:条件拦截层
需要上下文判定的词(如医学术语、金融术语),第一层不做终判,交给语境模型二次处理:

这一层的关键设计:条件的判定策略要沉淀成可解释的规则集,因为备案审查会问"你们怎么判断拦截与放行"------答案需要能落到文档上。
第三层:白名单豁免层
新闻、科普、教育等正当场景的豁免,避免"乳腺癌科普文整篇被拦"这类误杀。豁免判定与条件层共用语境模型,输出放行时附带理由,写入审计日志。
3. 变体对抗:归一化管线
拼音替换、谐音、拆字、间隔符、同音字是五大类绕过手法。在进自动机之前先做归一化:

注意:归一化管线对原文和词表要对称处理------词表同样要做同音字扩展入库,而不是只处理用户输入。
4. 词表运营:版本管理与更新闭环
- 每次词表变更生成版本号,记录新增词、来源(监管通报/内部测试发现/线上拦截复盘);
- 内部红队测试和线上漏拦案例回流到词表需求池,评估后入库------这就是"评估驱动词表补齐"的闭环;
- 定期跑全量回归:历史放行样本重扫,防止新词造成大面积误杀。
5. 与备案材料的关系
这套架构对应的备案叙事是:拦截列表不是静态文件,而是有分层策略、有对抗能力、有更新机制的运行系统。把版本管理记录、回归测试报告整理进评估材料,就是"安全能力有工程证据"的直接体现。
参考资料:
- GB/T 45654《网络安全技术 生成式人工智能服务安全基本要求》
- 《互联网信息服务深度合成管理规定》