MinerU 4.0 正式发布:让复杂文档成为 Agent 可用的知识基础设施

MinerU 4.0 是面向AI Agent的智能文档解析工具升级版,支持PDF、DOCX、PPTX、XLSX、EPUB等20+格式统一解析;提供flash/basic/standard/advanced四类解析模式;新增原文定位器实现内容坐标化;适配AMD/NVIDIA/Intel GPU及纯CPU环境,降低本地部署门槛;通过MinerU Skill实现Agent自动调用本地与远程解析能力,兼顾隐私安全与处理效率,赋能科研资料整理、长文档渐进分析等典型场景。

MinerU 是上海人工智能实验室 OpenDataLab 团队开源的智能文档解析工具,也是开源社区中最受欢迎的复杂文档解析工具之一。它面向 PDF、图片、办公文档、网页、电子书等复杂文档,提供结构化解析与内容提取能力。目前,MinerU 已获得超过 8 万 GitHub Star,并在科研文献解析、AI-Ready 数据生产和企业知识库建设等场景中持续被使用。

今天,MinerU 4.0 正式发布。

这是 MinerU 面向 Agent 时代的一次重要升级:模型能力进一步增强,Skill 产品形态同步升级。

在模型层,MinerU 4.0 支持更多真实文档格式,提供4种更灵活的解析模式,并新增定位器能力支持 Agent 渐进式读取与原文复查;同时,官方首次针对 AMD Radeon GPU 本地算力环境进行适配,让本地模型的部署和使用覆盖更多主流算力平台。

在 Skill 层,新版 MinerU Skill 让人告别手动模型部署,Agent 可以自动安装并调用本地 MinerU 能力。本地解析优先,同时支持 MinerU 远程服务按需启用,涉及文档上传时由用户确认授权,让复杂文档处理具备更清晰的隐私安全边界。

从论文、研报、合同,到课件、表格、扫描件,更多复杂文档都可以直接交给 Agent 处理:先快速读懂全貌,再深入分析重点,最后回到原文核验依据。

MinerU 4.0,做到了让复杂文档真正进入 Agent 工作流。

使用入口:

新版 MinerU Skill 安装方式

将下面内容复制给你的Agent:

npx skills add opendatalab/MinerU --skill mineru --global --yes

GitHub 开源项目地址:https://github.com/opendatalab/MinerU

一、模型升级:让更多真实文档进入统一解析能力

MinerU 4.0 的模型能力,进一步面向真实文档场景升级。

01 支持更多文件格式

PDF、图片,以及 DOC/DOCX、PPT/PPTX、XLS/XLSX、RTF、ODT/ODS/ODP、EPUB、OFD、HTML、CSV/TSV 等常见文档与办公格式,现在都可以进入统一解析流程。用户不再需要先转换格式、整理内容、复制文本,再交给 Agent;更多真实文档可以直接通过 MinerU 进入处理链路。

02 提供更清晰的解析模式

面对不同文档和不同任务,用户不需要用同一种方式处理所有文件。新版本提供flash、basic、standard、advanced 四种模式,分别对应快速预览、轻量处理、日常高质量解析和复杂文档处理,让不同难度的文档匹配更合适的处理方式。

03 新增定位器能力

可以把定位器理解为文档内容的“原文坐标”:Agent 读取到一段内容后,不只拿到文本,也能知道它来自哪一页、哪一个内容块。后续需要复查、引用、继续阅读时,可以直接回到对应位置。

定位器让渐进式读取成为可能。Agent 可以先读结构和重点,再围绕具体问题回到原文继续展开,而不必一次性把整份文档压进上下文。

04 本地部署门槛进一步降低

MinerU 4.0 进一步拓宽了本地运行环境的覆盖面:Python 版本支持扩展至 3.10–3.14,覆盖 Windows、Linux、macOS 三大主流平台,并适配 AMD Radeon GPU、NVIDIA、Intel 主流 GPU。即使没有 GPU,纯 CPU 设备也可以使用完整功能。全部模型文件(含 VLM 模型)合计最低约 2GB,更节省硬盘空间,也让下载、安装和本地部署更轻量。

二、Skill 升级:让 Agent 自动调用本地与远程能力

新版 MinerU Skill,是 MinerU 4.0 面向 Agent 场景的重要产品入口。

过去,用户要让 Agent 处理复杂文档,往往需要先判断本地环境、安装状态、模型依赖、处理方式和调用路径。现在,这些前置判断可以交给 MinerU Skill。

告别手动模型部署。你只需要让 Agent 安装 MinerU Skill,它就能检查本地环境,判断是否需要安装 MinerU,并根据当前条件自动选择合适的安装方式和处理路径。

对于论文初稿、内部报告、合同材料、企业知识库等敏感文档,Agent 可以优先调用本地算力完成解析,让文档处理尽可能留在本地环境中。

对于开放资料、轻量任务或云端工作流,Agent 也可以按需调用远程能力。远程服务不会默认启用,涉及文档上传时需要用户确认授权,确保文档处理具备清晰的隐私安全边界。

Skill 的作用

更多格式支持、多种解析模式、定位器能力、本地与远程服务,构成了 MinerU 4.0 的能力基础;MinerU Skill 则把这些能力组织成 Agent 可以自动执行的文档处理流程。

三、典型场景:Agent 如何使用 MinerU 4.0

场景一:混合格式科研资料整理

你可以把几篇 PDF 论文、一份组会 PPT、一个 Excel/CSV/TSV 实验结果表格、几张截图和网页材料直接交给 Agent。MinerU Skill 会调用 MinerU,把不同格式纳入同一处理流程:读取 PDF 正文、图表和公式,提取 PPT 章节与观点,解析 Excel 实验数据,识别图片和扫描件文字内容。

如果只是快速了解资料主题,Agent 可以先用更快的解析模式完成初读;如果需要进一步比较方法差异、实验结果或技术路线,再对关键文档切换到更高质量的解析方式。最终得到的,不是一堆分散文件,而是一份可以继续追问的研究材料,包括核心观点、方法对比、实验结果、待复查问题,以及对应的原文位置。

场景二:长文档渐进式分析与原文定位

对于几百页的技术报告、合同文件、企业内部材料等不适合直接上传的内容,你也可以交给 Agent,让它先判断重点,再深入分析关键部分。MinerU Skill 可以优先调用本地能力完成解析,在本地读取目录、章节结构和主要内容,形成全局判断。

当你继续追问某个指标、条款、实验设置或风险点时,Agent 可以围绕具体问题搜索文档内容,并定位到相关页面和内容块。此时,定位器的价值会非常直接:Agent 给出的结论不再只是摘要,还可以带着可复查的原文依据。

对科研、企业和严肃知识工作来说,Agent 需要生成答案,也需要帮助你验证答案。MinerU 4.0 让复杂文档从“被读入”,进一步走向“可追踪、可复查、可继续使用”。

四、使用入口

「MinerU 让复杂文档,从此成为 Agent 可直接使用的知识入口。」

新版 MinerU Skill 安装方式

将下面内容复制给你的Agent:

npx skills add opendatalab/MinerU --skill mineru --global --yes

GitHub 项目地址:https://github.com/opendatalab/MinerU

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值