
做 UGC 产品的团队基本都踩过内容安全的坑白天上线一个活动晚上审核队列就堆了几万条纯人工审核成本顶不住纯机器审核又怕误杀引发用户投诉。内容安全本质上是一个高对抗、强时效、低容错的场景黑灰产会持续试探你的拦截边界热点事件要求小时级的策略响应一次误杀头部创作者可能直接上热搜。这篇文章结合我在内容中台几年的实践聊聊一套多模态风险识别系统怎么搭、模型怎么选、上线后怎么持续压 badcase。一、先想清楚风险标签体系怎么定标签体系是整个系统的地基地基歪了后面模型再好也白搭。实践中建议按三级来设计一级类目对应处置动作直接拦截、限流降权、转人工、放行。先和运营、合规对齐每种风险怎么处理再倒推需要识别什么。二级类目对应具体风险涉政、色情低俗、暴恐、广告导流、辱骂引战、未成年人相关、侵权等控制在 20–30 个太多会稀释每一类的样本量。每个标签必须写清判定标准和边界 case。比如性感和色情的分界线在哪、医学科普里的裸露算不算违规。这份文档是给标注团队和模型团队共用的写不清楚标注一致率上不去模型上限也就被锁死了。二、总体架构一条异步审核流水线在线审核必须走异步流水线内容发布 → Kafka → 预处理视频抽帧、OCR、ASR→ 三级级联识别 → 决策引擎 → 处置或人审队列。同步接口只做首审快筛黑白名单加轻量模型50ms 内返回深度审核结果出来前可以先发后审或限流发布视业务风险等级而定。三级级联是成本控制的核心第一级规则加黑白名单毫秒级拦截已知的坏内容、放过确定的好内容通常能吃掉 60% 以上的流量第二级轻量模型粗筛第三级才上大模型和多模态精审。每一级存在的意义都是在帮下一级省钱。三、单模态模型怎么选文本fastText 加正则管广告和变体词便宜又快中文 RoBERTa 微调管语义类风险。黑产的谐音、拼音、拆字、emoji 替换是常态对抗手段训练集里必须用数据增强把这些变体喂出来否则上线一周就被打穿。图像分类与检测双路并行检测负责定位高风险目标枪械、血液、旗帜等OCR 必做——大量违规内容是把文字 P 进图里绕过文本审核的。CLIP 类模型适合做开放域兜底和图文一致性判断。音频先 ASR 转文本复用文本审核链路声纹识别只用于特定人回溯。视频别逐帧跑均匀抽帧加镜头切换检测常规内容一秒一帧起步命中可疑再加密抽帧。模型选型之外样本体系才是上限所在。我们的做法是建三层样本库正样本库按标签分层采样保证每个二级标签至少五千条起步难例库专门收集对抗变体和边界 case人审推翻机审的样本优先进这里线上回流库按周滚动更新防止模型被三个月前的数据分布锁死。标注环节用模型预标加人工校正的方式标注员只做判断题不做填空题效率比纯人工标注高三到四倍。另外每个标签要保留一个金标评测集永远不参与训练模型版本发布前必须在金标集上跑过线才能上线这条纪律能挡住大多数训练集自嗨式的版本事故。四、多模态融合与决策引擎融合不是把各模态分数加权平均那么简单工程上更实用的是分级规则加阈值表任一高危标签置信度超过 0.9 直接拦多个中危信号叠加则转人审图文严重不符标题党、挂羊头卖狗肉用 CLIP 图文相似度做跨模态校验。决策引擎一定要配置化阈值放在配置中心运营可以自助调整千万别写死在代码里——热点事件来临时你需要的是分钟级调整能力而不是发版上线。class DecisionEngine: def decide(self, signals: dict) - Decision: # signals: 各模型输出的 {标签: 置信度} for label, score in signals.items(): if label in HIGH_RISK_LABELS and score 0.90: return Decision(actionreject, hitlabel, scorescore) # 多个中危信号叠加, 转人工 risk_sum sum(s for _, s in signals.items() if s 0.60) if risk_sum self.cfg.human_review_threshold: return Decision(actionhuman_review, queueself.route_queue(signals)) # 图文一致性: CLIP 相似度过低时转专项队列 if signals.get(text_image_mismatch, 0) 0.8: return Decision(actionhuman_review, queueconsistency) return Decision(actionpass)五、上线只是开始压 badcase 的日常| 方案 | 覆盖率 | 误判率 | 单条成本 | 典型时延 | | --- | --- | --- | --- | --- | | 纯人工审核 | 取决于人力 | 低但波动大 | 0.1–0.3 元 | 分钟级 | | 关键词规则 | 低易被绕过 | 高 | 可忽略 | 5ms | | 单模态模型 | 中 | 中 | 低 | 10–50ms | | 多模态级联人审兜底 | 高 | 可控 | 中 | 50–300ms |几个一定要做的机制badcase 回流人审结果自动回写样本库申诉样本单独建库每周迭代模型。主动学习让模型挑最拿不准的样本送标注同样的标注预算下提升明显。对抗挖掘常态化安排专人模拟黑产手段镜像翻转、局部打码、分段发布主动打自己。成本护栏