一、概述:
在大型语言模型(LLM)的应用落地中,RAG(检索增强生成)是解决模型幻觉和知识时效性的关键技术。而在RAG的诸多场景中,文档解析是构建RAG企业级知识库关键第一步。
实际应用场景中,文本类型有:txt、word、html、pdf、markdown等,文档解析内容包括:文本、表格、图表、签章、公式、等。针对复杂多样的文档类型/内容,能以文字的形式最大程度还原文档所表达的原始信息,是文档解析的终极目标。
传统的工程化文档解析方案:依赖文件内部良好的结构,格式/排版混乱则解析混乱。无法处理非文本元素,表格变乱码,公式丢失,图表被忽略。原始文件版面格式的信息缺失可能影响后续文本分块的效果。
本文方案:将富文本内容(包含表格、图表、公式、签章等信息文档)统一转换为image,以PaddleOCR-VL版面分析识别的方案实现多模态文档解析,将原始文档最终解析为markdown格式的结构化文本,还原复杂元素(如文本、表格、公式和图表)信息、还原文本版面信息,同时0.9B模型保持极低的资源消耗。
本文先解读PaddleOCR-VL,后进行实战应用,最后讲解环境配置。
二、PaddleOCR-VL介绍
PaddleOCR-VL的识别分为两个阶段:
- **版面分析:**首先检测文本版面元素位置、类别、排序。
- **元素级识别:**使用紧凑的视觉语言模型精确识别每个元素。
第一阶段:执行版面布局分析(PP-DocLayoutV2)
主要识别:版面元素的边界框bbox、类别标签、阅读顺序。
PP-DocLayoutV2包含:用于元素定位与分类的目标检测模型(RT-DETR),以及一个配备六层Transformer的轻量化指针网络,用于预测版面元素的阅读顺序。
版面元素类别主要有:文本块、表格、公式、图表、插图、等。(具体标签类别可以查看PP-DocLayoutV2模型文件的config.json)
版面分析效果图:
第二阶段:元素识别(PaddleOCR-VL-0.9B)
视觉语言模型VLM(PaddleOCR-VL-0.9B)发挥作用的地方。
VLM(PaddleOCR-VL-0.9B)使用LLaVA的架构风格,主要三个模块:
- **视觉编码器:**先采用原生动态高分辨率预处理技术。再用NaViT风格编码器(可以看做进阶VIT,NaViT能够原生处理任意分辨率的图像,而无需分割图像,支持原生分辨率输入)。这种设计使视觉语言模型能够无损处理任意分辨率图像,在文本密集型任务中表现出更少的幻觉现象与更强的性能。
- 一个简单的 2 层 MLP, 用于将视觉特征维度与语言特征维度对齐。
- 解码器:ERNIE-4.5–0.3B 语言模型,该模型规模虽小但速度很快,并且采用 3D-RoPE 进行位置编码。 最终模型输出结构化 Markdown 或 JSON 格式的文件用于后续的处理。
模型结构图:
输出效果图:
三、PaddleOCR-VL企业级应用实战
1、推理应用(先上干货)
本实验使用vllm加载0.9B vlm模型,显存占用:权重占 1.89 GiB,峰值激活值占 4.33 GiB,gpu-memory-utilization = 0.5,总显存32Gx0.5≈15.7G,除去模型占用之外被用作kv cache占用大约9.4G,大约553040 tokens。
from paddleocr import PaddleOCRVLimport os# 启动PaddleOCR-VL模型服务# paddlex_genai_server --model_name PaddleOCR-VL-0.9B --backend vllm --port 8118print("OCR结果输出在 output_api 目录")pipeline = PaddleOCRVL(vl_rec_backend="vllm-server", # VLM模型服务的推理方式vllm vl_rec_server_url="http://127.0.0.1:8118/v1", # 元素级识别的VLM模型服务接口 vl_rec_max_concurrency=8, # 如果多模态识别模型使用推理服务,该参数用于指定最大并发请求数 use_layout_detection=True, # 是否进行版面分析 use_doc_orientation_classify=False, # 是否使用文档方向分类模型 use_doc_unwarping=False, # 是否使用文本图像校正模块 use_chart_recognition=True, # 是否加载并使用图表解析模块 format_block_content=True, # 是否将 block_content 中的内容格式化为Markdown格式 )# 更多参数解析详见# https://www.paddleocr.ai/latest/version3.x/pipeline_usage/PaddleOCR-VL.html#22-pythonpic_list = os.listdir("./test_img")for img_path in pic_list: output = pipeline.predict(os.path.join("./test_img", img_path)) for res in output: res.save_to_json(save_path="output_api") ## 保存当前图像的结构化json结果 res.save_to_markdown(save_path="output_api") ## 保存当前图像的markdown格式的结果 res.save_to_img(save_path="output_api") # 保存版面分析结果图片 print(output) print(type(output)) print(len(output))# 指定结果保存的文件目录,目录下保存:解析结果markdown、json、版面元素分析结果图、版面元素排序结果图等实测效果:
左侧为原始图片,右侧为markdown文本(文本太长截取部分文字)
2、效果调优
本文测试了:移动信号测试图片、医院血常规检查表、公式、表格、手写字体、倾斜文本、复杂排版等多种图片。总体识别效果优异。
**badcase:**移动信号测试图片识别内容缺失:分析:主要由于文本方向矫正模块将图像颠倒了方向,导致版面元素识别缺失。
反思:对于正常的pdf文档转换成的图片,文字方向无需过度校正设置use_doc_orientation_classify=False, # 是否使用文档方向分类模型和use_doc_unwarping=False, # 是否使用文本图像校正模块能起到更好的效果。优化后的识别效果:
3、环境配置
如果有独立的GPU服务器,首先考虑docker compose部署PaddleOCR-VL服务:
1、下载docker compose文件:compose.yaml 和 .env下载地址:https://github.com/PaddlePaddle/PaddleOCR/tree/main/deploy/paddleocr_vl_docker2、必须在 compose.yaml 和 .env 文件所在的目录中执行docker compose up3、Docker Compose 通过读取 .env 和 compose.yaml 文件中配置,先后启动 2 个容器,分别运行底层 VLM 推理服务,以及 PaddleOCR-VL 服务(产线服务)。注:修改VLLM推理配置参数、修改OCR模型服务配置参数,参考文档说明:https://www.paddleocr.ai/latest/version3.x/pipeline_usage/PaddleOCR-VL.html#41-docker-compose服务部署:由于没有独立GPU服务器,本文在GPU容器中配置环境进行实验,采用手动安装的方式配置环境:
以 vLLM 为例:# 1、创建虚拟环境python -m venv .venv_vlm# 2、激活环境source .venv_vlm/bin/activate# 3、安装 PaddleOCRpython -m pip install "paddleocr[doc-parser]"# 4、安装推理加速服务依赖paddleocr install_genai_server_deps vllm# paddleocr install_genai_server_deps 命令用法:paddleocr install_genai_server_deps <推理加速框架名称># 当前支持的框架名称为 vllm、sglang 和 fastdeploy,分别对应 vLLM、SGLang 和 FastDeploy。# 通过 paddleocr install_genai_server_deps 安装的 vLLM 与 SGLang 均为 CUDA 12.6 版本,请确保本地 NVIDIA 驱动与此版本一致或更高。# 5、安装完成后,可通过 paddleocr genai_server 命令启动服务:paddleocr genai_server --model_name PaddleOCR-VL-0.9B --backend vllm --port 8118该命令支持的参数如下:参数--model_name 模型名称--model_dir 模型目录--host 服务器主机名--port 服务器端口号--backend 后端名称,即使用的推理加速框架名称,可选 vllm 或 sglang--backend_config 可指定 YAML 文件,包含后端配置客户端使用:
启动 VLM 推理服务后,客户端即可通过 PaddleOCR 调用该服务。
注意:由于客户端需要调用版面检测的顺序模型,仍建议在 GPU 等加速设备上运行客户端,以获得更稳定和高效的性能。
pipeline = PaddleOCRVL(vl_rec_backend="vllm-server", vl_rec_server_url="http://127.0.0.1:8118/v1")参数调优:
服务端参数(VLLM部署VLM)
客户端参数(PaddleOCR客户端先对图像做初步处理,后调用VLM服务)
服务端参数调整:PaddleOCR VLM 推理服务支持通过配置文件进行调参。例如:调整 vLLM 推理框架的 gpu-memory-utilization 和 max-num-seqs 参数:1、创建 YAML 文件 vllm_config.yaml,内容如下: gpu-memory-utilization: 0.3 gpu显存占用比例,0.3->总显存32G*0.3=10G, max-num-seqs: 1282、启动服务时指定配置文件路径,例如使用 paddleocr genai_server 命令: paddleocr genai_server --model_name PaddleOCR-VL-0.9B --backend vllm --backend_config vllm_config.yaml客户端参数调整:PaddleOCR 会将来自单张或多张输入图像中的子图分组并对服务器发起并发请求,因此并发请求数对性能影响显著。对 CLI 和 Python API,可通过 vl_rec_max_concurrency 参数调整最大并发请求数;pipeline = PaddleOCRVL(vl_rec_backend="vllm-server", vl_rec_server_url="http://127.0.0.1:8118/v1", "vl_rec_max_concurrency"=5)对docker compose部署,可修改配置文件中 VLRecognition.genai_config.max_concurrency 字段。当客户端与 VLM 推理服务为 1 对 1 且服务端资源充足时,可适当增加并发数以提升性能;若服务端需支持多个客户端或计算资源有限,则应降低并发数,以避免资源过载导致服务异常。如何学习大模型 AI ?
由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。
但是具体到个人,只能说是:
“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。
这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。
我在一线科技企业深耕十二载,见证过太多因技术卡位而跃迁的案例。那些率先拥抱 AI 的同事,早已在效率与薪资上形成代际优势,我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在大模型的学习中的很多困惑。我们整理出这套AI 大模型突围资料包:
- ✅ 从零到一的 AI 学习路径图
- ✅ 大模型调优实战手册(附医疗/金融等大厂真实案例)
- ✅ 百度/阿里专家闭门录播课
- ✅ 大模型当下最新行业报告
- ✅ 真实大厂面试真题
- ✅ 2025 最新岗位需求图谱
所有资料 ⚡️ ,朋友们如果有需要《AI大模型入门+进阶学习资源包》,下方扫码获取~
① 全套AI大模型应用开发视频教程
(包含提示工程、RAG、LangChain、Agent、模型微调与部署、DeepSeek等技术点)
② 大模型系统化学习路线
作为学习AI大模型技术的新手,方向至关重要。 正确的学习路线可以为你节省时间,少走弯路;方向不对,努力白费。这里我给大家准备了一份最科学最系统的学习成长路线图和学习规划,带你从零基础入门到精通!
③ 大模型学习书籍&文档
学习AI大模型离不开书籍文档,我精选了一系列大模型技术的书籍和学习文档(电子版),它们由领域内的顶尖专家撰写,内容全面、深入、详尽,为你学习大模型提供坚实的理论基础。
④ AI大模型最新行业报告
2025最新行业报告,针对不同行业的现状、趋势、问题、机会等进行系统地调研和评估,以了解哪些行业更适合引入大模型的技术和应用,以及在哪些方面可以发挥大模型的优势。
⑤ 大模型项目实战&配套源码
学以致用,在项目实战中检验和巩固你所学到的知识,同时为你找工作就业和职业发展打下坚实的基础。
⑥ 大模型大厂面试真题
面试不仅是技术的较量,更需要充分的准备。在你已经掌握了大模型技术之后,就需要开始准备面试,我精心整理了一份大模型面试题库,涵盖当前面试中可能遇到的各种技术问题,让你在面试中游刃有余。
以上资料如何领取?
为什么大家都在学大模型?
最近科技巨头英特尔宣布裁员2万人,传统岗位不断缩减,但AI相关技术岗疯狂扩招,有3-5年经验,大厂薪资就能给到50K*20薪!
不出1年,“有AI项目经验”将成为投递简历的门槛。
风口之下,与其像“温水煮青蛙”一样坐等被行业淘汰,不如先人一步,掌握AI大模型原理+应用技术+项目实操经验,“顺风”翻盘!
这些资料真的有用吗?
这份资料由我和鲁为民博士(北京清华大学学士和美国加州理工学院博士)共同整理,现任上海殷泊信息科技CEO,其创立的MoPaaS云平台获Forrester全球’强劲表现者’认证,服务航天科工、国家电网等1000+企业,以第一作者在IEEE Transactions发表论文50+篇,获NASA JPL火星探测系统强化学习专利等35项中美专利。本套AI大模型课程由清华大学-加州理工双料博士、吴文俊人工智能奖得主鲁为民教授领衔研发。
资料内容涵盖了从入门到进阶的各类视频教程和实战项目,无论你是小白还是有些技术基础的技术人员,这份资料都绝对能帮助你提升薪资待遇,转行大模型岗位。