Update README.md
Browse files
README.md
CHANGED
|
@@ -1,3 +1,152 @@
|
|
| 1 |
-
---
|
| 2 |
-
license: apache-2.0
|
| 3 |
-
---
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
---
|
| 2 |
+
license: apache-2.0
|
| 3 |
+
---
|
| 4 |
+
# 技术简要报告
|
| 5 |
+
|
| 6 |
+
## 1. 任务概述
|
| 7 |
+
|
| 8 |
+
本报告详细介绍了一个用于检测AI生成文本的混合模型架构。该模型结合了CNN+Transformer特征提取和RoBERTa语言模型,通过特征融合实现高效的二分类判别(人类撰写 vs. AI生成)。
|
| 9 |
+
|
| 10 |
+
## 2. 数据处理与特征提取
|
| 11 |
+
|
| 12 |
+
### 2.1 数据集构建
|
| 13 |
+
|
| 14 |
+
系统使用JSONL格式的数据,包含以下关键字段:
|
| 15 |
+
|
| 16 |
+
- `text`: 待分析文本
|
| 17 |
+
- `label_binary`: 二分类标签(human/generated)
|
| 18 |
+
- `label_family`: 模型家族
|
| 19 |
+
- `label_model`: 具体模型
|
| 20 |
+
|
| 21 |
+
### 2.2 特征提取
|
| 22 |
+
|
| 23 |
+
系统通过`gen_features.py`从大型语言模型中提取判别特征:
|
| 24 |
+
|
| 25 |
+
1. **多模型特征提取**:
|
| 26 |
+
- 使用三个模型(Qwen2,chaglm3,gpt-j-6B)对每个文本样本进行分析
|
| 27 |
+
- 通过API调用,获取每个模型的token级别损失值、边界索引和似然得分
|
| 28 |
+
2. **特征处理**:
|
| 29 |
+
- 对齐所有向量长度,确保特征维度一致性
|
| 30 |
+
- 计算模型间的对比特征,包括:
|
| 31 |
+
- 负偏差百分比(lt_zero_percents)
|
| 32 |
+
- 标准差(std_deviations)
|
| 33 |
+
- 皮尔逊相关系数(pearson_list)
|
| 34 |
+
- 斯皮尔曼相关系数(spearmann_list)
|
| 35 |
+
|
| 36 |
+
**特征提取流程图**
|
| 37 |
+
|
| 38 |
+
|
| 39 |
+
|
| 40 |
+
|
| 41 |
+
## 3 模型架构
|
| 42 |
+
|
| 43 |
+
### 3.1 总体架构
|
| 44 |
+
|
| 45 |
+
该系统采用了两级特征融合的混合架构:
|
| 46 |
+
|
| 47 |
+
1. **基础特征提取层**:
|
| 48 |
+
- CNN+Transformer特征提取器:捕获文本的序列模式特征
|
| 49 |
+
- RoBERTa特征提取器:捕获语义和上下文特征
|
| 50 |
+
2. **交叉注意力融合模块**:
|
| 51 |
+
- 将来自不同模型的特征通过交叉注意力机制进行融合
|
| 52 |
+
- 实现两种特征间的相互增强,提取更有判别力的组合特征
|
| 53 |
+
3. **分类层**:
|
| 54 |
+
- 融合特征经过多层感知机进行最终分类
|
| 55 |
+
|
| 56 |
+
|
| 57 |
+
|
| 58 |
+
### 3.2 关键组件详解
|
| 59 |
+
|
| 60 |
+
#### 3.2.1 CNN+Transformer特征提取器
|
| 61 |
+
|
| 62 |
+
通过卷积网络和Transformer编码器提取特征:
|
| 63 |
+
|
| 64 |
+
- 卷积层: 捕获局部模式
|
| 65 |
+
- Transformer编码器: 捕获长距离依赖
|
| 66 |
+
- 位置编码: 保留序列顺序信息
|
| 67 |
+
- 条件随机场(CRF): 优化序列标注结果
|
| 68 |
+
|
| 69 |
+
这里参考SeqXGPT的实现方式
|
| 70 |
+
|
| 71 |
+
#### 3.2.2 RoBERTa特征提取
|
| 72 |
+
|
| 73 |
+
使用预训练的RoBERTa模型提取语义特征:
|
| 74 |
+
|
| 75 |
+
- 使用[CLS]向量作为文本表示
|
| 76 |
+
- 冻结大部分参数,仅微调最后两层
|
| 77 |
+
- 有效捕获语义和语法特性
|
| 78 |
+
|
| 79 |
+
#### 3.2.3 交叉注意力融合模块
|
| 80 |
+
|
| 81 |
+
通过双向交叉注意力机制实现了词汇概率特征与语义特征的深度交互与融合。该模块解决了传统特征简单拼接无法捕获特征间复杂相互关系的问题。
|
| 82 |
+
|
| 83 |
+
#### 双向交叉注意力机制原理
|
| 84 |
+
|
| 85 |
+
交叉注意力融合基于"互相关注"的原则,允许两种异构特征相互引导信息提取。具体来说,该机制包含两个平行的注意力流:
|
| 86 |
+
|
| 87 |
+
1. **词汇特征关注语义特征**:词汇概率特征作为查询(Q),语义特征作为键值对(K,V)
|
| 88 |
+
2. **语义特征关注词汇特征**:语义特征作为查询(Q),词汇概率特征作为键值对(K,V)
|
| 89 |
+
|
| 90 |
+
#### 数学表示
|
| 91 |
+
|
| 92 |
+
给定CNN+Transformer提取的词汇概率特征
|
| 93 |
+
|
| 94 |
+
首先,通过投影层将异构特征投影到同一特征空间:
|
| 95 |
+
|
| 96 |
+
$$
|
| 97 |
+
\mathbf{C'} = \text{Projection}_C(\mathbf{C}) \in \mathbb{R}^{B \times 1 \times d_h}
|
| 98 |
+
$$
|
| 99 |
+
|
| 100 |
+
$$
|
| 101 |
+
\mathbf{R'} = \text{Projection}_R(\mathbf{R}) \in \mathbb{R}^{B \times 1 \times d_h}
|
| 102 |
+
$$
|
| 103 |
+
|
| 104 |
+
|
| 105 |
+
其中共享隐藏维度为256,投影层包含线性变换、层归一化和非线性激活。
|
| 106 |
+
|
| 107 |
+
然后,双向交叉注意力计算如下:
|
| 108 |
+
|
| 109 |
+
$$
|
| 110 |
+
\text{Attention}(Q, K, V) = \text{softmax}\left(\frac{QK^T}{\sqrt{d_h}}\right)V
|
| 111 |
+
$$
|
| 112 |
+
|
| 113 |
+
词汇特征关注语义特征:
|
| 114 |
+
|
| 115 |
+
$$
|
| 116 |
+
\mathbf{C_{attended}} = \text{Attention}(Q=\mathbf{C'}, K=\mathbf{R'}, V=\mathbf{R'})
|
| 117 |
+
$$
|
| 118 |
+
|
| 119 |
+
语义特征关注词汇特征:
|
| 120 |
+
|
| 121 |
+
$$
|
| 122 |
+
\mathbf{R_{attended}} = \text{Attention}(Q=\mathbf{R'}, K=\mathbf{C'}, V=\mathbf{C'})
|
| 123 |
+
$$
|
| 124 |
+
最后,将两个方向的注意力输出拼接并融合:
|
| 125 |
+
|
| 126 |
+
$$
|
| 127 |
+
\mathbf{F} = \text{Fusion}([\mathbf{C_{attended}}; \mathbf{R_{attended}}]) \in \mathbb{R}^{B \times d_h}
|
| 128 |
+
$$
|
| 129 |
+
|
| 130 |
+
其中Fusion是一个非线性转换层,将拼接特征(维度为512)映射回目标维度(256)。具体来说,通过一个线性层、层归一化、ReLU激活和Dropout(比例为0.1)组成的序列转换网络实现。最终得到的256维特征向量被送入分类器进行二分类判别。
|
| 131 |
+
|
| 132 |
+
|
| 133 |
+
|
| 134 |
+
## 4. 训练与评估
|
| 135 |
+
|
| 136 |
+
### 4.1 训练参数
|
| 137 |
+
|
| 138 |
+
- 批次大小:32
|
| 139 |
+
- 序列长度:1024
|
| 140 |
+
- 学习率:5e-5,使用warm-up比例0.1
|
| 141 |
+
- 权重衰减:0.1
|
| 142 |
+
- 训练轮数:20
|
| 143 |
+
- 隐藏层维度:256
|
| 144 |
+
- 注意力头数:4
|
| 145 |
+
- Dropout比例:0.1
|
| 146 |
+
|
| 147 |
+
### 4.2 优化策略
|
| 148 |
+
|
| 149 |
+
- 优化器:AdamW (β1=0.9, β2=0.98, ε=1e-8)
|
| 150 |
+
- 学习率调度:线性预热后线性衰减
|
| 151 |
+
- 梯度裁剪:1.0
|
| 152 |
+
|