OLLM如何用大模型“从零”学会分类世界
你是否想过,维基百科那套庞大的分类体系——从“科学”到“物理学”再到“量子力学”——是如何建立起来的?传统上,这需要人类专家花费大量时间手工整理。但如果有一种方法,能让AI自己从海量文档中“学会”构建这样的分类树呢?
这正是剑桥大学的研究团队在论文《End-to-End Ontology Learning with Large Language Models》中解决的问题。他们提出的OLLM方法,让大语言模型能够直接从文档中端到端地构建本体库(Ontology),就像给AI装上了一双能够自动整理知识的“手”。
什么是本体?为什么它很重要?
想象一下,你有一个巨大的图书馆,里面堆满了各种书籍。如果没有分类系统,找一本书几乎是不可能的。本体(Ontology)就是这样一个“图书分类系统”——它用结构化的方式表示知识,告诉计算机“猫是动物”、“Python是一种编程语言”这样的概念和关系。
与深度学习模型将知识“藏”在数十亿参数中不同,本体以清晰、明确的方式存储知识,让人可以编辑、理解和信任。这也是为什么从搜索引擎到人工智能系统,都离不开本体这个“骨架”。
传统方法:拆解任务,但丢了西瓜捡芝麻?
以往,自动构建本体被分解成几个独立的子任务:先发现有哪些概念,再抽取这些概念之间的关系。这种方法的问题是——每个子任务看似都做对了,但最终拼凑出的本体却质量不高。
就像你让不同的人分别画一幅画的各个部分,最后拼在一起时,很可能风格不统一、比例失调。因为子任务之间是相互影响的,分开处理会丢失这种关联。
OLLM的解决方案:让AI学会“看图说话”
OLLM的核心思想非常巧妙:不再让大模型逐个预测概念之间的关系,而是让它直接学习并生成一个“子图”——也就是文档在知识体系中的完整路径。
具体来说,每篇文档(比如一篇维基百科文章)在分类体系中都有对应的路径。例如,“金毛寻回犬”这篇文章可能对应着“动物 → 哺乳动物 → 犬科 → 金毛寻回犬”这条路径。OLLM训练大模型根据文档内容,直接预测出这样的路径列表。
那么,这里微调后的大语言模型是用于做什么的?
微调后的LLM充当了子图生成器的角色:输入是文档文本(标题和摘要),输出是该文档在目标本体中所属的路径/子图结构。它不再逐个预测实体之间的关系,而是直接建模整个子图组件,从而实现了从知识库到本体库的端到端构建。
那“子图”又该如何理解?
子图是OLLM方法中用于建模的核心单位,而非单个实体之间的关系。给定一篇文档及其关联的概念集合,相关路径定义为从根节点到这些概念的、长度不超过N的所有路径。这些路径中出现的所有节点(概念)和边(分类关系)的集合,就是该文档的相关子图。
例如,对于维基百科页面“Hybridity”,其相关路径可能包括:
Main topic classifications → Human behavior → Human activities → Culture → Sociology of cultureMain topic classifications → Humanities → Politics → Politics by issue → Politics and race
这些路径中的所有节点和边就构成了该文档的子图。相比于学习单个边,建模子图允许模型捕捉三个或更多节点之间的交互,更好地理解层级结构。
这就像让一个学生不仅学会“猫是动物”这个孤立知识点,而是理解整个知识脉络,并能够准确地说出“猫属于动物界-脊索动物门-哺乳纲-食肉目-猫科-猫属”这样的完整分类。
技术亮点:如何让AI不“偏科”?
训练过程中,研究人员发现了一个棘手的问题:大模型很容易“偷懒”,只记住那些高频出现的顶层概念(比如“科学”、“文化”),而忽略了底层具体概念(比如“量子色动力学”)。这就像学生只复习常考的大题,却忽略了细节知识点。
为了解决这个问题,OLLM提出了一种掩码损失函数——对于出现频率太高的概念,在训练时随机“屏蔽”掉一部分,让模型不能总依赖这些“安全牌”,从而迫使它去学习那些低频但重要的概念。实验证明,这个技巧显著提升了模型对新领域知识的泛化能力。
新评估指标:比“文字游戏”更聪明
如何评价一个自动生成的本体好不好?过去的方法大多依赖字面匹配——两个概念的名字完全一样才算对。但“人工智能”和“AI”明明是同一个意思,如果因为字面不同就被判错,显然不合理。
OLLM的团队提出了一套基于深度学习的新评估指标:
- Fuzzy F1:使用语义嵌入模型判断概念是否相似,而不是简单比较字符串。
- Continuous F1:解决了一对多匹配的问题,找到两个图之间最合理的边匹配。
- Graph F1:不仅看单个概念,还看概念在局部结构中的位置是否相似。
- Motif Distance:比较两个图的“小结构”(3个节点的小图)分布是否一致。
这些指标让评估更加科学——不再纠结于文字上的细节差异,而是真正衡量语义和结构上的相似性。
实验结果:惊艳的效果与迁移能力
研究团队在维基百科数据集上进行了测试,包含近14,000个概念和28,000多个分类关系。结果显示,OLLM在语义准确度上显著优于所有传统方法,包括那些被“开小灶”提供了真实概念列表的基线方法。
更令人兴奋的是OLLM的迁移学习能力:当研究人员将模型迁移到arXiv论文分类体系(一个完全不同的领域)时,只需要少量训练样本(2048个文档-子图对),OLLM就能生成质量远超其他方法的本体。它甚至能“学以致用”——把在维基百科上学到的“生命科学”、“生物进化”等概念,重新组织成适合arXiv分类体系的样式。
那么,OLLM训练了多大的模型来构建本体呢?
论文中使用的模型是Mistral 7B v0.2,即70亿参数的大语言模型。研究人员通过LoRA(低秩适配)对模型进行微调,训练成本约为12个A100 GPU小时,推理成本约为7个A100 GPU小时。这在当前的算力标准下是一个相当适中的成本,也证明了OLLM在实际问题中的可扩展性。
模型构建好后,接下来如何做?如何把大量知识输入得到分类?
OLLM的完整流程可以分为三步:
第一步:逐个文档输入,生成子图
对于知识库中的每一篇文档,将其输入给训练好的LLM,模型会输出该文档的“相关子图”——即根节点到该文档相关概念的若干条路径。每一篇文档单独推理,论文中Wikipedia实验的推理吞吐量约为每秒10篇文档。
第二步:将所有子图合并为加权图
将所有文档生成的子图累加起来,构成一个加权有向图。边的权重表示该关系在所有文档子图中出现的总次数。例如,如果“Dogs → Golden Retrievers”这个关系在1000篇文档的子图中都出现过,那么它的权重就是1000。
第三步:后处理剪枝,得到最终本体
对加权图应用一系列后处理步骤,去除噪声:
- 去除自环
- 双向边转单向(保留权重高的那条)
- 绝对阈值剪枝(删除全局权重低的边)
- 相对阈值剪枝(对每个节点,删除相对不重要的边)
- 清理孤立节点
最终得到的是一个层次化的分类树,例如:
Main topic classifications
├── Science
│ ├── Physics
│ └── Biology
├── Arts
│ └── Music
└── Society
└── Law
构建的本体是什么样子的?这算知识图谱吗?
由于目前OLLM只支持概念和分类关系(is-a关系),还不能处理更复杂的逻辑关系,所以它构建的本体是只包含概念和分类关系的简单本体,其结构可以理解为一棵带标签的有向树(或森林)。
具体来说,这种本体是什么样子的?
- 节点(Nodes):代表概念,例如“Python”、“Dynamically-typed language”、“Science”。
- 边(Edges):代表分类关系,即 is-a(是一种) 关系,例如“Python → Dynamically-typed language”(Python是一种动态类型语言)。
- 根节点(Root):一个特殊的顶层概念,代表“所有概念”。
这是一种典型的分类树(Taxonomy) 或层次分类体系,类似于维基百科的页面分类体系、arXiv论文的学科分类,或图书分类法(如杜威十进制分类法)。
那么,得到这个本体,其实就是一个知识图谱吧?
不完全等同于通常所说的知识图谱(Knowledge Graph),但两者有很强的关联。
| 特性 | OLLM输出的本体 | 完整知识图谱 |
|---|---|---|
| 节点 | 概念(抽象类别) | 概念 + 实体(具体实例) |
| 边 | 只有is-a关系 | 多种关系(part-of、caused-by等) |
| 包含实例数据 | 否 | 通常包含 |
| 典型例子 | 维基百科分类体系 | Google Knowledge Graph、DBpedia |
更准确地说,OLLM生成的是一个领域分类体系(Taxonomy/轻量级本体),它是知识图谱的骨架,但还不是一个完整的知识图谱。 如果你希望扩展成知识图谱,可以在它的基础上补充实体实例和更多类型的关系,论文在讨论未来工作时也提到了这一点。
开源与未来
好消息是,OLLM是完全开源的,代码和数据集都可以在GitHub上获取( https://github.com/andylolu2/ollm )。这意味着任何研究者或开发者都可以基于此方法构建自己的自动知识分类系统。
当然,这项技术也有局限——目前只支持概念和分类关系(is-a关系),还不能处理更复杂的逻辑关系。但正如论文作者所说,未来可以通过扩展线性化模板来支持更多类型的关系(如part-of、caused-by等),甚至可以利用视觉语言模型从包含图片的文档中构建本体。
总结
OLLM向我们展示了一个令人振奋的前景:大语言模型不仅能够“理解”知识,还能主动“整理”知识,构建出人类可读、可编辑、可信任的结构化知识体系。这或许正是通往更强大、更可靠人工智能的必经之路。
下次你浏览维基百科的分类体系时,不妨想一想:也许有一天,类似的分类系统就是由AI自动构建的。而OLLM,正是这趟旅程中坚实的一步。
附录:读者问答(Q&A)
Q1:使用OLLM可以直接把知识库构建成为本体库吗?
是的。OLLM是一种端到端的方法,输入是一组文档(知识库),输出是一个结构化的本体库。论文在Wikipedia和arXiv两个数据集上验证了这一点,证明了从非结构化文档集合直接转化为结构化本体库的可行性。
Q2:OLLM有开源吗?
有的。论文提供了完整的源代码和数据集,开源地址为:https://github.com/andylolu2/ollm
Q3:OLLM构建的本体只有is-a关系,这在实际中够用吗?
对于很多场景来说,一个干净的层次分类体系已经足够实用了。例如维基百科分类体系、arXiv论文分类、电商商品分类等,本质上都是只有is-a关系的分类树。如果需要更复杂的逻辑关系(如part-of、caused-by等),可以在OLLM生成的骨架基础上进行扩展。
Q4:我可以用自己的数据来训练OLLM吗?
可以。论文展示了OLLM的迁移学习能力——在维基百科上训练好的模型,只需要少量arXiv样本(2048个)就能适应新领域。你需要准备的是:一组文档(标题+摘要),以及每个文档在目标本体中的分类路径标注。

浙公网安备 33010602011771号