【免费下载链接】Deepfake-Detection-Exp-02-21
一、项目简介:一个开箱即用的深度伪造检测模型
Deepfake-Detection-Exp-02-21是一个基于 Google 官方ViT(Vision Transformer)架构微调而来的深度伪造检测(Deepfake Detection)图像分类模型。它接收一张人脸图片作为输入,输出Deepfake(伪造)或Real(真实)的判定结果,测试集F1 分数达到 0.9884,是一款轻量、高精度的开源检测器。
整个仓库本质上就是一个完整的"实验成品 + 训练存档",核心文件结构如下:
| 文件/目录 | 说明 |
|---|---|
| model.safetensors | 最终训练完成的模型权重 |
| config.json | ViT 模型结构与分类标签配置 |
| preprocessor_config.json | 图像预处理参数(缩放、归一化) |
| training_args.bin | 训练参数(序列化保存) |
| checkpoint-750/ | 第 750 步的完整检查点(权重、优化器、调度器、随机状态) |
| README.md | 项目说明、推理代码与局限性说明 |
💡 为什么值得复刻?它证明了:只用一个预训练 ViT 底座 + 5 个 epoch 的微调,就能在深度伪造检测任务上拿到接近 99% 的准确率,流程对新手非常友好。
二、模型架构:ViT 把图片切成"词块"
要理解这个检测器,先理解 ViT 的工作原理。
- Patch 切块:图片被缩放到224×224,然后按16×16的网格切成 196 个小块(patch),每个 patch 被线性投影成一个"视觉词元",就像 BERT 把文本切成词一样;
- 自注意力编码:12 层 Transformer 编码器(
hidden_size=768、12 个注意力头)让所有 patch 互相"对话",捕捉全局纹理与细节; - 分类头输出:最后接一个单层分类器,输出 2 个类别的概率。
以上参数都可以在 config.json 中直接验证:num_hidden_layers: 12、hidden_size: 768、patch_size: 16、image_size: 224,标签映射为:
0 → Deepfake 1 → Real三、训练全流程复盘:5 个 Epoch、750 步就收敛
这是本教程最有价值的部分——我们不需要猜作者是怎么训练的,checkpoint-750/trainer_state.json 把整个训练过程完整记录了下来。
3.1 训练超参数
| 超参数 | 取值 | 备注 |
|---|---|---|
训练轮数num_train_epochs | 5 | 每个 epoch 训练 150 步 |
批大小train_batch_size | 32 | 中等显存 GPU 即可复现 |
总步数max_steps | 750 | 5 epoch × 150 步 |
评估间隔eval_steps | 500 | 按评估步数触发验证 |
保存间隔save_steps | 500 | 检查点保存策略 |
| 初始学习率 | 约5e-06 | 典型的 ViT 微调学习率量级 |
| 学习率策略 | 线性衰减到接近 0 | 末期 LR 仅剩 3.6e-07 |
3.2 训练收敛轨迹
从log_history中可以还原出模型在每个 epoch 结束时的评估表现:
| Epoch | 评估步数 | 验证准确率 | 验证损失 |
|---|---|---|---|
| 1 | 150 | 0.6825 | 0.6708 |
| 2 | 300 | 0.9266 | 0.5908 |
| 3 | 450 | 0.9713 | 0.5124 |
| 4 | 600 | 0.9863 | 0.4586 |
| 5 | 750 | 0.9884 | 0.4411 |
📈 曲线非常典型:第 1 个 epoch 模型还在"认脸",第 2 个 epoch 准确率跃升至 92%+,之后稳步爬升,第 5 个 epoch 时验证损失达到最低点 0.4411,模型就此定型。
小结论:这类"预训练 ViT + 图像分类微调"的任务不需要几十上百个 epoch,5 轮足矣;如果继续训练反而可能过拟合。
四、从零复刻:数据集与推理实践
4.1 准备数据集
训练数据来自作者公开的prithivMLmods/Deepfake-vs-Real数据集(元信息见 README.md)。从零复刻时,你需要准备两组图片:Deepfake 图片目录与Real 图片目录,类别数量一致(本项目各 3200 张测试样本),即可开训。
4.2 使用 Hugging Face Pipeline 一键推理
训练完成后,推理只需几行代码,pipeline会自动完成 preprocessor_config.json 中定义的预处理(resize 到 224×224、按0.5/0.5/0.5归一化):
from transformers import pipeline pipe = pipeline('image-classification', model="prithivMLmods/Deepfake-Detection-Exp-02-21", device=0) print(pipe("path_to_image.jpg"))4.3 使用 PyTorch 手动推理(更可控)
如果想拿 logits、接自己的后处理逻辑,可以用ViTForImageClassification:
from transformers import ViTForImageClassification, ViTImageProcessor from PIL import Image import torch model = ViTForImageClassification.from_pretrained("prithivMLmods/Deepfake-Detection-Exp-02-21") processor = ViTImageProcessor.from_pretrained("prithivMLmods/Deepfake-Detection-Exp-02-21") image = Image.open("path_to_image.jpg").convert("RGB") inputs = processor(images=image, return_tensors="pt") with torch.no_grad(): logits = model(**inputs).logits label = model.config.id2label[logits.argmax(dim=1).item()] print(f"Predicted Label: {label}")4.4 官方测试集上的最终表现
precision recall f1-score support Deepfake 0.9962 0.9806 0.9883 1600 Real 0.9809 0.9962 0.9885 1600 accuracy 0.9884 3200两个类别的 F1 都稳定在 0.988 以上,说明训练时类别均衡、没有明显的偏向。完整报告原文见 README.md。
五、局限性与实战注意事项 ⚠️
作者在 README.md 中坦诚列出了模型的边界,实际使用前务必了解:
- 泛化能力有限:对训练时没见过的新伪造手法(新生成器、新编辑方式)效果可能明显下降;
- 分辨率约束:模型为 224×224 输入优化,超高分辨率图片的细节信息会被压缩损失;
- 对抗攻击脆弱:针对 ViT 的对抗样本可能骗过检测;
- 误报/漏报不可避免:关键场景(取证、司法)应保留人工复核环节。
适合场景:社交媒体内容审核、安全取证辅助、AI 安全研究,以及学习 Transformer 微调的入门教学项目。
六、写在最后:新手复刻路线图 🗺️
把整篇教程浓缩成一张行动清单:
- 理解底座:读 config.json,记住 ViT 的 patch_size=16、12 层编码器;
- 准备数据:按
Deepfake / Real两类组织图片,参考prithivMLmods/Deepfake-vs-Real; - 微调训练:学习率 5e-06 量级、batch 32、5 个 epoch,用
eval_steps定期验证防过拟合; - 保存检查点:像 checkpoint-750/ 一样保存权重 + 优化器 + 训练状态,保证实验可复现;
- 上线推理:优先用
pipeline快速验证效果,再切换到手动加载做集成。
跟着这条路线,你也能在几小时内复刻出一个准确率接近 99% 的深度伪造检测器。🎯
【免费下载链接】Deepfake-Detection-Exp-02-21
相关推荐
ViT如何识破AI造假?Deepfake-Detection-Exp-02-21图像分类原理深度拆解
ViT如何识破AI造假?Deepfake Detection Exp 02 21图像分类原理深度拆解 🔍 Deepfake Detection Exp 02
复现open-deepfake-detection的训练全过程:从checkpoint-625到checkpoint-1250的完整微调复盘
复现open deepfake detection的训练全过程:从checkpoint 625到checkpoint 1250的完整微调复盘 open deep
如何训练一个PII检测模型?bert-small-pii-detection微调路线全解析
如何训练一个PII检测模型?bert small pii detection微调路线全解析 想训练自己的 PII 检测模型 (个人敏感信息识别)吗?开源项目 b
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考