ARM 设备safetensors_rust.SafetensorError: framework paddle is invalid
🔎 Search before asking
- [x] I have searched the PaddleOCR Docs and found no similar bug report.
- [x] I have searched the PaddleOCR Issues and found no similar bug report.
- [x] I have searched the PaddleOCR Discussions and found no similar bug report.
🐛 Bug (问题描述)
我的设备是arm架构,根据最新文档进行安装,在这一步执行的时候,python -m pip install https://paddle-whl.bj.bcebos.com/nightly/cu126/safetensors/safetensors-0.6.2.dev0-cp38-abi3-linux_x86_64.whl。无法获取arm设备的whl包,是否可以提供下编译方法
I1018 12:15:02.692400 16207 init.cc:238] ENV [CUSTOM_DEVICE_ROOT]=/usr/local/lib/python3.10/dist-packages/paddle_custom_device
I1018 12:15:02.692451 16207 init.cc:146] Try loading custom device libs from: [/usr/local/lib/python3.10/dist-packages/paddle_custom_device]
I1018 12:15:03.498301 16207 custom_device_load.cc:51] Succeed in loading custom runtime in lib: /usr/local/lib/python3.10/dist-packages/paddle_custom_device/libpaddle-custom-npu.so
I1018 12:15:03.498363 16207 custom_device_load.cc:58] Skipped lib [/usr/local/lib/python3.10/dist-packages/paddle_custom_device/libpaddle-custom-npu.so]: no custom engine Plugin symbol in this lib.
I1018 12:15:03.502094 16207 custom_kernel.cc:68] Succeed in loading 359 custom kernel(s) from loaded lib(s), will be used like native ones.
I1018 12:15:03.502295 16207 init.cc:158] Finished in LoadCustomDevice with libs_path: [/usr/local/lib/python3.10/dist-packages/paddle_custom_device]
I1018 12:15:03.502342 16207 init.cc:244] CustomDevice: npu, visible devices count: 8
Creating model: ('PP-DocLayoutV2', None)
Model files already exist. Using cached files. To redownload, please delete the directory manually: /root/.paddlex/official_models/PP-DocLayoutV2.
Creating model: ('PaddleOCR-VL-0.9B', None)
Model files already exist. Using cached files. To redownload, please delete the directory manually: /root/.paddlex/official_models/PaddleOCR-VL.
Loading configuration file /root/.paddlex/official_models/PaddleOCR-VL/PaddleOCR-VL-0.9B/config.json
Loading weights file /root/.paddlex/official_models/PaddleOCR-VL/PaddleOCR-VL-0.9B/model.safetensors
use GQA - num_heads: 16- num_key_value_heads: 2
use GQA - num_heads: 16- num_key_value_heads: 2
use GQA - num_heads: 16- num_key_value_heads: 2
use GQA - num_heads: 16- num_key_value_heads: 2
use GQA - num_heads: 16- num_key_value_heads: 2
use GQA - num_heads: 16- num_key_value_heads: 2
use GQA - num_heads: 16- num_key_value_heads: 2
use GQA - num_heads: 16- num_key_value_heads: 2
use GQA - num_heads: 16- num_key_value_heads: 2
use GQA - num_heads: 16- num_key_value_heads: 2
use GQA - num_heads: 16- num_key_value_heads: 2
use GQA - num_heads: 16- num_key_value_heads: 2
use GQA - num_heads: 16- num_key_value_heads: 2
use GQA - num_heads: 16- num_key_value_heads: 2
use GQA - num_heads: 16- num_key_value_heads: 2
use GQA - num_heads: 16- num_key_value_heads: 2
use GQA - num_heads: 16- num_key_value_heads: 2
use GQA - num_heads: 16- num_key_value_heads: 2
/usr/local/lib/python3.10/dist-packages/paddle/utils/decorator_utils.py:420: Warning:
Non compatible API. Please refer to https://www.paddlepaddle.org.cn/documentation/docs/en/develop/guides/model_convert/convert_from_pytorch/api_difference/torch/torch.split.html first.
warnings.warn(
Traceback (most recent call last):
File "/data1/syz/ppocr/demo.py", line 13, in
🏃♂️ Environment (运行环境)
os:Ubuntu 20.04.6 LTS Python 3.10.16 paddle-custom-npu 3.2.0 paddle2onnx 1.3.1 paddleocr 3.3.0 paddlepaddle 3.2.0 paddlex 3.3.3
🌰 Minimal Reproducible Example (最小可复现问题的Demo)
python from paddleocr import PaddleOCRVL
pipeline = PaddleOCRVL()
ubuntu 24.04+python 3.12+cpu(没有gpu)下运行也会出现该问题,使用的版本: paddleocr[ocr]==3.3.0 paddlepaddle==3.2.0 paddlex[ocr]==3.3.3
测试代码: from paddleocr import PaddleOCRVL import os import sys
current_directory = os.path.dirname( os.path.realpath( sys.argv[ 0 ] ) )
img_file_path = current_directory + os.sep + "test-001.png"
pipeline = PaddleOCRVL() result = pipeline.predict( img_file_path )
运行结果:
File "/home/MyPassport/test-paddleocr5.py", line 34, in
很抱歉,目前 PaddleOCR-VL 产线还不支持arm以及纯cpu,后续我们会考虑在更多的硬件上进行适配,敬请期待!
很抱歉,目前 PaddleOCR-VL 产线还不支持arm以及纯cpu,后续我们会考虑在更多的硬件上进行适配,敬请期待!
好的,这个单独safetensors库有可参考的代码分支吗?
ubuntu 24.04+python 3.12+cpu(没有gpu)下运行也会出现该问题,使用的版本: paddleocr[ocr]==3.3.0 paddlepaddle==3.2.0 paddlex[ocr]==3.3.3
测试代码: from paddleocr import PaddleOCRVL import os import sys
current_directory = os.path.dirname( os.path.realpath( sys.argv[ 0 ] ) )
img_file_path = current_directory + os.sep + "test-001.png"
pipeline = PaddleOCRVL() result = pipeline.predict( img_file_path )
运行结果: File "/home/MyPassport/test-paddleocr5.py", line 34, in pipeline = PaddleOCRVL() ^^^^^^^^^^^^^ File "/home/MyPassport/pyenv-2.6.7/versions/env-for-paddleocr3/lib/python3.12/site-packages/paddleocr/_pipelines/paddleocr_vl.py", line 63, in init super().init(**kwargs) File "/home/MyPassport/pyenv-2.6.7/versions/env-for-paddleocr3/lib/python3.12/site-packages/paddleocr/_pipelines/base.py", line 67, in init self.paddlex_pipeline = self._create_paddlex_pipeline() ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/MyPassport/pyenv-2.6.7/versions/env-for-paddleocr3/lib/python3.12/site-packages/paddleocr/_pipelines/base.py", line 105, in _create_paddlex_pipeline return create_pipeline(config=self._merged_paddlex_config, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/MyPassport/pyenv-2.6.7/versions/env-for-paddleocr3/lib/python3.12/site-packages/paddlex/inference/pipelines/init.py", line 167, in create_pipeline pipeline = BasePipeline.get(pipeline_name)( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/MyPassport/pyenv-2.6.7/versions/env-for-paddleocr3/lib/python3.12/site-packages/paddlex/utils/deps.py", line 206, in _wrapper return old_init_func(self, *args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/MyPassport/pyenv-2.6.7/versions/env-for-paddleocr3/lib/python3.12/site-packages/paddlex/inference/pipelines/_parallel.py", line 103, in init self._pipeline = self._create_internal_pipeline(config, self.device) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/MyPassport/pyenv-2.6.7/versions/env-for-paddleocr3/lib/python3.12/site-packages/paddlex/inference/pipelines/_parallel.py", line 158, in _create_internal_pipeline return self._pipeline_cls( ^^^^^^^^^^^^^^^^^^^ File "/home/MyPassport/pyenv-2.6.7/versions/env-for-paddleocr3/lib/python3.12/site-packages/paddlex/inference/pipelines/paddleocr_vl/pipeline.py", line 127, in init self.vl_rec_model = self.create_model(vl_rec_config) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/MyPassport/pyenv-2.6.7/versions/env-for-paddleocr3/lib/python3.12/site-packages/paddlex/inference/pipelines/base.py", line 106, in create_model model = create_predictor( ^^^^^^^^^^^^^^^^^ File "/home/MyPassport/pyenv-2.6.7/versions/env-for-paddleocr3/lib/python3.12/site-packages/paddlex/inference/models/init.py", line 87, in create_predictor return BasePredictor.get(model_name)( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/MyPassport/pyenv-2.6.7/versions/env-for-paddleocr3/lib/python3.12/site-packages/paddlex/inference/models/doc_vlm/predictor.py", line 66, in init self.infer, self.processor = self._build(**kwargs) ^^^^^^^^^^^^^^^^^^^^^ File "/home/MyPassport/pyenv-2.6.7/versions/env-for-paddleocr3/lib/python3.12/site-packages/paddlex/inference/models/doc_vlm/predictor.py", line 152, in _build model = PaddleOCRVLForConditionalGeneration.from_pretrained( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/MyPassport/pyenv-2.6.7/versions/env-for-paddleocr3/lib/python3.12/site-packages/paddlex/inference/models/common/vlm/transformers/model_utils.py", line 1937, in from_pretrained state_dict = load_state_dict( ^^^^^^^^^^^^^^^^ File "/home/MyPassport/pyenv-2.6.7/versions/env-for-paddleocr3/lib/python3.12/site-packages/paddlex/inference/models/common/vlm/transformers/model_utils.py", line 254, in load_state_dict with safe_open(checkpoint_file, framework="paddle") as f: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ safetensors_rust.SafetensorError: framework paddle is invalid
使用: safetensors==0.7.0rc0 或者: safetensors-0.6.2.dev0-cp38-abi3-linux_x86_64.whl 看起来就不报告这个错误了