现阶段本体论和知识图谱出现的频率越来越高,但我看很多文章的讲解似乎没太说到精髓,所以今天我尝试结合过往经历,把这个事情聊得更具体点。
首先,要说明的是本体论和知识图谱出现的时间早在大模型之前,只不过之前一直运行得不好罢了。
为什么呢?答案很简单:成本太高了!
无论本体论还是知识图谱都是一种非常**“精细而脆弱”**的技术,举个例子:
第一,当时做实体链接是已经很困难的事情,比如苹果这个词到底是水果还是公司,需要很多规则维护,而实际使用文本稍微变一点点,比如 iPhone、苹果手机,这种人类看得懂规则看不懂的东西出现,规则就会崩。
一句话来说就是:当时从技术上要做到最简单的语义泛化是非常难的,这里大家可能有点无法理解,我再举个例子:
在大模型之前我们如果做微信群维护,需要大家将昵称固定位:昵称-城市-岗位的方式,想要靠程序去搞定就一定做不到,而且你不能说他们的“表达”就一定错,比如:
- 昵称_城市_岗位;
- 昵称@城市-岗位;
- 城市-昵称-岗位
- …
这些规则连初中生都可以识别,但程序就是不行,无论你怎么写规则、怎么做正则表达式都做不到,虽然做不到完全覆盖,但这里会写非常多的规则,这些规则就是巨大的成本。
第二,当时做关系抽取时候,也是全靠语料标注 + 传统SVN,这种东西成本巨高,而且换个行业还可能用不了;
第三就是更新成本了,当时做本体构建的时候,需要靠领域专家去手工画图,一个中型企业的本体就可能搞几个月,但业务一更新这套东西就全完蛋;
所以,无论是知识图谱还是本体论,在当时都是高端玩意儿,一般公司根本玩不起,甚至大公司都做得费劲,比如IBM Watson就投入了大量资源,但最终却以失败告终。
综上,无论本体论还是知识图谱,其实已经到了一筹莫展的地步,他们想要表征真实的世界,最好发现技术路径上做不到,再高的成本都费劲,这一切在大模型这个技术到来后发生了变化。
大模型、本体和图谱
当前大模型解决了很多问题,或者说他在大部分时间都是对的,但这也只能说他是一个好的概率模型,这种**“单词接龙”**的架构在底层就决定了他一定会有幻觉。
AI 智能体最大的短板在于缺乏对业务实质的理解。没有明确的语义、本体和知识图谱作为支撑,智能体只能依靠概率去猜测数据关联。
而对于这种底层就可能出错的场景,对于错一次就赔钱的企业来说,是不可接受的。因为我能接受确定性的错误,我很难接受不确定性的错误,恐惧来源于未知的错误,没有公司愿意埋明显的雷。
而大模型自己搞不定的点,却是本体论和知识图谱擅长的点:让猜测变成更确定,让整个模型推理具有完整而严谨的逻辑链:
故事还不止于此,这里只说了本体、图谱对模型的意义巨大,但反过来模型对本体和图谱的意义更加巨大,可以说没有模型,这两个技术依旧出不来。
我们第一段说了,本体和图谱维护成本奇高:
- 本体设计需要专家纯手工设计,人工成本高还难以迁移;
- 实体识别和关系抽取是规则堆出来的,换个领域大概率就崩了;
- 图谱填充和更新也是全靠人工往里灌;
而大模型的出现让这一切完全变了:上述所有的事项,模型都可以参与,并且做得很好,完全可以做到 AI 给出第一个版本答案,让行业专家去审稿,就我之前实际经历来说,这个成本可以下降 1/4 到 1/10,比较夸张的时候可以达到 1/20!
所以,大模型让本体和知识图谱的构建变简单了,而且简单了不止一个数量级!
在这个基础下,我们再来聊聊图谱和本体的关系,因为严格来说他们是两个东西:
知识库的发展
当前知识库经过了几轮发展:
第一个阶段,也是最初的阶段是大模型解决了语义理解。
传统搜索靠关键词匹配,“网络很卡"匹配不上"高延迟丢包”。大模型能理解语义关联,还能组织成自然语言答案。
但模型的参数知识有三个硬伤:没私有数据、更新得重训、答案来源说不清,所以第一步是引入外部知识:
阶段二是将长上下文直接把文档塞进去。
这个阶段现在很多同学还在玩:几十页资料,全塞模型。
但资料一多,问题就来了:成本高、无关内容干扰、关键信息被淹没、多份文档互相冲突、模型容易忽略中间部分。
所以需要先找相关资料,再给模型,于是就进入了下个阶段:
阶段三:基础 RAG,切块、向量化、召回 Top-K。
这个阶段开始着眼解决大量私有资料的使用问题,这也是最初 AI 客服的技术基石,但复杂度再往上升,RAG的五个短板暴露出来:
- 切块割裂关系;
- 相似度 ≠ 业务关联;
- 没有稳定身份;
- 答不了全局问题;
- 判断不了业务状态;
于是乎这里又有一次升级:
阶段四:生产级能力补足。
遇到上述问题后,混合检索、Rerank、父子文档、元数据过滤等方案就来了,但随着业务越来越复杂,我们会发现数据和数据之间有关系,于是就不得不进入知识图谱阶段。
知识图谱
知识图谱和知识库非常相似,可以说**知识图谱是知识库的一种有机表现形式。**在逻辑上,知识库通过关系链的建立能够形成图谱结构。
具体来说,知识库是对各种知识的组织、存储和管理,而知识图谱则是在此基础上通过图的结构(实体、关系和属性)来呈现知识的内在联系和结构。
知识图谱通常包括三大元素:
- **实体(Entities):**即图中的节点,代表真实世界中的事物、概念等(如人、地点、物品、概念、类别)。
- **关系(Relations):**实体之间的连接或联系,描述实体之间的互动。
- **属性(Attributes):**描述实体或关系的特征信息,如一个实体的具体属性值。
通过这种标准化的表示形式,知识图谱不仅能够展示实体之间的关联,还能够进行语义分析,帮助计算机理解和推理这些关系。
它为我们提供了一种更加直观、结构化的方式来管理和呈现知识库中的信息。
更粗暴的理解可以是:图谱就是强制将知识库按照实体、关系、属性的标准做结构化,两者间界限很模糊
为方便理解给一个案例,首先是没有关系的知识库:
疾病: { 名称: "糖尿病", 类型: "慢性疾病", 并发症: ["心血管疾病", "肾脏病", "神经损伤"]}症状: [ { 名称: "口渴", 常见疾病: "糖尿病" }, { 名称: "频繁排尿", 常见疾病: "糖尿病" }, { 名称: "体重下降", 常见疾病: "糖尿病" }, { 名称: "疲劳", 常见疾病: "糖尿病" }]药物: { 名称: "胰岛素", 类型: "药物", 用途: "控制血糖", 使用方法: "注射"}然后是有关系的知识图谱:
实体: [ 疾病("糖尿病"): { 类型: "慢性疾病" }, 并发症("心血管疾病"): {}, 并发症("肾脏病"): {}, 并发症("神经损伤"): {}, 症状("口渴"): { 常见疾病: "糖尿病" }, 症状("频繁排尿"): { 常见疾病: "糖尿病" }, 症状("体重下降"): { 常见疾病: "糖尿病" }, 症状("疲劳"): { 常见疾病: "糖尿病" }, 药物("胰岛素"): { 类型: "药物", 用途: "控制血糖", 使用方法: "注射" }]关系: [ (疾病("糖尿病") - 表现为 -> 症状("口渴")), (疾病("糖尿病") - 表现为 -> 症状("频繁排尿")), (疾病("糖尿病") - 表现为 -> 症状("体重下降")), (疾病("糖尿病") - 表现为 -> 症状("疲劳")), (疾病("糖尿病") - 引发 -> 并发症("心血管疾病")), (疾病("糖尿病") - 引发 -> 并发症("肾脏病")), (疾病("糖尿病") - 引发 -> 并发症("神经损伤")), (疾病("糖尿病") - 治疗 -> 药物("胰岛素"))]PS:上述只是为了便于各位理解图谱是什么,真实的情况会更复杂,但大体是这么个意思
比如常见的贝叶斯预测:P(糖尿病|多饮+多尿) = P(多饮|糖尿病) x P(多尿|糖尿病) x P(糖尿病) / P(多饮+多尿)
在大模型时代,当前模型对于根据症状推导常见疾病已经非常擅长,但是依旧会由于幻觉有各种问题,于是出现类RAG技术,比如:
输入:咳嗽 + 呼吸急促 + 发热 + 胸痛图谱推理路径:症状 → 咳嗽、呼吸急促、发热、胸痛症状 → [常见疾病类别] → 呼吸系统疾病可能的疾病:肺炎、支气管炎、慢性阻塞性肺疾病(COPD)进一步筛查 → [检查指标] → 血氧饱和度、白细胞计数、胸部影像如果胸部影像显示肺部浸润阴影,高度怀疑肺炎或肺结核影像学特征差异 → [不同疾病影像学差异] → 肺炎(浸润阴影) vs 肺结核(钙化灶)若影像学表现为浸润阴影,进一步考虑细菌性肺炎最终诊断 → [关联知识库] → 确定细菌性肺炎可能性若有相关临床史(如吸烟史、基础疾病),可能进一步确定为慢性阻塞性肺疾病合并肺炎。综上,大模型其实就是我们所谓的快思考而知识图谱(知识库)就是我们所谓的慢思考了,在快慢结合下,医疗AI的答案将更为靠谱。
但到这里还不算结束,知识图谱把实体连起来了,但它回答不了**这个连接在业务上是什么意思。**举个例子:
腹泻 ——相关→ 脱水腹泻 ——相关→ 口服补液盐口服补液盐 ——相关→ 严重脱水患者三条都是正确的医学事实。但如果所有关系都叫相关,系统只知道这三样东西有关联,却区分不了:
- 腹泻表现为脱水,是症状关系
- 腹泻使用口服补液盐治疗,是治疗关系
- 口服补液盐禁忌于严重脱水患者,是禁忌关系
换句话说,知识图谱能把事实连成网,但不告诉机器这些连接怎么理解、怎么组合、怎么冲突。
这个问题的根源在于:
- 图谱定义了实例,腹泻、补液盐、脱水都是具体的东西;
- 但没有定义类型和关系语义,什么是疾病、什么是症状、什么是药物;
- 什么是表现、什么是治疗、什么是禁忌;
PS,这里有个主意点:医疗多数数据已经被内化进了模型,所以他大概率是知道这里的问题的,但如果用知识图谱去构建企业级的其他知识,那么模型就不会知道了
我这边使用医疗的案例主要原生是他简单,并且大家都有感知,我如果用企业案例,大家理解起来会很费劲
而这些类型和关系语义,恰恰是推理的前提。没有它们,AI 看到的只是一堆带标签的节点和边,做不了判断。
所以,在知识图谱之上,需要再加一层定义:这个领域里有哪些类型的事物、它们之间允许什么类型的关系、什么组合是合法的、什么情况是矛盾的。
这层定义,就是本体论。
这里稍微夸张的描述是:只要加了足够的说明,其实知识图谱完成的工作和本体差不多,比如我们做医疗场景的时候只是构建了连接,但模型自己内置了大量医疗信息,完全可以补足 AI 欠缺的知识
本体论
知识图谱已经把关系写清楚了,本体继续定义关系的准确含义、适用范围和推理边界。
下面用一个更严谨的案例来展开,知识图谱可以做到关系命名清晰,比如:
糖尿病 ——表现为→ 多饮糖尿病 ——表现为→ 多尿胰岛素 ——用于治疗→ 糖尿病糖尿病 ——可能并发→ 肾脏疾病同时,患者事实也能正常记录:
张三 ——出现→ 多饮张三 ——出现→ 多尿关系名字已经写清楚了,但 AI 仍然面临三个问题:
问题一:能否根据多饮、多尿直接推出张三患有糖尿病?
不能。因为疾病表现为症状不能随意反向推导成出现症状就患有疾病。
问题二:如果张三被确诊为糖尿病,能否直接推荐胰岛素?
不能。因为药物用于治疗某种疾病不代表适用于该疾病的每一个类型、每一个阶段、每一位患者。
问题三:张三患有糖尿病,能否直接判断他已经并发肾脏疾病?
不能。因为可能并发描述的是风险关系,不能直接转化为某位患者已经发生的事实。
所以,问题已经超出了实体有没有连起来。系统还需要知道:
- 糖尿病属于疾病,多饮属于症状,胰岛素属于药物
- 表现为能否反向推导
- 可能并发代表可能性还是确定事实
- 用于治疗需要满足什么前提
- 哪些关系可以继承,哪些不能传递
知识图谱记录了关系叫什么、连接了哪些对象;AI 还需要一套公共定义,说明这些类型和关系应该怎样理解、怎样组合,以及推理可以走到哪里。
这套公共定义,就是本体。
什么是本体?
本体是一套针对特定领域的公共语义模型,它明确规定:
- 这个领域中有哪些类型的对象;
- 对象之间允许建立什么关系;
- 每种关系代表什么;
- 哪些推导成立、哪些推导存在矛盾;
这里继续用糖尿病案例:
【类型】疾病、症状、药物、患者【具体概念】糖尿病:疾病多饮:症状胰岛素:药物【患者实例】张三:患者知识图谱主要保存具体事实,本体主要定义这些事实采用什么语义结构。
本体定义了哪些内容?
本体定义了四样东西:
1. 类型
本体首先回答这是什么:糖尿病属于疾病,多饮属于症状,胰岛素属于药物。
2. 类别层级
本体还要回答它属于哪一类:
疾病└── 代谢性疾病 └── 糖尿病 ├── 1型糖尿病 ├── 2型糖尿病 └── 妊娠期糖尿病**PS:**这里要注意了,我们在实际实体构建过程中,这个部分的内容是最难最难的,
包括医疗场景这块都非常难
这样系统可以推出:张三被诊断为1型糖尿病 → 张三患有糖尿病 → 张三患有代谢性疾病。但不能反向推出:张三患有糖尿病 → 张三一定患有1型糖尿病。
为什么会这样设计,大家这里要理解下,因为这里很多表现会具备继承的关系,便于我们做收敛,至于什么是收敛,这个就涉及敏感课程信息了,大家可以下来联系
3. 关系
本体规定哪些类型之间可以建立什么关系,最关键的是区分疾病层面的通用知识和患者层面的实际事实:
- 糖尿病表现为多饮:疾病层面的通用关系
- 张三出现多饮:患者层面的观察记录
有了这个区分,系统才不会把疾病可能表现为什么直接当成患者已经被诊断为什么。
PS:这里再强调下,在医疗领域模型没这么白痴,是因为所有数据都内化进模型了,但企业场景里面黑话那么多,大概率会的
4. 约束与边界
本体还会规定关系两端的类型限制,例如“出现症状”的起点必须是患者、终点必须是症状。如果大模型抽取出血糖检查出现多饮,系统可以发现类型错误。
更重要的是,本体决定哪些结论可以推出,哪些不能:
- 1型糖尿病属于糖尿病 → 张三被诊断为1型糖尿病 → 张三患有糖尿病,继承成立
- 出现多饮、多尿 → 确诊糖尿病,反向推导不成立,只能说是有概率
- 胰岛素可以治疗糖尿病 → 所有糖尿病患者都应该使用胰岛素,关系泛化不成立,还要分期分级
本体不仅帮助机器推出新知识,也帮助机器知道哪些结论不能随意推出。
知识图谱和本体论的关系
至此,大家对于图谱和本体的关系应该也非常清晰了:
知识图谱是业务事实的数据层,本体是约束这些事实如何表达、如何解释、如何推理的语义层。应用系统再基于二者完成检索、判断和执行
关于如何落地本体论这块,篇幅有限今天就不展开了,感兴趣同学可以下来联系,这个板块其实复杂度有点高…
安全是最大的奢侈
IBM Watson 当年投入巨资做 CDSS,最终没能跑通,核心原因就一句话:代价太高了。
为了保证诊断不出错,专家要手工定义疾病、症状、药物之间密密麻麻的关系,还要说清楚哪些结论能推、哪些不能推、哪些知识已经过期。
系统越接近真实医疗,这套知识工程就越庞大、越脆弱。最后连 IBM 都扛不住,这套东西贵到只有少数体系付得起。
大模型来了之后,事情确实起了变化,这东西泛化能力起来了,它能听懂:
- 胸口沉甸甸的像压了块石头其实是指胸闷;
- 也能抽取出胸痛放射至背部这种关键信息;
语义理解的成本骤降,IBM Watson 想做而没做成的事,今天有了重新落地的可能。
大模型补上了语义理解这块短板,本体和图谱的构建成本也从专家纯手工降到了AI 出初稿、专家来审稿。曾经只有巨头才敢碰的知识工程,正在变得触手可及。
综上:大模型把获取知识变便宜了,本体和图谱把使用知识变安全了。
学AI大模型的正确顺序,千万不要搞错了
🤔2026年AI风口已来!各行各业的AI渗透肉眼可见,超多公司要么转型做AI相关产品,要么高薪挖AI技术人才,机遇直接摆在眼前!
有往AI方向发展,或者本身有后端编程基础的朋友,直接冲AI大模型应用开发转岗超合适!
就算暂时不打算转岗,了解大模型、RAG、Prompt、Agent这些热门概念,能上手做简单项目,也绝对是求职加分王🔋
📝给大家整理了超全最新的AI大模型应用开发学习清单和资料,手把手帮你快速入门!👇👇
学习路线:
✅大模型基础认知—大模型核心原理、发展历程、主流模型(GPT、文心一言等)特点解析
✅核心技术模块—RAG检索增强生成、Prompt工程实战、Agent智能体开发逻辑
✅开发基础能力—Python进阶、API接口调用、大模型开发框架(LangChain等)实操
✅应用场景开发—智能问答系统、企业知识库、AIGC内容生成工具、行业定制化大模型应用
✅项目落地流程—需求拆解、技术选型、模型调优、测试上线、运维迭代
✅面试求职冲刺—岗位JD解析、简历AI项目包装、高频面试题汇总、模拟面经
以上6大模块,看似清晰好上手,实则每个部分都有扎实的核心内容需要吃透!
我把大模型的学习全流程已经整理📚好了!抓住AI时代风口,轻松解锁职业新可能,希望大家都能把握机遇,实现薪资/职业跃迁~