【部署】ubuntu部署olmOCR

server/2025/3/16 15:26:57/

目录

  • 一、安装依赖
  • 二、安装conda新环境和sglang
  • 三、PDF解析
    • 1. 运行
    • 2. 原始 PDF 并排查看结果
    • 3. 更换模型
  • 四、可能出现的问题
    • 1.note: This error originates from a subprocess, and is likely not a problem with pip.
    • 2.转换单个PDF命令运行时
    • 3.ImportError: libnccl.so.2: cannot open shared object file: No such file or directory
    • 4.已经执行了正常命令,但是需要下载sglang

项目地址:
https://github.com/allenai/olmocr

一、安装依赖


sudo apt-get update
sudo apt-get install poppler-utils ttf-mscorefonts-installer msttcorefonts fonts-crosextra-caladea fonts-crosextra-carlito gsfonts lcdf-typetools

二、安装conda新环境和sglang


conda create -n olmocr python=3.11
conda activate olmocrgit clone https://github.com/allenai/olmocr.git
cd olmocr
# If running on CPU, run this:
pip install -e .
# 如果没有权限,可以安装到用户目录下
pip install --user -e .# If running on GPU, run this instead:
pip install -e .[gpu] --find-links https://flashinfer.ai/whl/cu124/torch2.4/flashinfer/

GPU下使用还需要安装sglang

pip install --upgrade pip
pip install uv
uv pip install "sglang[all]>=0.4.4" --find-links https://flashinfer.ai/whl/cu124/torch2.5/flashinfer-python

如果网络问题装不上也可以手动安装wheel,下载好wheel文件之后,sftp传到服务器上,然后直接下载

# 在这里下载
https://github.com/flashinfer-ai/flashinfer/releases/download/v0.2.3/flashinfer_python-0.2.3+cu124torch2.5-cp38-abi3-linux_x86_64.whl

特别慢这边
在这里插入图片描述
安装好之后再安装sglang

uv pip install "sglang[all]>=0.4.4"

在这里插入图片描述
启动运行命令之后会安装模型权重文件,十几个G,还是很大的。

在这里插入图片描述

三、PDF解析

1. 运行

python -m olmocr.pipeline ./localworkspace --pdfs tests/gnarly_pdfs/horribleocr.pdf

测试了两个pdf文件
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
输出的是.jsonl,所以看起来并没有换行,看的不清楚
在这里插入图片描述

转换多个PDF的命令

