告别乱码与数据丢失!揭秘MinerU-HTML:大模型预训练的“数据解密大师”

大模型

一、引言:为什么我们需要更聪明的“数据炼金术”?

大家在调侃大模型“幻觉”严重时,没有反驳,这可能是因为它在“读书”阶段读了太多废话?网页数据涉及了预训练语料的80%以上,但这种HTML格式本质上是为了给浏览器“看”和“渲染”的,而不是为了让AI“理解”的。

传统的数据清理工具(如 Trafilatura)在面对简单的博客文章时还行,但遇到包含公式、数学表格或者复杂代码块的文档技术,瞬间“阵亡”。

MinerU-HTML的出现,就是为了解决这个痛点。它提出了“语义采集”提取方案,不仅能洗掉垃圾广告,还能像保护文物一样保护那些珍贵的代码提取和LaTeX公式。


二、技术原理:MinerU-HTML的“大脑”是如何工作的?

MinerU-HTML的核心精髓提出:它不再把清洗设为一个简单的“过滤”过程,而是将其转化为一个**“语义理解任务”**。它采用了两阶段的管道管道设计。

2.1 第一阶段:Main-HTML提取(核心是“语义化筛选”)

这一步的目标是剥离广告、导航,保留主要内容及其原始结构。

2.1.1 双路HTML减肥:既要“瘦身”又要“存根”

原始网页代码非常爆炸,填充了各种CSS样式。如果直接给模型看,会浪费大量的Token。MinerU巧妙地设计了双轨系统:

  • 简化版HTML(Simplified HTML) :去掉所有样式标签,只保留关键属性,并按语义块(如表格、列表)分割。这是给AI模型看的“专业版教材”。
  • 映射还原版HTML(Mapping HTML) :保持原始结构不动。这是为了最后的“原件存根”,确保信息绝对不丢失。

2.1.2 序列标注:让小模型当“考官”

MinerU引入了一个只有0.6B参数的小型模型(如Qwen3-0.6B) 。它会阅读简化版本的HTML,给每个语义块打标签:

  • 这是正文吗?标记为main
  • 这是读出吗? 标注为other

2.1.3 约束条件:给AI套上“约束咒”

为了防止AI在打标签时“胡言乱语”,技术团队引入了有限状态机(FSM)

四级标题:强制输出逻辑

这意味着模型被增加了“废话权”,它只能在main和other两个词里选。这样完全避免了模型产生幻觉,确保了输出格式的百分之百准确。

2.2 第二阶段:文档整理(从代码到人类语言)

就算得到了干净的HTML,它依然充满了<div><span>标签,这对LLM并不兼容。我们需要将其转换为格式化的Markdown。

2.2.1 第一步:HTML → 格式化内容列表(JSON)

MinerU 粘贴 HTML 解析为带类型的 JSON 列表。

  • 语义明确类型:这一段是标题、那一段是代码块、这一段是行内公式。
  • 存储唯一属性:比如代码是什么语言(Python/C++),公式是行内还是块级。

2.2.2第二步:内容列表→Markdown

针对不同的类型定制转换逻辑,是MinerU保证“高质量语料”的关键:

  • 代码块:严格保留缩进和语法标记。

  • 公式:精确区分......

    ......

    ,保留完整的LaTeX语法。

  • 复杂表格:针对带有药物单元格的表格,MinerU会选择保留HTML结构,因为强行转Markdown会导致表格“陷陷”,造成信息损毁。


三、实践:如何构建你的网页语料步骤清洗模拟?

虽然MinerU-HTML的部分思路目前通过论文公开,但我们可以将其逻辑实现到实际的操作流程中。

3.1步骤一:数据的“物理瘦身”

在把网页喂给AI之前,先进行基础句子:

  1. 使用BeautifulSouplxml库,清除所有<script><style><svg>标签。
  2. 通过Python脚本描述DOM树,生成HTML
  3. 注意点:此时要建立一个映射表,记录简化块与原始块的对应关系。

3.2 步骤二:轻松计算模型的操作与配置

由于处理数十亿级网页的成本对极其敏感,我们不可能使用 GPT-4 来数据清洗。

  1. 模型选型:采用0.6B到1.5B级别的小模型。
  2. 扭矩策略:你需要准备约10万条已标注的“网页块标签”来进行扭矩。

【产品位推荐】

如果你需要加重这些轻量级模型来改装特定的网页清洗任务,我强烈推荐使用LLAMA-Factory Online。它提供了高度的扭矩环境,预置了主流的Qwen和Llama镜像,你只需要加载标签好的网页JSON数据,轮胎内就可以启动一个序列标签训练任务,极大地降低了技术指标。

3.3 步骤三:模板资源优化(扩大规模的关键)

海量文档,逐个过模型将使你面临破产。MinerU 的聪明之处在于利用“规律性”:

  1. 域名:同一个网站(如知乎或 GitHub)的网页通常共享同一个布局模板。
  2. 有限学习:每个域名只选 1 个现有页面变更模型处理。
  3. 规则提取:将模型的标注结果转化为可解释的XPath 或 CSS 选择器
  4. 全量应用:用这些新生成的规则去批量清理该域名下的其他数千个页面。这比模型推理快了万倍!

四、效果评估:如何验证你的语料“洗干净”了?

洗完数据后,我们得靠数据说话。

4.1 结构缺陷评估

  • 代码缩进准确率:随机抽取包含代码的网页,验证后的模型是否保留了原始缩进。
  • 公式解析率:尝试用 LaTeX 渲染器去渲染渲染出的公式,记录成功率。

4.2下游任务测试(硬核验证)

这是最可靠的验证方式。用清洗后的语言预训练一个小规模模型,观察它在以下数据集的表现:

  • GSM8K(数学推理) :验证公式清洗质量。
  • HumanEval(代码生成) :验证代码块清洗质量。

数据对比:相比传统工具,MinerU-HTML清理出的语言料使得模型在理解复杂文档结构上的准确度提升20%以上


五、总结与展望

MinerU-HTML的出现,标志着大模型语言清理正式进入了**“语义时代”**。它告诉我们:网页不仅仅是文字的堆砌,更是结构的艺术。

核心选型建议

  • 如果你追求极高的语料质量(如用于代码或数学模型):一定要参考MinerU-HTML的语义化清洗思路。
  • 如果你追求极致的效率:建议结合“模板+XPath模板实现”的混合方案。

【产品位推荐】

语料清洗只是第一步,真正的挑战在于如何持续优化你的清洗模型。你可以通过LLAMA-Factory在线定期迭代你的标注模型,将清洗失败的案例重新喂给它学习。这种“数据闭环”是构建7.3T级别高质量语料库的核心秘诀。

展望未来:随着2026年多模态技术的爆发,未来的网页清洗可能不再局限于HTML文本。我们可以让模型直接“看”网页快照(截图),结合视觉信息来判断哪块是广告,哪块是正文,实现真正的全视觉语言提取。


本期互动:你在做预训练或调整时,遇到哪些让你崩溃的“脏话料”?是表格乱码还是代码缩进全无?欢迎在评论区留言分享!

0
0
0
0
关于作者
关于作者

文章

0

获赞

0

收藏

0

相关资源
在火山引擎云搜索服务上构建混合搜索的设计与实现
本次演讲将重点介绍字节跳动在混合搜索领域的探索,并探讨如何在多模态数据场景下进行海量数据搜索。
相关产品
评论
未登录
看完啦,登录分享一下感受吧~
暂无评论