Introduction
将大模型的参数扩展至数十亿数量级、训练万亿级的语料库,在许多任务上都展现出了惊人的能力。然而在利用大模型进行生产活动时出现了一些困难:
-
Inflexibility. 大模型常常出现知识过时的现象,对于参数更新也不够灵活。而微调大模型则非常棘手,因为无论是收集高质量的训练数据还是建立训练流水线花费都很高昂。甚至会出现灾难性遗忘的问题。
-
Hallucination. 众所周知,大模型常常会产生看似正确实则错误的输出。对于医疗诊断等高风险的领域,这一问题非常严重。
-
Transparency. 大模型的黑盒本质直接导致其工作时的不透明性。其知识隐含在参数中,难以进行验证。且在深度神经网络中,推理过程难以解释。
而知识图谱可以提供明确的知识表示和可解释的推理路径,并且能够进行修改和添加知识。目前已有工作将知识图谱三元组添加到大模型的训练过程中,或将知识图谱编码与大模型进行结合,对图结构与文本数据及性能联合推理和优化。本文侧重于使用知识图谱与固定大模型进行协同推理。
Contribution
本文提出了一种即插即用的提示方法,增强了大模型在知识图谱上的推理能力。本文的方法称为思维图,大模型根据知识图谱构建思维图,理解图输入。(1)将知识图谱检索得到的事实与大模型本身的隐式知识进行融合。(2)挖掘知识图谱输入中的新模式。(3)基于思维图推理从而得到最终输出。
Background
-
Retrieval - Augmented LLM Inference. 检索增强生成(Retieval Augmented Generation, RAG)帮助大模型检索相关文档进行推理,但是由于检索的精确性、长文档理解能力问题,会影响RAG的工作效率。有工作尝试将提取出的知识图谱三元组作为提示帮助大模型回答相关问题。但是这种方法将知识图谱输入简单地作为文本,忽视了图谱本身的图结构信息,很可能引起幻觉。
-
Graph Mining with LLMs. 有工作对大模型进行提示,使其理解图输入,但主要是进行了图挖掘任务,例如链接检测和图总结等。但是很少有工作探索文本生成的任务,这些任务需要基于知识图谱的多个证据子图进行复杂推理。
-
Prompt Enginerering. “预训练、提示和预测”已成为自然语言处理少样本甚至零样本的经典范式。通过一定的上下文学习,大模型能够根据输入的上下文和指令解决新的任务。然而当提示文本过长时,大模型难以获取文本中间部分的知识,从而出现幻觉现象。
-
Knowledge Graph Augmented LLM. 利用知识图谱增强大模型的主流方向目前有两个:(1)将知识图谱融入大模型预训练阶段。(2)将知识图谱作用于大模型推理阶段。对于(1),常见的做法是把知识图谱的实体、关系作为训练数据作为训练目标,或是进行一些知识图谱的链接预测任务。但是增加预训练数据量,乃至万亿级的单词是难以实现的,也没有知识图谱具有这样的规模。而且将图谱知识压缩为大模型的参数并没有减轻大模型在灵活性、可靠性和透明度方面的限制。对于(2),有工作通过注意力机制将事实三元组加入大模型的输入,或是结合图编码与大模型编码来处理图谱输入。许多方法允许大模型理解图输入,但它们要么专门针对图谱任务,要么将检索到的事实翻译成纯文本,忽略了图谱的结构。
Method
MindMap的框架包含三个模块:
-
Evidence graph mining. 根据原始输入识别实体集合,并查询知识图谱,构建多个证据子图。
-
Evidence graph aggregation. 随后提示大模型理解并聚合得到的证据子图并构建推理图。
-
LLM reasoing on the mind map. 最后提示大模型融合推理图和自身知识生成答案,并根据推理过程构建思维图。
Step I: Evidence Graph Mining
Entity Recognition
首先用大模型识别查询中的关键实体。具体而言,会使用一个提示,包含三个部分:需要分析的问题、模板句子“额外的实体为:”以及两个示例。
随后用BERT相似度匹配实体与关键词。具体而言,分别对LLM中的关键词实体和外部知识图谱的实体编码为密集嵌入和,随后计算它们之间的余弦相似度。对于每个关键词,获取一个相似度分数最高的实体集,该实体集被用于构造证据子图。
Evidence Sub-graphs Exploration
首先定义外部知识图谱为,分别表示实体集、关系集和文本集。根据提取到的实体集构建证据子图。本文使用了两种方法构建证据子图:
(1)基于路径来连接查询中的重要实体(DFS)。通过探索与V中选定节点相连的k跳节点形成路径段,重复这一过程直到所有路径段都相连为止,得到了一组路径子图.
(2)基于邻居连接与查询高度相关的实体(BFS)。对于查询实体集合中的每个节点,对其进行1跳邻居节点,对于新找到的邻居节点,如果它与查询相关,则继续进行1跳邻居扩展,加入到邻居证据图集合中。
探索结束后,更新实体集,将桥连路径中的中间节点加入其中。为了管理信息、保持多样性,对路径图、邻居图通过聚类、基于头实体采样子图等方式删除部分子图。最后得到最终的证据子图,优化信息、保持多样性。
Step II: Evidence Graph Aggregation
指导LLM融合不同的证据子图,得到一个统一推理图,该推理图一旦完成构建就成为了外部的增强知识,作用于下一步骤,也就是对所有的证据子图提供一个整体视角,来增强输出生成过程。
首先提取k张路径子图、k张邻居子图,每张图表示查询实体间的一种可能连接。随后将子图转换成实体链的形式。例如,然后为每个实体链分配一个序列号,例如,随后提示LLM将这些实体链转换成自然语言描述。两大优势:(a)将子图简化为一个准确、一致的格式并且能够获取重要信息。(b)利用大模型的自然语言理解能力、生成能力来统一语义相似的实体、避免了潜在的歧义。
Step III: LLM Reasoning with Mind Map
Prompting for Graph Reasoning
为了生成思维图和最终结果,向大模型输入一段提示,包含五个部分:系统指令、查询问题、推理图,图思维指令和示例。图思维提示利用Langchain技术引导大模型理解并增强输入,建立推理思维图并为知识源建立索引。
Synergistic Inference with LLM and KG Knowledge
先前的检索增强方法只是令大模型改写相关知识而并未利用自身的能力。本文的MindMap方法能使得大模型利用自身知识与证据图进行协同推理。体现在三个方面:
(1)语言理解。大模型能够以一种自然语言方式理解并提取推理图和查询问题的知识。
(2)知识推理。大模型能消除实体间的歧义并根据思维图生成最终答案。
(3)知识增强。大模型能够利用自身的知识对新相关知识进行扩展、连接和提升。
Experiments
本文在三个医学领域数据集上进行问题回答,包含大量的复杂推理以及专业知识。
Evaluation Metrics
本文采用了三个评价指标:BERTScore,GPT-4 Rating_和_Hallucination Quantification。
_BERTScore_用于衡量生成答案与参考答案的语义相似度。
GPT-4 Rating*根据生成答案的质量进行排名、根据四个原则进行两两对比:
-
response diversity and integrity:答案多样性与完整性
-
overall factual correctness:总体事实正确性
-
correctness of disease diagnosis:疾病诊断正确性
-
correctness of drug recommendation:药物推荐正确性
_Hallucination Quantification_用于计算生成答案与正确答案的偏离程度。本文基于mT5-large训练一个关键字提取模型,将不同方法得到的最终输出送入该模型得到对应的关键词列表。根据列表计算tfidf相似度分数,分数越低表示幻觉程度越高。
Results
Ablation Study
本文对子图抽取方法进行了消融分析,对于涉及医学查询的任务,基于路径的方法能更好地找到相关的外部信息。结合基于路径和邻居的方法能够有效减少幻觉现象。
Case Comparison
当问题包含误导性的症状事实,例如,眼球黄疸导致基准模型检索与“眼睛”相关的知识。这导致无法识别正确的疾病,推荐药物和测试与肝脏疾病无关。相比之下,本文模型 MindMap 准确识别了“肝硬化(cirrhosis)”并推荐相关的“血检”。展示了方法的鲁棒性。
Case Example
如何学习大模型 AI ?
由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。
但是具体到个人,只能说是:
“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。
这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。
我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。
我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。
第一阶段(10天):初阶应用
该阶段让大家对大模型 AI有一个最前沿的认识,对大模型 AI 的理解超过 95% 的人,可以在相关讨论时发表高级、不跟风、又接地气的见解,别人只会和 AI 聊天,而你能调教 AI,并能用代码将大模型和业务衔接。
- 大模型 AI 能干什么?
- 大模型是怎样获得「智能」的?
- 用好 AI 的核心心法
- 大模型应用业务架构
- 大模型应用技术架构
- 代码示例:向 GPT-3.5 灌入新知识
- 提示工程的意义和核心思想
- Prompt 典型构成
- 指令调优方法论
- 思维链和思维树
- Prompt 攻击和防范
- …
第二阶段(30天):高阶应用
该阶段我们正式进入大模型 AI 进阶实战学习,学会构造私有知识库,扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架,抓住最新的技术进展,适合 Python 和 JavaScript 程序员。
- 为什么要做 RAG
- 搭建一个简单的 ChatPDF
- 检索的基础概念
- 什么是向量表示(Embeddings)
- 向量数据库与向量检索
- 基于向量检索的 RAG
- 搭建 RAG 系统的扩展知识
- 混合检索与 RAG-Fusion 简介
- 向量模型本地部署
- …
第三阶段(30天):模型训练
恭喜你,如果学到这里,你基本可以找到一份大模型 AI相关的工作,自己也能训练 GPT 了!通过微调,训练自己的垂直大模型,能独立训练开源多模态大模型,掌握更多技术方案。
到此为止,大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗?
- 为什么要做 RAG
- 什么是模型
- 什么是模型训练
- 求解器 & 损失函数简介
- 小实验2:手写一个简单的神经网络并训练它
- 什么是训练/预训练/微调/轻量化微调
- Transformer结构简介
- 轻量化微调
- 实验数据集的构建
- …
第四阶段(20天):商业闭环
对全球大模型从性能、吞吐量、成本等方面有一定的认知,可以在云端和本地等多种环境下部署大模型,找到适合自己的项目/创业方向,做一名被 AI 武装的产品经理。
- 硬件选型
- 带你了解全球大模型
- 使用国产大模型服务
- 搭建 OpenAI 代理
- 热身:基于阿里云 PAI 部署 Stable Diffusion
- 在本地计算机运行大模型
- 大模型的私有化部署
- 基于 vLLM 部署大模型
- 案例:如何优雅地在阿里云私有部署开源大模型
- 部署一套开源 LLM 项目
- 内容安全
- 互联网信息服务算法备案
- …
学习是一个过程,只要学习就会有挑战。天道酬勤,你越努力,就会成为越优秀的自己。
如果你能在15天内完成所有的任务,那你堪称天才。然而,如果你能完成 60-70% 的内容,你就已经开始具备成为一名大模型 AI 的正确特征了。