unstructured 在M1芯片上的Docker上运行bug/infer_table_structure

olhwl3o2  于 3个月前  发布在  Docker
关注(0)|答案(7)|浏览(78)

Bug描述

当 infer_table_structure=True 时,partition_pdf函数会出现段错误。

复现步骤

请按照以下Docker指令进行操作: https://unstructured-io.github.io/unstructured/installation/docker.html

from unstructured.partition.pdf import partition_pdf
elements = partition_pdf(filename="example-docs/layout-parser-paper-with-Table.pdf", infer_table_structure=True)

预期行为

不会出现段错误。

截图

下载yolox_l0.05.onnx: 100%|██████████████████████████████████████████████████████████████████████| 217M/217M [00:14<00:00, 14.7MB/s]
下载lve/main/config.json: 100%|████| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | || 1.47k/1.47k [00:00<00:00, 2.07MB/s]
下载model.safetensors: 100%|| 115M/115M [00:07<00:00, 14.9MB/s]
下载model.safetensors: 100%|| 46.8M/46.8M [00:03<00:00, 15.1MB/s]
一些模型检查点的权重在初始化TableTransformerForObjectDetection时未被使用:['model.backbone.conv_encoder.model.layer3.0.downsample.1.num_batches_tracked', 'model.backbone.conv_encoder.model.layer2.0.downsample.1.num_batches_tracked', 'model.backbone.conv_encoder.model.layer4.0.downsample.1.num_batches_tracked']

  • 如果从另一个任务或具有其他架构的模型(例如从BertForPreTraining模型初始化BertForSequenceClassification模型)的检查点初始化TableTransformerForObjectDetection,这是预期的。
  • 如果从您期望完全相同的模型(例如从BertForSequenceClassification模型初始化BertForSequenceClassification模型)的检查点初始化TableTransformerForObjectDetection,这不是预期的。

段错误

环境信息

使用Docker指令。

nszi6y05

nszi6y051#

你好,@snova-amitk ,感谢你报告这个bug,我们正在追踪它。在此期间,如果你能提供你的硬件设置的详细信息,那将非常有帮助(它们是什么类型的CPU以及它们具有什么样的指令集)。

gmol1639

gmol16392#

Model Name: MacBook Pro
  Model Identifier: MacBookPro18,3
  Chip: Apple M1 Pro
  arm64 instruction set
ecbunoof

ecbunoof3#

很遗憾,我们目前不支持带有Docker镜像的苹果ARM芯片。不同CPU架构和操作系统的组合导致与CPU的模型二进制文件和指令集不兼容。
这在x86 CPU上不应该是一个问题。
我们正在跟踪这个问题,但没有立即解决的计划。

ig9co6j1

ig9co6j14#

我正在使用相同的方法在Ubuntu的ARM上进行pip安装(没有Docker)。我的硬件是带有A6000 dGPU的NVIDIA IGX Orin Devkit。

yiytaume

yiytaume5#

在Mac Pro上使用M1芯片时,当我将infer_table_structure设置为True时,我遇到了类似的问题。我正在运行一个rest Api Django服务器,如果将infer_table_structure设置为True,它会让我整个本地服务器崩溃,而不会抛出任何错误,所以我不确定到底是什么问题。我猜测这可能是M1芯片和ARM架构之间的不兼容性。我已经按照https://unstructured-io.github.io/unstructured/installation/full_installation.html中的要求安装了所有内容,这次我没有使用docker。

partition_pdf在将infer_table_structure设置为False时可以正常工作。
@badGarnet 为什么文档中没有提到ARM架构的不兼容性?这样就不会浪费那么多时间去怀疑一切了!
@badGarnet 你能否确认我不能在ARM架构上使用infer_table_structure吗?
我可以确认在切换到x86设备后,一切都正常工作了。

5ktev3wc

5ktev3wc6#

在Macbook Air M2(MacOS Ventura 13.6.4)上也发生了同样的情况。所有的东西都是通过pip在一个单独的环境中安装的,当infer_table_structure=True运行一段时间后,python内核会崩溃,否则一切都正常工作。

jdzmm42g

jdzmm42g7#

同时在M2(Sonoma 14.4.1 + anaconda)上确认了相同的崩溃问题,当我设置infer_table_structure=True时,我得到:
anaconda3/envs/pdfs/lib/python3.12/multiprocessing/resource_tracker.py:254: UserWarning: resource_tracker: There appear to be 1 leaked semaphore objects to clean up at shutdown
如果没有设置该参数,软件包可以正常工作。

相关问题