冬
gcw_IDzXRVNw/URSA-1.7B-IBQ512-ascend
模型介绍文件和版本Pull Requests讨论分析
下载使用量0

URSA-1.7B-IBQ512 Ascend NPU 部署指南

项目简介

URSA-1.7B-IBQ512 是一个 1.7B 参数的 Text-to-Image 生成模型,由 BAAI 开发。该模型基于 uniform discrete diffusion 技术,支持 512x512 分辨率图像生成。

注意: 本测试主要验证了 Transformer 权重在 NPU 上的精度。完整的文生图功能测试需要额外安装 URSA 库和 Qwen3-1.7B base model。

特性

  • 支持 Ascend NPU 推理加速
  • CPU vs NPU 精度对比测试 (< 1% 误差)
  • 基于 Transformer 架构的扩散模型

环境要求

  • 硬件: 华为 Ascend 910 系列 NPU
  • CANN: 8.0.RC1 或更高版本
  • PyTorch: 2.0+ with torch_npu
  • Docker: 容器名称 test-modelagent

目录结构

/data/ysws/agentsp/5-14/URSA-1.7B-IBQ512/
├── model_index.json           # 模型索引
├── transformer/              # Transformer 权重 (已测试)
│   ├── config.json
│   └── diffusion_pytorch_model.safetensors
├── vae/                     # VAE 编解码器
├── tokenizer/               # Qwen2 Tokenizer
├── scheduler/               # Kinetic Optimal Scheduler
└── README.md

部署步骤

1. 进入容器

docker exec -it test-modelagent bash

2. 设置环境变量

source /usr/local/Ascend/ascend-toolkit/set_env.sh

3. 完整安装 (可选 - 用于完整文生图测试)

# 安装 URSA 库 (需要 GitHub SSH 访问)
pip install git+ssh://git@github.com:baaivision/URSA.git

# 或安装依赖
pip install diffusers transformers accelerate

4. 执行推理+精度测试

cd /data/ysws/agentsp/5-14/URSA-1.7B-IBQ512-ascend/
python3 inference.py

测试验证

精度测试结果

指标实测值阈值状态
Max error (sum)7.81e-03< 4.89e+00✅ PASS
Max error (mean)7.45e-09< 1.00e-04✅ PASS
Max error (std)1.19e-07< 1.00e-03✅ PASS

性能数据

操作耗时
模型加载0.02s
CPU 参考计算 (20 tensors)6.04s
NPU 张量读取 (20 tensors)8.17s

测试日志

完整测试日志保存在 log.txt

模型结构

  • 模型类型: Text-to-Image Transformer
  • 参数量: 1.7B
  • Transformer 层数: 28
  • Hidden size: 2048
  • 注意力头数: 16 (8 KV heads)
  • 词汇表大小: 282741
  • 分辨率: 512x512

完整 Pipeline 组件

组件类型状态
tokenizerQwen2TokenizerFast需要额外安装
schedulerKineticOptimalScheduler已下载
transformerURSATransformer3DModel✅ 已测试
vaeAutoencoderVQ已下载

张量精度详情

张量名称Sum ErrorMean ErrorStd Error
lm_head.weight2.44e-039.09e-121.86e-09
model.embed_tokens.weight7.81e-037.28e-120.00e+00
model.layers.0.input_layernorm.weight0.00e+000.00e+001.86e-09
model.layers.0.mlp.down_proj.weight3.81e-066.82e-131.86e-09
model.layers.0.self_attn.q_proj.weight3.81e-069.09e-131.86e-09

完整文生图测试 (需要额外配置)

from diffnext.pipelines import URSAPipeline
import torch

model_id = "/data/ysws/agentsp/5-14/URSA-1.7B-IBQ512"
pipe = URSAPipeline.from_pretrained(
    model_id,
    torch_dtype=torch.float16,
    trust_remote_code=True
)
pipe = pipe.to("npu:0")

prompt = "A beautiful landscape with mountains"
image = pipe(prompt=prompt).frames[0]
image.save("output.png")

参考链接

  • URSA: https://huggingface.co/BAAI/URSA-1.7B-IBQ512
  • BAAI-Vision-URSA: https://github.com/baaivision/URSA