buildborderless/CommunityForensics-DeepfakeDet-ViT(ViT 图片分类,deepfake 检测:
ViTForImageClassification,hidden 384 / 12 层 / 6 头 / patch 16 / image size 384,
单 logit 分类头 num_labels=1,MIT)ac6ee457bea904a373065754107451793b56db00model.safetensors,87270764 bytes,SHA-256
275ba982236ddd6afddf7131f8133e89f537574b964cf8fa5825b4956d741692npu:0transformers==5.9.0 + pillow/numpy/safetensors),
未替换 CANN/PyTorch/torch_npu 平台栈。transformers==5.9.0(Apache-2.0),经其文档化公开 API
ViTForImageClassification.from_pretrained(..., local_files_only=True) 加载;快照本身只含
权重与配置。strict 加载,任何未被 checkpoint 覆盖或多余的参数张量都会直接报错中止。torch.no_grad;config dropout 全为 0.0;10 条输入为冻结确定性合成
fixture;推理路径不消耗任何 RNG。外部权重需离线放置于 ./model/(或 --model_path 指定),内容取自固定 revision 快照的
config.json、preprocessor_config.json、model.safetensors 三个文件。inference.py
启动时逐字节校验这三个文件的 SHA-256(及权重大小),不符即拒绝运行,不存在网络回退
(HF_HUB_OFFLINE=1、TRANSFORMERS_OFFLINE=1)。
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 回退。CLIPImageProcessor(resize shortest
edge 440 → center crop 384 → CLIP mean/std 归一化,bicubic)→ pixel_values
[1,3,384,384] → ViTForImageClassification → logits [1,1](deepfake 分数 logit)。torch.set_num_threads(8)(192 核主机防线程过订阅,纯性能设置)。accuracy/manifest.json。logits(1 值/样本,单 deepfake logit),总计 10 值,全部要求有限值;
两次独立 NPU run 的全部 10 个 logit 值逐位一致(bitwise identity)。/dev/davinci* 设备 fd、npu-smi 中含推理子进程 PID,且结果 JSON 记录
aicore 实际执行设备 npu:0(actual_model_device / actual_tensor_device /
actual_output_device 三处一致)。cuda:0
(wrong-device)被拒绝;把 CPU 结果冒充 NPU 结果喂给比较器(cpu-as-npu)被
accuracy/compare_accuracy.py 的 device contract 校验拒绝。accuracy/manifest.json(fixture 身份)与
accuracy/accuracy.json(双跑逐位一致结论)。assets/agent_workflow.png:Model Agent 工作流截图assets/npu_device_call.png:NPU 设备调用(npu-smi / 进程证据)截图assets/model_result.png:模型运行结果截图(截图由后半段 Hosted 流程截取补充;静态校验阶段 assets 缺 png 属预期。)
本仓为 2301_76761127 队伍交付件(与备份账号合并提交)。