why echo "couldn't find them in the cached files." when run local starvector model

#6
by yuanshengw742 - opened

import os
import sys
from PIL import Image
from starvector.model.starvector_arch import StarVectorForCausalLM
from starvector.data.util import process_and_rasterize_svg

#from transformers import set_offline_mode
#set_offline_mode(True)
import os
os.environ["TRANSFORMERS_OFFLINE"] = "1" # 启用离线模式
os.environ["HF_DATASETS_OFFLINE"] = "1" # 如果用到datasets库也设置离线

import os
os.environ['TRITON_CACHE_DIR'] = os.path.expanduser('S:\cache')

===== 核心修复:彻底禁用DeepSpeed的Triton自动调优 =====

1. 设置环境变量禁用自动调优

os.environ["DEEPSPEED_DISABLE_TRITON_AUTOTUNE"] = "1"

2. 动态修改DeepSpeed的is_nfs_path函数(防止残留调用)

if sys.platform == "win32":
import deepspeed.ops.transformer.inference.triton.matmul_ext as matmul_ext
def _dummy_nfs_check(path):
return False
matmul_ext.is_nfs_path = _dummy_nfs_check

3. 禁用Triton相关模块加载(可选)

if "deepspeed.ops.transformer.inference.triton" in sys.modules:
del sys.modules["deepspeed.ops.transformer.inference.triton"]

========================================================

本地模型路径

#model_name = "s:\forstarvector\starvector"
model_name = "starvector-8b-im2svg"
#model_name = "./for_starvector"
#model_name = "ServiceNow/starvector-8b-im2svg"
#model_name = "starvector-8b-im2svg"

加载模型(若仍报错,可尝试添加device_map='auto')

starvector = StarVectorForCausalLM.from_pretrained(
model_name,
device_map="auto", # 自动分配设备,避免CUDA问题
local_files_only=True
)
starvector.eval()

print(starvector.config) # 打印配置信息
print(starvector.image_encoder) # 确认图像编码器加载

处理图片(注意:可能需要调整设备分配)

image_pil = Image.open('./assets/examples/sample-0.png')
image = starvector.process_images([image_pil])[0]
if torch.cuda.is_available():
image = image.cuda()
batch = {"image": image}

生成SVG

raw_svg = starvector.generate_im2svg(batch, max_length=1000)[0]
svg, raster_image = process_and_rasterize_svg(raw_svg)

保存结果

with open("generated_svg.svg", "w", encoding="utf-8") as f:
f.write(svg)

run_local_starvector_error.png
starvector_in_cache.png

yuanshengw742 changed discussion status to closed
yuanshengw742 changed discussion status to open

Sign up or log in to comment