引言
在7月4日举行的WAIC 2024科学前沿主论坛上,书生·浦语2.5正式发布,面向大模型研发与应用的全链条工具体系同时迎来升级。在数据处理环节,上海人工智能实验室(上海AI实验室)大模型数据基座OpenDataLab团队开源了全新的智能数据提取工具——MinerU。
在这个信息爆炸的时代,AI研究者常常面临着从海量文档中提取高质量数据的挑战。无论是学术文献、行业报告、会议PPT、课本、说明书还是合同单据,这些文档往往以PDF或网页的形式存在,内容复杂,格式多样,而大语言模型的训练,通常需要将这些内容转换为类似markdown的格式才能使用,核心问题集中在两个方面:通过分析布局信息(包括文本、标题、说明、图片、表格和公式),识别不同的元素并处理这些布局组件之间的关系。
MinerU,作为一款全能、开源的文档与网页数据提取工具,致力于简化AI数据处理流程。不仅能将混合了图片、表格、公式等在内的多模态PDF文档精准转化为清晰、易于分析的Markdown格式;还能从包含广告等各种干扰信息的网页中快速解析、抽取正式内容;同时支持epub、mobi、docx等多种格式批量转化为Markdown……
MinerU 目前由2个部分组成,分别提供不同功能:
- Magic-PDF PDF文档提取,将 PDF 转化为 Markdown 格式。能够快速识别PDF版面元素,自动删除页眉、页脚、脚注等非正文内容,保留原文档的结构和格式,包括标题、段落、列表等,准确提取图片、表格和公式等多模态内容,并根据顺序,将文档转化为清晰、通顺、易读的Markdown格式。
- Magic-Doc 网页与电子书提取,支持常见的文章、论坛、音乐、视频等类型网页信息提取,轻松剔出广告等干扰信息,快速搞定正文、评论、歌词、视频文字详情等关键内容转化。还可以快速将epud、mobi、pptx、docx、chm、azw、txt、rtf等8种以上格式电子书转化为Markdown,做到文本图片全适配。
魔搭社区体验链接:
https://modelscope.cn/studios/OpenDataLab/MinerU
代码开源链接:
https://github.com/opendatalab/MinerU/
MinerU开源模型(PDF-Extract-Kit):
https://modelscope.cn/models/OpenDataLab/PDF-Extract-Kit
技术解析
PDF文档相比网页、电子书等结构标准化的文件含有更多复杂的元素,处理更具挑战性和代表性,本文将以PDF为代表,重点介绍 MinerU 如何实现高质量文档数据提取。
(流程图)
MinerU PDF文档提取,主要由4大环节构成:
● PDF文档分类预处理
MinerU支持不同类型的PDF文档提取,包括文本型PDF、图层型PDF、扫描版PDF;初始阶段,输入PDF文档,系统会启用文档分类模块,提取PDF元数据,检测是否有乱码,是否是扫描版,进行PDF类型识别预处理。
(注:文本型PDF:文字可以复制;图层型PDF:文字不可复制,解析乱码)
● 模型解析,PDF内容提取
紧接着,利用高质量PDF模型解析工具链进一步对PDF文档进行Layout区块布局检测,准确定位标题、正文、图片、表格、脚注、边注等重要元素位置,与此同时,结合公式检测模型定位公式区域。最后结合高质量公式识别及OCR技术提取准确的文本、公式内容,存储到JSON文件中。
用到的模型:
布局检测:使用 LayoutLMv3 微调出来的检测模型进行区域检测,如图像,表格、标题、文本等;
公式检测:使用基于 YOLOv8 自研的公式检测模型进行公式检测,包含行内公式和行间公式;
公式识别:使用自研的 UniMERNet 公式识别模型进行公式识别;
光学字符识别:使用 PaddleOCR 模型进行文本识别;
● 管线处理,支持多种格式输出
模型处理的数据会输入管线,进行后处理:确定块级别顺序,删减无用元素,依靠版面对内容排序、拼装,保证正文流畅。处理方式包括:坐标修复、高iou处理、图片、表格描述合并、公式替换、图标转储、Layout排序、无用移出、复杂布局过滤等。
管线处理好的文档信息会变为一个统一的中间态:middle-json(包含PDF解析出来的所有的信息),开发者可以按照使用需求自定义输出Layout、Span、Markdown、Content list等不同的格式。
(注:Content list是MinerU团队开发的一套列表样的序列结构格式,比Markdown格式能保留更多信息,可用于多模态、NLP等大模型训练)
● PDF提取结果质检
团队利用由论文、教材、试卷、研报等多种类型文档组成的人工标注的PDF自测评测集,对整个流程进行检测,保证每次开发调优、算法改进后,提取效果越来越好;同时利用可视化质检工具,将PDF提取结果进行人工质检与标注,再反馈给模型训练,进一步提升模型能力。
魔搭最佳实践
使用魔搭社区免费算力实践MinerU,如果是离线任务对处理时长没有要求,可使用魔搭社区长期免费的CPU算力
环境安装:
pip install -U magic-pdf[full] --extra-index-url https://wheels.myhloli.com
❗️下载完成后,务必通过以下命令确认magic-pdf的版本是否正确
magic-pdf --version
下载模型
使用ModelScope CLI下载,自动校对模型SHA256:
modelscope download --model OpenDataLab/PDF-Extract-Kit --exclude models --local_dir /tmp
配置文件
wget https://gitee.com/myhloli/MinerU/raw/master/magic-pdf.template.json cp magic-pdf.template.json ~/magic-pdf.json
【可选】如果使用魔搭GPU环境,修改【用户目录】中配置文件magic-pdf.json中"device-mode"的值为cuda
{ "device-mode":"cuda" }
运行demo
wget https://gitee.com/myhloli/MinerU/raw/master/demo/small_ocr.pdf magic-pdf -p small_ocr.pdf
【可选】为ocr开启cuda加速(需要显存16G)
1.下载paddlepaddle-gpu, 安装完成后会自动开启ocr加速
python -m pip install paddlepaddle-gpu==3.0.0b1 -i https://www.paddlepaddle.org.cn/packages/stable/cu118/
2.运行以下命令测试ocr加速效果
magic-pdf -p small_ocr.pdf
点击链接,即可跳转模型详情~
https://modelscope.cn/models/OpenDataLab/PDF-Extract-Kit?from=alizishequ__text