FastDeploy2.0:Error reading file: SafeTensorError::MetadataIncompleteBuffer
一、现象
GPU:4张英伟达A6000
python3.10
大模型:DeepSeek-R1-Distill-Qwen-32B(aisudio上下载得)
执行如下命令:
python -m fastdeploy.entrypoints.openai.api_server --model /workspace/models/DeepSeek-R1-Distill-Qwen-32B_baidu --port 8180 --metrics-port 8181 --engine-worker-queue-port 8182 --max-model-len 8192 --max-num-seqs 1 --tensor-parallel-size 4 --reasoning-parser qwen3
报如下错误:
Traceback (most recent call last):
File "/usr/local/lib/python3.10/dist-packages/fastdeploy/engine/../worker/worker_process.py", line 730, in
run_worker_proc()
File "/usr/local/lib/python3.10/dist-packages/fastdeploy/engine/../worker/worker_process.py", line 711, in run_worker_proc
worker_proc.load_model()
File "/usr/local/lib/python3.10/dist-packages/fastdeploy/engine/../worker/worker_process.py", line 409, in load_model
self.worker.load_model()
File "/usr/local/lib/python3.10/dist-packages/fastdeploy/worker/gpu_worker.py", line 160, in load_model
self.model_runner.load_model()
File "/usr/local/lib/python3.10/dist-packages/fastdeploy/worker/gpu_model_runner.py", line 725, in load_model
self.model = get_model_from_loader(fd_config=self.fd_config)
File "/usr/local/lib/python3.10/dist-packages/fastdeploy/model_executor/model_loader.py", line 54, in get_model_from_loader
model = model_loader.load_model(fd_config)
File "/usr/local/lib/python3.10/dist-packages/fastdeploy/model_executor/model_loader.py", line 115, in load_model
state_dict = load_composite_checkpoint(
File "/usr/local/lib/python3.10/dist-packages/fastdeploy/model_executor/load_weight_utils.py", line 311, in load_composite_checkpoint
state_dict = load_tp_checkpoint(model_path,
File "/usr/local/lib/python3.10/dist-packages/paddleformers/transformers/model_utils.py", line 3260, in load_tp_checkpoint
return load_sharded_checkpoint_as_one(folder, return_numpy=return_numpy)
File "/usr/local/lib/python3.10/dist-packages/paddleformers/transformers/model_utils.py", line 3237, in load_sharded_checkpoint_as_one
state_dict = loader(os.path.join(folder, shard_file))
File "/usr/local/lib/python3.10/dist-packages/paddleformers/utils/safetensors.py", line 317, in fast_load_file
with fast_safe_open(filename, framework="np") as f:
File "/usr/local/lib/python3.10/dist-packages/paddleformers/utils/safetensors.py", line 289, in init
self.base, self.tensors_decs, self.metadata = read_metadata(self.file)
File "/usr/local/lib/python3.10/dist-packages/paddleformers/utils/safetensors.py", line 111, in read_metadata
raise ValueError("SafeTensorError::MetadataIncompleteBuffer")
ValueError: SafeTensorError::MetadataIncompleteBuffer
二、原因
模型文件下载不全。
你说模型文件下载不全,可翻来覆去瞅了半天,愣是没看出哪个文件“缺胳膊少腿”——这感觉,就像在满屋子双胞胎里找谁多长了一根头发。模型文件一多,数着数着就眼冒金星,脑瓜子嗡嗡的,真不想重头再下一遍,光是想想,头发都快掉光了!别急,兄弟,咱打工人也有智慧闪光的时刻——难道非得靠“人肉点数大法”和“玄学肉眼扫描术”?当然不!其实早有妙招:校验和(checksum)才是你的数字侦探,轻轻一算,哪个文件“发育不良”立马现形。省时省力,还能顺带拯救一下岌岌可危的发际线,这波不亏!
检验代码如下:在检验model-00003-of-000008.safetensors时报错,再认证核对,发现是8.13G,实际应该是8.17G。
from paddleformers.utils.safetensors import fast_safe_opentry:with fast_safe_open("/workspace/models/DeepSeek-R1-Distill-Qwen-32B_baidu/model-00001-of-000008.safetensors", framework="np") as f:print("00001:", list(f.keys()))with fast_safe_open("/workspace/models/DeepSeek-R1-Distill-Qwen-32B_baidu/model-00002-of-000008.safetensors", framework="np") as f:print("00002:", list(f.keys()))with fast_safe_open("/workspace/models/DeepSeek-R1-Distill-Qwen-32B_baidu/model-00003-of-000008.safetensors", framework="np") as f:print("00003:", list(f.keys()))with fast_safe_open("/workspace/models/DeepSeek-R1-Distill-Qwen-32B_baidu/model-00004-of-000008.safetensors", framework="np") as f:print("00004:", list(f.keys()))with fast_safe_open("/workspace/models/DeepSeek-R1-Distill-Qwen-32B_baidu/model-00005-of-000008.safetensors", framework="np") as f:print("00005:", list(f.keys()))with fast_safe_open("/workspace/models/DeepSeek-R1-Distill-Qwen-32B_baidu/model-00006-of-000008.safetensors", framework="np") as f:print("00006:", list(f.keys()))with fast_safe_open("/workspace/models/DeepSeek-R1-Distill-Qwen-32B_baidu/model-00007-of-000008.safetensors", framework="np") as f:print("00007:", list(f.keys()))with fast_safe_open("/workspace/models/DeepSeek-R1-Distill-Qwen-32B_baidu/model-00008-of-000008.safetensors", framework="np") as f:print("00008:", list(f.keys()))
except Exception as e:print("Error reading file:", e)
三、解决方案
单独下载第三个模型文件就行。
aistudio download model-00003-of-000008.safetensors --model PaddleNLP/DeepSeek-R1-Distill-Qwen-32B --local_dir /mnt/data/models/DeepSeek-R1-Distill-Qwen-32B_baidu/