KnowFlow集成MinerU 2.0:架构优化OCR提升,文档解析更高效!

AI前沿5小时前发布 yizz
1,812 0 0
广告也精彩

KnowFlow v1.0.0 集成 MinerU 2.0:提升文档解析准确率与效率

为什么 KnowFlow 选择集成 MinerU 2.0?

KnowFlow v1.0.0 终于集成了众多用户期待的 MinerU 2.0。主要有以下几点考虑:

  • 架构优化,降低部署成本:原先 KnowFlow 通过 Python 直接调用 MinerU 1.x 的 API 接口,部署成本较高,架构设计高度耦合,不利于扩展。
  • 显著提升 OCR 效果:社区反馈 MinerU 2.0 的 vlmsglang 效果非常好,解决了原先文档 OCR 过程中存在的一系列问题,效果逐渐逼近付费 OCR 效果。
  • 坚持高准确率:KnowFlow 始终坚持高准确率,集成 MinerU 2.0 可大幅提升文档识别和解析效果。

#MinerU2.0

MinerU 2.0 的三种部署模式是什么?

MinerU 2.0 支持三种部署模式,分别是 pipeline 模式、vlm-transformers 模式和 vlm-sglang 模式。

1. pipeline 模式:兼容旧版,配置要求低

  • 功能:简单理解就是 MinerU 1.x 的功能,MinerU 2.0 相当于做了向下兼容。
  • 配置要求:配置要求最低,本地 MAC 开发开启了 mps 模式后,pipeline 跑起来速度还是令人惊喜。

2. vlm-transformers 模式:端到端文档理解,速度慢

  • 功能:使用 HuggingFace transformers 库直接加载和运行视觉语言模型,实现端到端的文档理解。
  • 缺点:实测真的很慢,配置要求挺高,存在 vlm-sglang 模式前提下,不建议采用此模式。

3. vlm-sglang 模式:高性能,支持分布式处理

vlm-sglang 包含两种子模式:vlm-sglang-engine 和 vlm-sglang-client。

  • vlm-sglang-engine
    • 架构:本地 SGLang 引擎集成。
    • 性能:通过 SGLang 加速,在单卡 NVIDIA 4090 上可达 10,000+ tokens/s 吞吐量。
    • 硬件要求:需要 24GB+ VRAM。
  • vlm-sglang-client
    • 架构:远程 SGLang 服务器客户端连接。
    • 部署方式:支持分布式处理,客户端仅需 CPU 和网络连接。
    • 服务器配置:使用自定义的 SGLang 服务器。

对于 KnowFlow 来说,本次 vlm-sglang 支持 vlm-sglang-client

#MinerU2.0部署

KnowFlow v1.0.0 的架构设计是什么?

KnowFlow v1.0.0 采用 FastAPI 和 MinerU2.0 进行对接,考虑后续可能会对接更多的 OCR 引擎。

如何使用 MinerU 2.0 Web API?

截止到发稿日为止,MinerU 2.0 仍未推出官方的 Web API 服务。KnowFlow 在原先 MinerU 1.x 的基础上适配了 Web API ,并将源码开放,方便后续持续升级和维护 MinerU 最新版本以及自定义改造。

该 Web API 服务和独立于 KnowFlow 单独使用,符合组件化设计思想。

同时项目中提供了 demo 文件、测试脚本、解析后的结构化数据样例等,方便后续的测试联调。

KnowFlow 提供了哪些镜像?

考虑到部分用户用不到 vlm-sglang 模式,KnowFlow 提供了两个镜像:

  • zxwei/mineru-api-full:包含完整的 VLM 功能,支持所有后端类型。适合生产环境,保证足够强的解析效果。
  • zxwei/mineru-api:基础版本,主要支持 pipeline 后端。适合不需要本地开发,而只是简单本地体验用户。

如何本地部署 MinerU 2.0 Web API?

考虑到部分开发者觉得镜像体积太大,只需要本地开发联调,KnowFlow 提供了本地 MinerU2.0 web api 部署方式。

步骤如下

  1. 安装 Python 依赖(注意:zsh 需要用引号包围方括号)

    bash
    pip install “mineru[core]” fastapi uvicorn python-multipart

    注意:请确保你的 Python 环境已经配置好,并且安装了 pip 包管理器。

  2. 设置环境变量

    bash
    export MINERU_DEVICE_MODE=cpu
    export MINERU_MODEL_SOURCE=modelscope

    解释

    • MINERU_DEVICE_MODE=cpu 设置设备模式为 CPU,如果你的机器有 GPU,可以设置为 cuda
    • MINERU_MODEL_SOURCE=modelscope 设置模型来源为 ModelScope
  3. 进入项目目录

    bash
    cd web_api

    注意:请将 web_api 替换为你的实际项目目录。

  4. 启动本地服务

    bash
    python app.py

    提示:如果一切顺利,你应该能看到服务启动成功的提示信息。

#MinerU2.0

KnowFlow Client 如何配置 MinerU 2.0?

有了 MinerU2.0 Web API 的服务端,对于 KnowFlow client 端,提供了非常简单的配置参数,可以很方便的指定解析模式以及配置相关参数。

yaml

=

MinerU 文档解析配置 (客户端配置)

=

mineru:
# FastAPI 客户端配置
fastapi:
# FastAPI 服务地址
# 本地开发: http://localhost:8888
# Docker部署: http://host.docker.internal:8888 (Docker Desktop)
# 或 http://宿主机IP:8888 (Linux Docker)
# 或 http://mineru-api:8888 (Docker Compose网络)
url: “http://host.docker.internal:8888”
# HTTP 请求超时时间(秒)
timeout: 30000
# 默认使用的后端类型
# 选项: pipeline, vlm-transformers, vlm-sglang-client
default_backend: “pipeline”
# Pipeline 后端请求参数
pipeline:
# 解析方法: auto, txt, ocr
parse_method: “auto”
# 文档语言(提升OCR准确率)
lang: “ch”
# 是否启用公式解析
formula_enable: true
# 是否启用表格解析
table_enable: true
# VLM 后端配置
vlm:
sglang:
# SGLang 服务器地址(vlm-sglang-client 后端需要)
# Docker部署时同样需要使用宿主机IP或容器网络地址
server_url: “http://host.docker.internal:30000”

强烈推荐:采用 vlm-sglang-client 模式,该模式速度上比 vlm-transformers 提高了很多倍,当然显存占用大点,实测单卡 48 G 显存 500KB PDF 文件,解析速度大概在 5s 左右。

KnowFlow 的未来展望是什么?

  • RAGFlow 源码深度解读:后续将会重新和大家一起将RAGFlow 源码深度解读, 围绕我们日常关心的功能点,如知识图谱、元数据、Tag、分块原理、混合检索原理等。
  • 前端 UI 源码开源:后面也会把前端代码开源出来,让更多的人参与进来,设计出更友好的交互体验。
  • 科普视频:准备在 B 站和抖音给大家科普下本项目部署和使用的一些细节。

交流联系方式

本项目代码已完全开源,欢迎关注「KnowFlow 企业知识库」,加入交流群,一起沟通交流。

感悟

我认为:开源精神,贵在分享与交流。纵然一时无法带来直接的经济效益,但其价值却在于知识的传播和技术的进步。正如作者所言,输出有价值的东西,与他人产生连接,获得认可,这本身就是一种成就。开源之路,道阻且长,但只要心中有理想,便能克服困难,不断前行。这不仅是对技术的追求,更是对社会责任的担当。

© 版权声明
chatgpt4.0

相关文章

error: Content is protected !!