从技术角度看,一款像样的 AIGC 检测器,背后至少有 三层能力:
- 识别'是不是 AI 产的'(分类层)
- 判断'质量 / 真实性 / 违规风险'(内容理解层)
- 在真实业务场景里'能跑得起来'(系统工程层)
一、核心识别技术:怎么判断'AI 还是人'
1. 经典统计特征 + 机器学习
这块是'基础款',但在真实系统里仍然很有用,尤其是和更复杂模型组合成特征。
需要的技术:
- NLP 预处理
- 中文分词 / 子词切分(BPE、SentencePiece)
- 句子切分、标点结构分析
- 统计特征工程
- 词频 / n-gram 特征(比如字符 n-gram、词 n-gram)
- 句长分布、词长分布
- 复杂度指标(熵、困惑度、Type-Token Ratio)
- 标点使用模式、停用词比例
- 传统 ML 模型
- Logistic Regression / Linear SVM
- XGBoost / LightGBM
把上面特征丢进去做'AI vs 人类'的分类。
优点:
- 易解释,可做线上轻量特征; 缺点:
- 面对最新大模型 + 人工轻微改写,很容易被绕过;
- 但作为排序/风控特征,是不错的'第一层信号'。
2. 基于'困惑度(Perplexity)'的检测
思路:大模型生成的文本,对语言模型来说往往'太顺了',困惑度偏低;人类写的有更多'不规则'。
技术要点:
- 训练或调用一个 基准语言模型(可以是中等大小的 GPT-like 模型)
- 对文本按 token 计算:
- 条件概率
- 平均负对数似然 / 困惑度
- 构造特征:
- 整体困惑度均值 / 方差
- 分句困惑度波动
- 局部异常点(哪里'顺得过头')
实现路径:
- PyTorch / TensorFlow:加载一个已有 LLM(开源的中文模型也行)
- 对每个文档跑一次 forward,拿到 log prob,算困惑度
- 再把这些数值作为特征,喂给上层分类器(比如一个 GBDT 或小神经网络)
3. 专门的'AI 文本分类器'(判别模型)
这是现在最主流、效果最好的那层: 直接训练一个模型去判「AI vs Human」。
技术栈:
- 预训练模型:BERT / RoBERTa / DeBERTa / 中文专用 Transformer(MacBERT、Erlangshen 等)
- 微调方法:
- 文本分类微调(CLS 向量接一个二分类头)
- 可增加多标签输出:
- 是否 AI 生成
- 可能来源模型(GPT-4 / ChatGPT / 文心 / 通义 / 自家模型等)
- AI 痕迹强度(0–1 分)
- 训练数据构建:


