硬件:Ascend NPU(Ascend 910B4) · 推理引擎:torch_npu · 设备:npu:0 精度验收:CPU vs NPU 推理精度差异 < 1%(实测 PASS,cosine=0.9999940991401672)
[
](https://arxiv.org/abs/2504.13181) [
](https://github.com/facebookresearch/perception_models/) Perception Encoder (PE) is a state-of-the-art encoder for image and video
| 属性 | 值 |
|---|---|
| 模型名 | facebook/PE-Core-S16-384 |
| 原始权重 | ModelScope / HuggingFace / AtomGit 镜像 |
| 任务类型 | feature-extraction |
| 输入 | 见 inference.py |
| 输出 | 特征向量 |
| 框架 | PyTorch + torch_npu |
| 官方实现 | https://github.com/facebookresearch/perception_models |
官方实现 / 论文仓库:
| 依赖项 | 版本 | 说明 |
|---|---|---|
| Python | 3.11 | conda 环境 facebook-pe-core-s16-384-npu |
| torch / torch_npu | 2.10.0 / 2.10.0 | 由 setup_env.sh 装,须严格配套 |
| transformers | ==4.51.3 | |
| accelerate | ==1.14.0 | |
| pillow | ==12.3.0 | |
| numpy | ==1.26.4 | |
| huggingface-hub | ==0.36.2 | |
| requests | ==2.34.2 | |
| modelscope | ==1.37.0 | |
| safetensors | ==0.8.0 | |
| multimolecule | ==0.2.1 | |
| pyyaml | >=6.0 | |
| einops | ==0.8.0 # transformers 4.51 modeling 链隐式依赖(torch_npu 存在时触发) | |
| torchvision | ==0.25.0 | |
| timm | ==1.0.27 # vendor pe.py 的 timm.layers.DropPath(PE 视觉塔残差路径) |
一键建环境(从零创建 conda 环境并装依赖):
bash setup_env.sh # conda create -n <env> python=<ver> + torch/torch_npu + requirements.txt⚠️ 重要:若环境已装 torch/torch_npu,不要强制覆盖 torch,否则破坏 torch_npu 算子插件绑定。
国内 pip 源(Tsinghua):https://pypi.tuna.tsinghua.edu.cn/simple
权重不随仓库分发,推理前先用国内下载源拉取到本地缓存(推荐 ModelScope,失败回落 HF 镜像):
# 方式一:ModelScope(国内直连,最快)
pip install modelscope -i https://pypi.tuna.tsinghua.edu.cn/simple
python -c "from modelscope import snapshot_download; snapshot_download('facebook/PE-Core-S16-384', cache_dir='./weights')"
# 方式二:HF 镜像(hf-mirror.com)
export HF_ENDPOINT=https://hf-mirror.com
huggingface-cli download facebook/PE-Core-S16-384 --local-dir ./weights/PE-Core-S16-384inference.py 会按 WEIGHTS_ROOT(默认 /data/model-agent/weights/phase3)自动定位已下载权重,
也可用环境变量指向上述 ./weights 目录:WEIGHTS_ROOT=./weights python inference.py
硬件:单卡 Ascend 910B4(npu:1,物理卡 5)
模型权重预置(评委裸机须先准备):推理从本地 WEIGHTS_ROOT(默认 /data/model-agent/weights/phase3,见 inference.py)加载。请先从 https://ai.gitcode.com/hf_mirrors/facebook/PE-Core-S16-384 下载权重到对应目录,或 export WEIGHTS_ROOT=<你的权重路径>。
评委裸 clone 后本机没有 conda 环境,conda activate 不会创建环境。必须先建环境再推理:
# 第一步:从零创建 conda 环境并装依赖(conda create + torch/torch_npu + requirements.txt)
bash setup_env.sh
# 第二步:激活环境并一键推理(环境自检 + inference + eval + benchmark)
conda activate facebook-pe-core-s16-384-npu
bash run.shimport torch, torch_npu
from transformers import AutoModel, AutoTokenizer
m = AutoModel.from_pretrained("facebook/PE-Core-S16-384", trust_remote_code=True).to("npu:0").eval()
tok = AutoTokenizer.from_pretrained("facebook/PE-Core-S16-384", trust_remote_code=True)
inputs = tok("How to use this model?", return_tensors="pt").to("npu:0")
outputs = m(**inputs)logs/inference.log)输入:示例序列/文本(见 inference.py)
输出:
=== Inference: facebook/PE-Core-S16-384 (PE-Core CLIP 双塔) on Ascend NPU ===
权重: /data/model-agent/weights/phase3/facebook/PE-Core-S16-384/PE-Core-S16-384.pt(313 张量 strict 按名对齐)
结构: 视觉塔 ViT-S/16 @ 384(RoPE-2D+attn pooling, output_dim=512) | 文本塔 ctx=32 vocab=49408
参数量: 87.19M
输入: 随机图 (1, 3, 384, 384)(seed=42) + token ids (1, 32)
输出: 图像特征 (1, 512) | 文本特征 (1, 512)
特征统计: img mean=0.002599 std=0.044161 | logit_scale=100.0000
相似度 logits_per_image: [[22.06679916381836]]
推理耗时: 38.1 ms/次(图+文双塔前向)
总耗时 7.1s
=== 完成 ===logs/accuracy.log)=== CPU-NPU Accuracy: facebook/PE-Core-S16-384 (PE-Core-S16-384, CLIP 双塔) ===
[image_feat] max_abs=0.000206 mean_abs=0.000040 cos=0.999999
[text_feat] max_abs=0.000459 mean_abs=0.000120 cos=0.999994
结果 PASS(阈值 cosine_similarity >= 0.99,取双塔最小)| 指标 | 数值 |
|---|---|
| max_abs_error | N/A |
| relative_error | N/A |
| cosine_similarity | 0.9999940991401672 |
注:本次适配无精度要求,精度数据作为质量证据。详见
logs/accuracy.log。
| 指标 | 数值 |
|---|---|
| avg latency | 38.18 ms |
| p50 | 38.14 ms |
| throughput | 26.19 images/sec(384² 图+ctx32 文双塔) |



截图由真实执行日志(
logs/)忠实渲染为终端风格 PNG,渲染脚本tools/gen_screenshots_pw.py(playwright),可复现,无虚构结果。
#NPU #Ascend #Ascend910 #model-agent-tagged
仓库:https://gitcode.com/v_50/facebook-PE-Core-S16-384-NPU 适配日期:2026-08-12 | 赛道:第二季·模型适配·阶段三