最近做内容平台后端和 AIGC 应用的朋友应该都被同一个话题刷过屏某个海外流媒体平台上线了一个 AI 生成内容的频道结果大量视频被用户评价为“AI slop”——低质、重复、缝合痕迹明显体验比预期还要糟。类似问题其实不只是某一家平台的个例而是所有把 AIGC 内容批量推向生产环境后都会踩到的坑。这篇文章不从吃瓜角度聊新闻而是把问题拆成工程视角AI 生成内容为什么容易质量失控平台应该如何建立质量评估、内容去重、违规识别和人工兜底的治理链路我会给出可落地的评估维度、Python 检测脚本和完整的治理流程适合正在做 AIGC 产品、音视频平台、内容审核系统的开发者参考。1. AI 内容生态背后的“AI slop”问题1.1 什么是 AI slop channel“AI slop”是最近在内容平台讨论中高频出现的一个词大意是指由 AI 批量生成、缺乏真实信息增量和创作质量的内容。它可能是 AI 写出的文章、AI 绘制的图片也可能是 AI 配音和剪辑生成的短视频、长视频。当一个平台专门给这类内容开放频道或流量入口时就会形成所谓的 AI slop channel。新闻标题里说“worse than expected”本质上是在说平台对 AI 生成内容的预期是“低成本供给内容”但用户实际感受到的是“信息密度极低、画面拼接生硬、标题党严重、同质化泛滥”。这类内容大量出现后会带来几个直接后果用户信任度下降点进视频后发现内容和标题几乎无关。优质创作者的内容被同质化内容挤压平台生态恶化。审核压力上升因为 AI 可以快速生成海量变体绕开简单规则。广告和推荐系统被低质内容“污染”点击率、完播率指标失真。1.2 为什么 AI 生成内容会失控从技术层面看AI 内容失控不是某一个模型的问题而是“生成链路 审核链路 分发链路”三个环节都没有做好。先看生成链路。很多内容生产工具为了降低创作门槛允许用户输入一个标题就让模型自动生成脚本、配音、画面。模型的随机性和训练数据局限导致输出内容在事实准确性、逻辑一致性、风格稳定性上都有明显波动。如果没有任何质量门槛低质内容就会直接进入内容库。再看审核链路。传统审核重点放在“违规内容识别”上比如色情、暴力、政治敏感、广告导流。但 AI slop 往往不违规只是“低质”。如果平台没有建立低质内容识别机制这类内容就很容易通过审核。最后是分发链路。推荐系统天然倾向于推荐点击率高、互动强的内容。AI 生成内容往往标题党特征明显容易吸引点击但用户点进去后迅速跳出。如果推荐系统没有把“完播率”“负反馈”纳入权重低质内容会在短期内获得不相称的流量。1.3 从新闻事件到工程问题把“AI slop channel”当作一个工程技术问题来看它其实可以拆成五个子问题如何定义和量化“低质 AI 生成内容”。如何在内容入库前拦截明显低质的内容。如何在内容分发中降低低质内容的曝光。如何对已经发布的低质内容做批量回扫和治理。如何设计人工审核兜底和用户举报闭环。下面的内容会围绕这五个子问题展开重点讲前三个因为它们是可以用工程手段快速见效的部分。2. AI 生成内容质量差的根因拆解2.1 生成策略的问题AI 内容质量差首先与生成策略有关。常见做法是用户输入一个主题词系统直接调用大模型生成“标题 正文 画面描述”再交给 TTS 和视频合成模块。这里有两个典型问题。第一个问题是 prompt 设计过于简单。没有给模型明确的风格约束、事实约束和长度约束导致模型自由发挥空间过大。比如输入“介绍熊猫”模型可能生成一段内容泛泛而谈没有具体数据也没有结构。第二个问题是没有对输出做结构化处理。好的生成内容应该有固定的字段结构核心观点、支持论据、发布时间、地点、数据来源。如果这些信息缺失后期很难做质量判断。低质量生成链路 主题词 - 大模型 - 长文本 - 自动配音 - 自动配图 - 发布 较合理的生成链路 主题词 - 结构化大纲 - 事实校验 - 分镜脚本 - 配音合成 - 画面生成 - 质量自评 - 入库2.2 缺乏有效的内容质量评估很多平台在内容入库时只检查“文件是否能播放、是否超时、是否有违规词”缺少对内容语义质量、画面质量、音频质量的综合判断。AI 生成内容的质量问题恰恰集中在这些维度。比如一段 AI 合成的语音可能有明显的机械感、断句错误、语气僵硬一段 AI 生成的画面可能在人物手部、光影、物体边缘出现明显瑕疵一段由大模型生成的文本可能在事实引用上出现“一本正经胡说八道”。要解决这个问题需要建立一个多维度的质量评估体系而不是依赖单一规则。具体怎么做下一节会详细说明。2.3 内容审核链路不完整传统审核链路通常是这样机器初审 - 人工复审 - 通过发布。机器初审主要靠文本关键词、图片哈希、视频指纹。但对于 AI 生成内容传统手段有两个盲区。第一AI 可以生成大量语义相似但文本完全不同的变体关键词规则很难覆盖。第二AI 生成的视频画面、音频不像真人内容那样有稳定的拍摄噪声和环境特征传统视频指纹算法识别效果有限。因此审核链路需要引入 AIGC 检测模型、低质内容评分模型、信息密度评估等新能力。2.4 推荐系统放大了低质内容推荐系统本身没有“内容质量”概念它只关心用户反馈。AI 生成的标题党内容往往在一开始能获得较高点击率所以推荐系统会继续加量推荐。如果用户点进去后迅速返回产生负反馈推荐系统才会逐步降权。但这个过程存在一个时间窗口。在这个窗口内低质内容已经获得了大量曝光用户对平台的信任已经受损。更合理的做法是把内容质量分作为推荐系统的“先验特征”在冷启动阶段就参与排序。3. 建立 AI 生成内容质量评估体系3.1 质量评估维度设计要治理 AI 生成内容第一步是定义什么是“低质内容”。根据实践经验我建议从以下五个维度打分维度评估内容评估手段文本信息密度标题和正文是否包含具体事实、数字、专有名词文本长度、实体数量、关键词密度内容重复度与历史内容是否存在大面积重复MinHash/SimHash 去重画面质量是否存在明显 AI 生成伪影、低分辨率、场景突变多模态模型评分音频质量是否存在机械感、语速异常、断句错误ASR 置信度、语音特征真实性关键事实是否可验证是否出现幻觉知识库校验、检索增强每个维度可以输出 0 到 1 的分值最后加权合并成综合质量分。3.2 用 Python 实现基础质量评分下面是一个基础的质量评分脚本。它不依赖复杂的深度学习模型只使用文本特征做初步判断适合作为链路中的第一层过滤器。# 文件路径quality_eval.py import re from collections import Counter # 标题党常见关键词按业务情况维护 TITLE_BLACKLIST [震惊, 神秘, 不可思议, 绝密, 必看, 快看, 惊人, 罕见] def evaluate_text_quality(asr_text: str) - dict: 基于 ASR 文本评估内容信息密度与重复度。 asr_text: 视频语音转写后的文本 if not asr_text or len(asr_text.strip()) 0: return {text_len: 0, unique_rate: 0.0, score: 0.0} text asr_text.strip() words re.findall(r[\u4e00-\u9fa5A-Za-z0-9], text) if not words: return {text_len: 0, unique_rate: 0.0, score: 0.0} counter Counter(words) unique_rate len(counter) / len(words) # 信息密度越高unique_rate 越接近 1 # 这里用 1.5 倍关系做归一化限制最大值为 1.0 score min(1.0, unique_rate * 1.5) return { text_len: len(text), unique_rate: round(unique_rate, 4), score: round(score, 4), } def evaluate_title(title: str) - float: 检查标题是否命中低质关键词。命中越多分数越低。 hits [word for word in TITLE_BLACKLIST if word in title] return max(0.0, 1.0 - 0.2 * len(hits)) if __name__ __main__: sample_title 震惊神秘科学家发现了不可思议的秘密快看 sample_text 大家快看这个神秘的地方真的太不可思议了一定要看到最后。 title_score evaluate_title(sample_title) text_quality evaluate_text_quality(sample_text) print(标题质量分:, title_score) print(文本质量:, text_quality)运行这段脚本输出可能如下标题质量分: 0.2 文本质量: {text_len: 27, unique_rate: 0.6667, score: 1.0}注意这个例子中标题扣分比较多因为命中了“震惊”“神秘”“不可思议”“快看”四个黑名单词。文本因为长度较短unique_rate 不算低但实际生产环境还要结合内容长度一起判断。一个只有 27 个字的视频文案即使词不重复信息密度也是不足的。所以在实际系统中不能只看 unique_rate 一个指标还要加入“最小文本长度阈值”。比如def is_qualified(text_quality: dict, min_text_len: int 100) - bool: if text_quality[text_len] min_text_len: return False if text_quality[score] 0.5: return False return True3.3 引入多模态理解模型文本特征只是第一层。要识别“AI 生成画面质量差”这类问题文本特征基本无能为力需要引入多模态模型。思路是抽取视频中的若干关键帧送入预训练的图像质量评估模型得到画面质量分。同时把 ASR 文本送入语义模型计算文本与画面的相关性。如果画面与文本完全不相关说明内容很大概率是 AI 拼接生成的结果。实际上这就是一个“图文相关性”判断任务可以用 CLIP 模型的基础能力实现。训练数据不足时最稳妥的方法是先做小规模人工标注验证模型效果后再灰度上线。4. AIGC 内容治理落地流程4.1 治理流程设计一个完整的 AIGC 内容治理流程我建议按下面几步设计内容上传 - 第一步元数据校验 - 第二步文本质量评估 - 第三步内容指纹去重 - 第四步多模态质量评分 - 第五步规则引擎拦截 - 第六步人工审核抽审 - 入库 / 发布每通过一层内容拿到一个“信任分”。只有总评分高于阈值的视频才允许进入推荐池低于阈值但又不违规的内容进入低流量池由人工抽审或作者申诉后重新评估。4.2 内容指纹与去重AI 生成内容的同质化非常严重。同一个主题用同一套脚本模板可能生成几百个相似视频。如果不去重用户刷到的每条内容都差不多体验会非常差。去重最常用的方案是 MinHash LSH。先对文本做 shingle 切分再计算 MinHash 签名最后通过局部敏感哈希寻找疑似重复内容。下面是一个最小实现思路# 文件路径dedup.py # 注意需要安装 datasketch 库命令pip install datasketch import re from datasketch import MinHash, MinHashLSH from typing import Iterable def gen_shingles(text: str, k: int 5) - Iterable[str]: 对文本做滑窗切分生成 k-shingle。 text re.sub(r\s, , text) if len(text) k: yield text return for i in range(len(text) - k 1): yield text[i : i k] def text_minhash(text: str, num_perm: int 128) - MinHash: 将文本转换为 MinHash 签名。 m MinHash(num_permnum_perm) for shingle in gen_shingles(text): m.update(shingle.encode(utf-8)) return m if __name__ __main__: text_a 今天给大家介绍一种神奇的动物它的名字叫熊猫。 text_b 今天给大家介绍一种超级神奇的动物它的名字叫做熊猫。 text_c 最近天气很好适合跑步和户外运动。 minhash_a text_minhash(text_a) minhash_b text_minhash(text_b) minhash_c text_minhash(text_c) print(A 与 B 相似度:, minhash_a.jaccard(minhash_b)) print(A 与 C 相似度:, minhash_a.jaccard(minhash_c))这种方法的优点是对文本改写有一定的鲁棒性即使措辞略微变化只要整体结构相似Jaccard 相似度仍然很高。生产环境一般会用 LSH 分桶来加速检索而不是把每条内容和全库做两两比较。4.3 低质内容识别与拦截低质内容识别可以分三层第一层是规则层。比如标题黑名单、文案长度阈值、重复度阈值。这一层速度快适合处理海量内容但容易被变体绕过。第二层是模型层。用文本分类模型识别标题党、营销号文案用多模态模型识别画面与文本不一致用音频检测模型识别 TTS 机械音。这一层准确率更高但需要 GPU 资源适合做抽检或二次审核。第三层是人工层。对规则层和历史模型识别不稳定的内容进行人工抽审。人工审核结果可以反过来迭代模型训练集。这三层需要组合使用不能只靠一个模型。5. 一个可运行的示例低质 AI 视频内容检测脚本5.1 项目结构为了让你更直观地理解整个流程我写一个可运行的检测脚本示例。它模拟的是“视频上传后后台对文本内容和标题做质量评估”的场景。aigc_content_filter/ ├── quality_eval.py # 文本质量评分 ├── dedup.py # MinHash 去重 ├── content_filter.py # 综合过滤主脚本 └── sample_data/ # 示例数据目录5.2 代码实现下面是综合过滤主脚本它会把前面几个能力串联起来。# 文件路径content_filter.py 低质 AI 生成内容检测脚本示例。 输入视频标题 ASR 文本 是否标题党 输出质量评分、重复标记、是否建议人工审核 注意 - 这里只演示核心流程真实系统需要封装成服务并接入消息队列。 - 多模态画面评分部分未实现工程上可以接入自研或第三方图像质量模型。 from quality_eval import evaluate_text_quality, evaluate_title from dedup import text_minhash class AIGCContentFilter: def __init__(self, min_text_len: int 100, duplicate_threshold: float 0.8): self.min_text_len min_text_len self.duplicate_threshold duplicate_threshold def check_text_quality(self, title: str, asr_text: str) - dict: title_score evaluate_title(title) text_quality evaluate_text_quality(asr_text) text_ok text_quality[text_len] self.min_text_len and text_quality[score] 0.5 title_ok title_score 0.6 return { title_score: title_score, text_quality: text_quality, text_ok: text_ok, title_ok: title_ok, } def check_duplicate(self, asr_text: str, existing_hashes: list) - bool: 简化版去重和已有内容的 MinHash 比较相似度。 真实系统会使用 MinHashLSH 做近似检索不会两两全量比较。 current_hash text_minhash(asr_text) for old_hash in existing_hashes: if current_hash.jaccard(old_hash) self.duplicate_threshold: return True return False def filter(self, title: str, asr_text: str, existing_hashes: list) - dict: quality_result self.check_text_quality(title, asr_text) is_duplicate self.check_duplicate(asr_text, existing_hashes) # 综合判断 if is_duplicate: decision reject reason 与已有内容重复 elif not quality_result[text_ok]: decision review reason 文本信息密度不足或长度不够 elif not quality_result[title_ok]: decision review reason 标题命中低质关键词 else: decision pass reason 质量评估通过 return { decision: decision, reason: reason, quality_result: quality_result, is_duplicate: is_duplicate, } if __name__ __main__: # 模拟已入库内容的 MinHash 列表 existing_text 今天给大家介绍一种神奇的动物它的名字叫熊猫主要生活在四川。 existing_hash text_minhash(existing_text) existing_hashes [existing_hash] # 待检测内容 new_title 震惊神秘的熊猫竟然生活在这里快看 new_asr_text 今天给大家介绍一种神奇的动物它的名字叫熊猫主要生活在四川喜欢吃竹子。 filter_engine AIGCContentFilter(min_text_len50) result filter_engine.filter(new_title, new_asr_text, existing_hashes) print(result)5.3 运行与验证按顺序创建quality_eval.py、dedup.py、content_filter.py然后运行pip install datasketch python content_filter.py预期输出大致如下{decision: reject, reason: 与已有内容重复, quality_result: {title_score: 0.2, text_quality: {text_len: 38, unique_rate: 0.7143, score: 1.0}, text_ok: False, title_ok: False}, is_duplicate: True}从输出可以看到新内容和已有内容的相似度很高触发了去重逻辑因此被直接拒绝。而它的标题又命中了标题党关键词即使没有被判重复也会进入人工审核队列。这个脚本虽然简单但它演示了治理系统的核心思路分层判断多个信号综合而不是依赖单一规则。6. 常见问题与排查思路在实际搭建 AI 内容治理系统时有一些高频问题容易被忽略。下面列一个排查清单。问题现象常见原因解决思路优质 AI 内容被误杀文本长度阈值设置过高或标题黑名单过宽分析误杀样本降低阈值黑名单改为软性扣分低质内容绕过文本规则模型对文案做了大量改写文本特征变化大引入多模态模型检查画面与文本一致性去重效果差只对完整文本做 shingle没有归一化处理先做繁简转换、去掉标点、统一数字形式人工审核压力大“疑似低质”的判断条件太宽松对风险内容分级只把低分中段内容送人工推荐侧低质内容仍在曝光推荐系统冷启动阶段未使用质量分特征将质量分接入推荐排序并观察完播率变化检测服务性能不足每条内容都跑多模态模型耗时过高先用规则层过滤只对可疑内容调用模型层排查这类问题我建议把日志做得足够细。每条内容入库时都要记录命中哪些规则、模型评分是多少、人工审核结果是什么。这样后续才能定位是规则问题还是模型问题。7. 最佳实践与工程建议7.1 在内容生产源头上做控制与其等 AI 内容生成后再治理不如在生成阶段就做控制。具体来说第一用结构化 prompt 约束输出。要求模型按固定格式输出大纲、观点、事实和引用不要自由发挥。第二在生成链路上增加“自检节点”。核心事实可以接入知识库做检索校验检测到矛盾就生成失败并重试。第三对生成视频的生产账号做限额。即使是官方 AI 生成渠道也要限制单日发布量避免一个账号瞬间灌入海量内容。7.2 在内容分发链路上做控制推荐系统不能只关注点击率。建议在冷启动阶段加入质量分特征低质量内容即使有点击潜力也要限制展示量。同时把“用户举报”“快速返回”“不感兴趣”作为强负反馈让低质内容更快退出流量池。另外可以给 AI 生成内容打上标识在用户端展示“AI 生成”标签。这既是信息透明也能降低用户预期减少因为内容质量引发的投诉。7.3 在治理运营上做控制内容治理是一个持续迭代的过程建议从以下四个方面搭建建立质量分回看机制。每周随机采样已发布内容人工重新评分验证模型是否漂移。建立用户举报闭环。举报内容进入二次审核队列并将结果反馈到评分模型。建立测试集。把每次发现的误杀、漏放案例沉淀为标准测试集模型迭代时先跑回归测试。建立灰度发布机制。任何规则和模型的变更先灰度到 1% 或 5% 流量观察评审准确率和误杀率后再全量上线。生产环境中对任何规则变更都要保持谨慎。尤其是涉及内容下架、账号限流、推荐降权的操作必须做到“可灰度、可回滚、可追溯”。所有决策都要有日志留痕方便事后复盘。8. 总结AI 内容治理是系统工程回到开头的话题AI slop channel 的问题本质上是平台在追求 AIGC 内容供给速度时忽略了质量评估和内容治理。任何 AIGC 产品只要涉及公开分发都应该把质量治理当成系统设计的一部分而不是上线后再补救。本文梳理了 AI 生成内容质量失控的四个根因给出了五个质量评估维度并提供了文本质量评分、MinHash 去重和综合过滤三个 Python 示例。你可以把这些代码作为脚手架在自己的项目里扩展出更完整的治理链路。下一步建议你优先解决两个问题第一把质量分接入现有内容审核流程让机器先拦截明显低质的内容第二把人工审核结果积累成数据集开始训练一个适合自己业务场景的内容质量分类模型。治理能力不是一次性建成的它会随着业务数据增多而越来越准。