2301_76761127/communityforensics-deepfakedet-vit-npu
模型介绍
文件和版本
Pull Requests
讨论
分析

CommunityForensics-DeepfakeDet-ViT · Ascend NPU 适配

1. 模型身份(模型来源/镜像)

  • 模型:buildborderless/CommunityForensics-DeepfakeDet-ViT(ViT 图片分类,deepfake 检测: ViTForImageClassification,hidden 384 / 12 层 / 6 头 / patch 16 / image size 384, 单 logit 分类头 num_labels=1,MIT)
  • 官方镜像 URL:https://ai.gitcode.com/hf_mirrors/buildborderless/CommunityForensics-DeepfakeDet-ViT
  • 上游 URL:https://huggingface.co/buildborderless/CommunityForensics-DeepfakeDet-ViT
  • 固定 source revision:ac6ee457bea904a373065754107451793b56db00
  • 权重:model.safetensors,87270764 bytes,SHA-256 275ba982236ddd6afddf7131f8133e89f537574b964cf8fa5825b4956d741692
  • 许可 license:MIT

2. 硬件软件矩阵(平台栈未替换)

  • 硬件:Atlas 910B3(Ascend910B3),逻辑设备 npu:0
  • CANN 9.0.0;Python 3.11.15;PyTorch 2.10.0+cpu + torch_npu 2.10.0
  • 模型级依赖见 requirements.txt(transformers==5.9.0 + pillow/numpy/safetensors), 未替换 CANN/PyTorch/torch_npu 平台栈。
  • 代码来源:架构代码为 pinned pip 包 transformers==5.9.0(Apache-2.0),经其文档化公开 API ViTForImageClassification.from_pretrained(..., local_files_only=True) 加载;快照本身只含 权重与配置。strict 加载,任何未被 checkpoint 覆盖或多余的参数张量都会直接报错中止。
  • 精度说明:全网络 float32 端到端(checkpoint torch_dtype=float32);CPU/NPU 同一计算图与 dtype,无降精度。
  • 确定性说明:eval + torch.no_grad;config dropout 全为 0.0;10 条输入为冻结确定性合成 fixture;推理路径不消耗任何 RNG。

3. 外部权重准备与完整性门禁

外部权重需离线放置于 ./model/(或 --model_path 指定),内容取自固定 revision 快照的 config.json、preprocessor_config.json、model.safetensors 三个文件。inference.py 启动时逐字节校验这三个文件的 SHA-256(及权重大小),不符即拒绝运行,不存在网络回退 (HF_HUB_OFFLINE=1、TRANSFORMERS_OFFLINE=1)。

4. 唯一验收入口

inference.py 是唯一验收入口(sole acceptance entry),全部参数如下:

python inference.py --model_path ./model --device npu:0 --seed 20260817 --output_json result.json
  • --device 仅接受 cpu 或 npu:N;NPU 不可用即 fail-closed,拒绝 CPU 回退。
  • 调用链:合成 fixture 图(uint8 [512,640,3])→ CLIPImageProcessor(resize shortest edge 440 → center crop 384 → CLIP mean/std 归一化,bicubic)→ pixel_values [1,3,384,384] → ViTForImageClassification → logits [1,1](deepfake 分数 logit)。
  • 输出设备字段来自 .cpu() 回传前的真实张量设备读数(actual device 记录模型/输入/输出三处)。
  • CPU 与 NPU 均固定 torch.set_num_threads(8)(192 核主机防线程过订阅,纯性能设置)。

5. 固定测试用例与输出计数

  • 完整测试用例:10 条冻结确定性合成 RGB 图(numpy RandomState(20260817+i),MT19937 跨平台稳定;uint8 [512,640,3]);逐样本 sha256 见 accuracy/manifest.json。
  • 输出族:logits(1 值/样本,单 deepfake logit),总计 10 值,全部要求有限值; 两次独立 NPU run 的全部 10 个 logit 值逐位一致(bitwise identity)。
  • 验收政策(2026-08-17 修订 fast-track):不评估数值精度/误差,验收标准为真实端到端 NPU 执行 + 双跑逐位一致 + 负向用例 fail-closed。

6. 真实 NPU 证据与审计留存

  • 真实 NPU 运行证据:两次 run 均由进程级监控记录 Ascend 驱动映射(libascend/libacl maps 计数)、/dev/davinci* 设备 fd、npu-smi 中含推理子进程 PID,且结果 JSON 记录 aicore 实际执行设备 npu:0(actual_model_device / actual_tensor_device / actual_output_device 三处一致)。
  • 负向用例(fail-closed):篡改快照(wrong-model)被拒绝;非法设备 cuda:0 (wrong-device)被拒绝;把 CPU 结果冒充 NPU 结果喂给比较器(cpu-as-npu)被 accuracy/compare_accuracy.py 的 device contract 校验拒绝。
  • 审计目录(audit/)不入仓;仓库内仅保留 accuracy/manifest.json(fixture 身份)与 accuracy/accuracy.json(双跑逐位一致结论)。

7. 证据截图

  • assets/agent_workflow.png:Model Agent 工作流截图
  • assets/npu_device_call.png:NPU 设备调用(npu-smi / 进程证据)截图
  • assets/model_result.png:模型运行结果截图

(截图由后半段 Hosted 流程截取补充;静态校验阶段 assets 缺 png 属预期。)

本仓为 2301_76761127 队伍交付件(与备份账号合并提交)。