PaddleOCR icon indicating copy to clipboard operation
PaddleOCR copied to clipboard

ARM 设备safetensors_rust.SafetensorError: framework paddle is invalid

Open NightThought opened this issue 2 months ago • 4 comments

🔎 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 pipeline = PaddleOCRVL() File "/usr/local/lib/python3.10/dist-packages/paddleocr/_pipelines/paddleocr_vl.py", line 63, in init super().init(**kwargs) File "/usr/local/lib/python3.10/dist-packages/paddleocr/_pipelines/base.py", line 67, in init self.paddlex_pipeline = self._create_paddlex_pipeline() File "/usr/local/lib/python3.10/dist-packages/paddleocr/_pipelines/base.py", line 105, in _create_paddlex_pipeline return create_pipeline(config=self._merged_paddlex_config, **kwargs) File "/usr/local/lib/python3.10/dist-packages/paddlex/inference/pipelines/init.py", line 167, in create_pipeline pipeline = BasePipeline.get(pipeline_name)( File "/usr/local/lib/python3.10/dist-packages/paddlex/utils/deps.py", line 206, in _wrapper return old_init_func(self, *args, **kwargs) File "/usr/local/lib/python3.10/dist-packages/paddlex/inference/pipelines/_parallel.py", line 103, in init self._pipeline = self._create_internal_pipeline(config, self.device) File "/usr/local/lib/python3.10/dist-packages/paddlex/inference/pipelines/_parallel.py", line 158, in _create_internal_pipeline return self._pipeline_cls( File "/usr/local/lib/python3.10/dist-packages/paddlex/inference/pipelines/paddleocr_vl/pipeline.py", line 127, in init self.vl_rec_model = self.create_model(vl_rec_config) File "/usr/local/lib/python3.10/dist-packages/paddlex/inference/pipelines/base.py", line 106, in create_model model = create_predictor( File "/usr/local/lib/python3.10/dist-packages/paddlex/inference/models/init.py", line 87, in create_predictor return BasePredictor.get(model_name)( File "/usr/local/lib/python3.10/dist-packages/paddlex/inference/models/doc_vlm/predictor.py", line 66, in init self.infer, self.processor = self._build(**kwargs) File "/usr/local/lib/python3.10/dist-packages/paddlex/inference/models/doc_vlm/predictor.py", line 152, in _build model = PaddleOCRVLForConditionalGeneration.from_pretrained( File "/usr/local/lib/python3.10/dist-packages/paddlex/inference/models/common/vlm/transformers/model_utils.py", line 1936, in from_pretrained state_dict = load_state_dict( File "/usr/local/lib/python3.10/dist-packages/paddlex/inference/models/common/vlm/transformers/model_utils.py", line 253, in load_state_dict with safe_open(checkpoint_file, framework="paddle") as f: safetensors_rust.SafetensorError: framework paddle is invalid

🏃‍♂️ 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()

NightThought avatar Oct 18 '25 04:10 NightThought

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

Miao367147258 avatar Oct 18 '25 08:10 Miao367147258

很抱歉,目前 PaddleOCR-VL 产线还不支持arm以及纯cpu,后续我们会考虑在更多的硬件上进行适配,敬请期待!

zhang-prog avatar Oct 18 '25 13:10 zhang-prog

很抱歉,目前 PaddleOCR-VL 产线还不支持arm以及纯cpu,后续我们会考虑在更多的硬件上进行适配,敬请期待!

好的,这个单独safetensors库有可参考的代码分支吗?

NightThought avatar Oct 20 '25 01:10 NightThought

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 看起来就不报告这个错误了

Miao367147258 avatar Nov 03 '25 02:11 Miao367147258