MingTok-Vision 是由 inclusionAI 开发的统一视觉 Tokenizer,实现了无向量量化的高保真图像重建。该模型采用连续潜空间表示,支持统一的视觉理解和生成。
| 属性 | 值 |
|---|---|
| 模型类型 | MingTok (视觉Tokenizer) |
| 参数量 | 0.7B |
| 输入尺寸 | 512x512 |
| 任务类型 | 图像重建 |
| 精度类型 | BF16 (NPU) / FP32 (CPU) |
/data/ysws/agentsp/5-14/MingTok-Vision-ascend/
├── inference.py # 推理测试脚本
├── log.txt # 测试日志
├── README.md # 本文档
├── precision_result.json # 精度测试结果
├── test_image.png # 测试输入图像(真实样本)
├── test_sample.png # 原始测试样本
├── reconstructed.png # 重建输出图像
└── real_image_reconstruction.png # 真实图像重建结果确保 CANN 环境变量已设置:
source /usr/local/Ascend/ascend-toolkit/set_env.shpython3 -c "import torch; print(f'NPU available: {torch.npu.is_available()}')"运行推理脚本进行图像重建:
cd /data/ysws/agentsp/5-14/MingTok-Vision-ascend/
# 使用默认测试图像 (随机噪声)
python3 inference.py
# 使用指定图像文件
python3 inference.py --image_path /path/to/your/image.jpg
# 指定设备
python3 inference.py --device npu:0运行精度对比测试,验证 NPU 计算结果与 CPU 一致性:
cd /data/ysws/agentsp/5-14/MingTok-Vision-ascend/
# 运行完整精度测试
python3 inference.py --precision_test| 参数 | 说明 | 默认值 |
|---|---|---|
--image_path | 输入图像文件路径 | 自动生成随机测试图像 |
--device | 运行设备 | npu:0 |
--precision_test | 运行精度测试模式 | False |
--output_dir | 输出目录 | /data/ysws/agentsp/5-14/MingTok-Vision-ascend |
| 指标 | 实测值 | 阈值 | 状态 |
|---|---|---|---|
| Cosine similarity | 1.000036 | > 0.99 | PASS |
| 操作 | 耗时 |
|---|---|
| 模型加载 | ~5s |
| NPU 推理时间 (512x512) | 5.71s |
| CPU 推理时间 (512x512) | 47.17s |
| 加速比 | ~8.3x |
import sys
sys.path.insert(0, '/data/ysws/agentsp/5-14/MingTok-Vision')
import torch
from PIL import Image
from mingtok.modeling_mingtok import MingTok, MingTokConfig
from mingtok.utils import CenterCropProcessor
from omegaconf import OmegaConf
import json
import torchvision.transforms as T
# 加载模型
config_path = '/data/ysws/agentsp/5-14/MingTok-Vision/config.json'
with open(config_path, 'r') as f:
config_dict = json.load(f)
cfg = OmegaConf.create(config_dict)
mingtok_config = MingTokConfig.from_omegaconf(cfg)
model = MingTok(mingtok_config).to("npu:0").eval()
from safetensors.torch import load_file
state_dict = load_file('/data/ysws/agentsp/5-14/MingTok-Vision/model.safetensors')
model.load_state_dict(state_dict, strict=False)
# 加载并预处理图像
image = Image.open("your_image.jpg").convert("RGB")
processor = CenterCropProcessor(image_size=512, mean=[0.5, 0.5, 0.5], std=[0.5, 0.5, 0.5])
img_tensor = processor(image).unsqueeze(0).to("npu:0")
# 推理
with torch.no_grad():
output = model.forward_enc_dec(img_tensor)
# 后处理并保存
output_mean = torch.tensor([0.5, 0.5, 0.5]).view(1, -1, 1, 1).to("npu:0")
output_std = torch.tensor([0.5, 0.5, 0.5]).view(1, -1, 1, 1).to("npu:0")
output_image = (output * output_std + output_mean)[0].cpu()
output_image = output_image.clamp(0, 1)
output_image = T.ToPILImage()(output_image)
output_image.save("reconstructed.png")| 组件 | 说明 |
|---|---|
| low_level_encoder | 图像 → 32维潜码 |
| semantic_decoder | 潜码 → 语义特征 |
| pixel_decoder | 语义特征 → 重建图像 |
A: 如需更高精度,可使用 --precision_mode=force_fp32 进行 ATC 转换(会降低性能)。但对于大多数视觉任务,BF16 精度已足够。
A: 确保使用 NPU 设备。首次运行需要加载模型(约 5s),后续推理约 5.7s。8x 加速比证明 NPU 正常工作。
本项目遵循 Apache-2.0 许可证。