python -m olmocr.pipeline ./localworkspace --pdfs tests/gnarly_pdfs/*.pdf

2. 原始 PDF 并排查看结果

python -m olmocr.viewer.dolmaviewer localworkspace/results/output_*.jsonl

在这里插入图片描述

在这里插入图片描述

3. 更换模型

命令中可以增加模型的更换

  --model MODEL         List of paths where you can find the model to convert this pdf. You can specify several different paths here, and the script will try to use theone which is fastest to access

四、可能出现的问题


1.note: This error originates from a subprocess, and is likely not a problem with pip.

从报错信息来看,问题出在 pip install -e . 时无法创建 olmocr.egg-info 目录,原因是 权限不足(Permission denied)。以下是解决方法:

  1. 检查当前用户权限
    确保你对项目目录(/data/huyuqiang/llf/ocr/olmocr)有写权限。可以通过以下命令检查:
ls -ld /data/huyuqiang/llf/ocr/olmocr

如果权限不足,可以尝试修改目录权限:

sudo chown -R $USER:$USER /data/huyuqiang/llf/ocr/olmocr
sudo chmod -R u+rw /data/huyuqiang/llf/ocr/olmocr
  1. 使用虚拟环境
    如果你没有使用虚拟环境,建议创建一个虚拟环境并激活它,这样可以避免权限问题:
python -m venv venv  # 创建虚拟环境
source venv/bin/activate  # 激活虚拟环境
pip install -e .  # 在虚拟环境中安装
  1. 指定 --user 选项
    如果你没有管理员权限,可以尝试使用 --user 选项安装到用户目录:
pip install --user -e .

2.转换单个PDF命令运行时

File “/data/huyuqiang/llf/ocr/olmocr/olmocr/pipeline.py”, line 26, in
import torch
File “/data/huyuqiang/anaconda3/envs/olmocr/lib/python3.11/site-packages/torch/init.py”, line 367, in
from torch._C import * # noqa: F403
^^^^^^^^^^^^^^^^^^^^^^
ImportError: libcupti.so.12: cannot open shared object file: No such file or directory

在这里插入图片描述
这个错误表示系统找不到 CUDA Profiling Tools Interface (CUPTI) 库文件 libcupti.so.12。这是 CUDA 工具包的一部分,通常在安装 CUDA toolkit 时应该包含这个库。

sudo apt-get install cuda-toolkit-12-0
# 编辑 ~/.bashrc 文件
echo 'export LD_LIBRARY_PATH=/usr/local/cuda/extras/CUPTI/lib64:$LD_LIBRARY_PATH' >> ~/.bashrc
source ~/.bashrc
sudo ln -s /usr/local/cuda/extras/CUPTI/lib64/libcupti.so.12 /usr/local/lib/libcupti.so.12

3.ImportError: libnccl.so.2: cannot open shared object file: No such file or directory

这个错误表明在运行代码时,PyTorch 无法找到 libnccl.so.2 这个共享库文件。libnccl.so.2 是 NVIDIA 的 NCCL(NVIDIA Collective Communications Library)库的一部分,通常用于多 GPU 通信。以下是解决这个问题的步骤:

  1. 检查是否安装了 NCCL
    NCCL 是 NVIDIA 的库,通常与 CUDA 一起安装。你可以通过以下命令检查是否安装了 NCCL:
ls /usr/lib/x86_64-linux-gnu/libnccl*
  1. 安装 NCCL
    如果 NCCL 未安装,可以通过以下步骤安装:

方法 1:通过 NVIDIA 官方安装
访问 NCCL 下载页面。

根据你的系统(Ubuntu/CentOS 等)和 CUDA 版本下载对应的 NCCL 包。

安装下载的包。例如,对于 Ubuntu:

在这里插入图片描述

conda install -c nvidia nccl

4.已经执行了正常命令,但是需要下载sglang

在这里插入图片描述
https://docs.sglang.ai/start/install.html

pip install --upgrade pip
pip install uv
uv pip install "sglang[all]>=0.4.4" --find-links https://flashinfer.ai/whl/cu124/torch2.5/flashinfer-python

http://www.ppmy.cn/server/175461.html

相关文章

【NLP】10. 机器学习模型性能评估指标(含多类别情况), ROC,PRC

机器学习模型性能评估指标(含多类别情况) 1. 模型评估指标简介 在机器学习中,模型的性能评估非常重要。常用的模型评估指标有: 准确率(Accuracy)精度(Precision)召回率&#xff0…

Dijkstra算法

Dijkstra算法(迪杰斯特拉算法)是一种经典的单源最短路径算法,用于在加权图中找到从一个源点到所有其他顶点的最短路径。它要求图中不能有负权边,因为负权边可能会导致算法的贪心策略失效。 Dijkstra算法的基本思想 Dijkstra算法…

matlab 火电厂给水控制系统仿真

1、内容简介 略 matlab157-火电厂给水控制系统仿真 可以交流、咨询、答疑 2、内容说明 略 摘 要 虽然现在新能源发电领域比较火爆,但至今火力发电厂依然在我的的发电领域中拥有很重要的地位。我国虽然还是发展中国家,但是近年来GDP的增长已经处于世界…

Kotlin 协程基础详解(总结面试)

在异步编程领域,Kotlin 协程以其轻量级、高并发和简洁的代码风格,成为现代 Android 的首选方案。 协程的核心优势 轻量级任务单元 协程基于线程池调度,单个线程可同时运行数千个协程,相比传统线程(约 1MB 栈空间&…

prompt提示词

提示词 12345 1 你是一个高级代码分析智能助手,专门帮助开发者通过逆向思维深入理解代码。所谓逆向思维,在这里是指从项目的最终目的和需求出发,反向探索为何需要编写特定代码段以及这些代码是如何支持整体目标的。你的任务是基于这种思维方…

让双向链表不在云里雾里

又来博客留下我的足迹了,哈哈哈,这次是对于双向链表的理解 目录 创建双向链表: 申请结点: 双向链表初始化: 双向链表插入结点: 双向链表删除结点: 双向链表的打印: 双向链表…

Kubernetes学习笔记-移除Nacos迁移至K8s

项目服务的配置管理和服务注册发现由原先的Nacos全面迁移到Kubernetes上。 一、移除Nacos 移除Nacos组件依赖。 <dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId> <…

mac安装navicat及使用

0.删除旧的 sudo rm -Rf /Applications/Navicat\ Premium.app sudo rm -Rf /private/var/db/BootCaches/CB6F12B3-2C14-461E-B5A7-A8621B7FF130/app.com.prect.NavicatPremium.playlist sudo rm -Rf ~/Library/Caches/com.apple.helpd/SDMHelpData/Other/English/HelpSDMIndexF…