适配仓库(AI.AtomGit):liuhongwei-2026/PickScore_v1 模型来源:
yuvalkirstain/PickScore_v1(HuggingFace / ModelScope 镜像可拉取) 适配分类:计算机视觉(偏好评分 / 文生图质量评估)
PickScore_v1 是 Yuval Kirstain 等人基于 CLIP-H(ViT-H-14)架构,在 Pick-a-Pic 数据集上微调训练的偏好评分模型。它接收一个文本提示词和一张/多张生成图像作为输入,输出偏好评分,可用于:
本仓库将其从默认的 cuda/cpu 运行方式适配到 华为昇腾 NPU(Ascend),通过 torch_npu 将推理计算放到 npu:0,并提供单次推理与 HTTP 服务化推理两种用法。
| 项目 | 说明 |
|---|---|
| 模型来源 | yuvalkirstain/PickScore_v1(HF / ModelScope 镜像) |
| 架构 | CLIP-H(ViT-H-14),文本编码器 + 图像编码器,logit 相似度评分 |
| 参数量 | ~2.4B(CLIP ViT-H-14) |
| 适配方式 | torch_npu 后端,显式指定 device="npu:0" 覆盖默认 CUDA 自动探测 |
| 服务化 | FastAPI + uvicorn,POST /predict 返回 JSON |
| 适配状态 | 成功(精度/性能需在目标 NPU 机器复核) |
| 许可 | 参考原模型许可 |
说明:PickScore_v1 为视觉语言模型,无法使用 vLLM 传统文本服务;本仓库采用 torch_npu + FastAPI 的 NPU 服务化方案,与昇腾推理生态一致。
| 组件 | 版本/说明 |
|---|---|
| 操作系统 | Linux(昇腾 910B4 及以上) |
| CANN | 5.x(与 torch_npu 匹配) |
| torch | 2.x |
| torch_npu | 与 torch 同版本 |
| transformers | 4.36+ |
| NPU | Ascend 910B4 |
PickScore_v1/
├── inference.py # 推理脚本(单次推理 + 服务化推理)
├── README.md # 部署说明文档
├── requirements.txt # 环境依赖清单
└── assets/ # 截图素材
├── agent_workflow.png
├── npu_device_call.png
└── model_result.png# 1) 创建虚拟环境(建议 Python 3.10+)
python3 -m venv .venv && source .venv/bin/activate
# 2) 安装依赖(先按 CANN 环境安装匹配的 torch/torch_npu,见 requirements.txt 注释)
pip install -r requirements.txt若依赖从海外拉取失败,可先通过 ModelScope 镜像下载权重到本地,再通过本地路径加载(见下文"本地权重缓存")。
git clone https://ai.gitcode.com/hf_mirrors/yuvalkirstain/PickScore_v1.git /path/to/local/PickScore_v1pip install huggingface-hub
huggingface-cli download yuvalkirstain/PickScore_v1 --local-dir /path/to/local/PickScore_v1python inference.py \
--image image1.jpg [image2.jpg ...] \
--prompt "a beautiful cat sitting on a sofa" \
--device npu:0预期输出:每张图片的评分分数(score)和选择概率(prob),最高分标记为"最佳"。
日志首行打印:
[PickScore@NPU] device = npu:0 (Ascend 910B4 ...)
[PickScore@NPU] 模型加载完成,耗时 xx.xxspython inference.py --image img.jpg --prompt "a cat" --device auto--device auto 会自动识别为 npu → cuda → cpu。
将权重下载到本地目录后,用本地路径加载:
python inference.py \
--model /path/to/local/PickScore_v1 \
--image img.jpg \
--prompt "a cat" \
--device npu:0python inference.py --serve --host 0.0.0.0 --port 8000 --device npu:0方式一:本地图片路径
curl -X POST http://127.0.0.1:8000/predict \
-H "Content-Type: application/json" \
-d '{
"prompt": "a beautiful cat",
"image_paths": ["/path/to/cat1.jpg", "/path/to/cat2.jpg"]
}'方式二:base64 编码图片
curl -X POST http://127.0.0.1:8000/predict \
-H "Content-Type: application/json" \
-d '{
"prompt": "a beautiful cat",
"images": ["<base64_encoded_image_data>"]
}'方式三:图片 URL
curl -X POST http://127.0.0.1:8000/predict \
-H "Content-Type: application/json" \
-d '{
"prompt": "a beautiful cat",
"image_urls": ["https://example.com/cat.jpg"]
}'{
"prompt": "a beautiful cat",
"num_images": 2,
"scores": [0.8532, 0.2176],
"probs": [0.6547, 0.3453],
"best_idx": 0,
"elapsed_seconds": 0.4231
}curl http://127.0.0.1:8000/health
# {"status": "ok", "device": "npu:0 (Ascend910_9362)"}HF_HOME 环境变量指定缓存目录以便复用。__RESULT_JSON__ 标记的机器可读 JSON,便于做精度/性能采样与对比。yuvalkirstain/PickScore_v1贡献者:liuhongwei-2026 赛道:模型适配赛道(计算机视觉)
b6a68ee (feat: PickScore_v1 昇腾 NPU 部署适配)