近年来,RAG(Retrieval-Augmented Generation,检索增强生成)技术在人工智能领域掀起了一股热潮。随着大模型的快速发展,传统的纯生成式方法在面对复杂、多变的信息需求时,往往面临上下文有限、事实准确性不足等挑战。而RAG通过结合信息检索(Retrieval)与文本生成(Generation)两大核心能力,使模型能够在实时获取外部知识的基础上生成更精准、可信的内容。这一技术不仅提升了AI的回答质量,还在搜索引擎、智能助手、企业知识管理等多个应用场景展现出了巨大潜力。因此,RAG正成为众多企业和研究机构竞相探索的热点,推动着AI技术迈向更智能、更可靠的未来。

然而,RAG 存在诸多问题:例如,其向量相似度与知识推理相关性之间存在较大差距,对知识逻辑(例如数值、时间关系、专家规则等)不敏感,从而阻碍了专业知识服务的实施。

你能想象吗?假设你有一个聊天机器人,它需要基于知识碎片之间的特定关系进行推理,以收集与回答问题相关的信息。然而,RAG 通常依赖文本或向量相似度来检索参考信息,这可能导致搜索结果不完整且重复。

这正是 KAG 发挥作用的地方。知识增强生成(Knowledge Augmented Generation)旨在充分利用知识图谱和向量检索的优势,并双向提升大模型与知识图谱,从而解决这些问题。

基于语义推理的知识对齐使得 KAG 在多跳问答任务中明显超越了 NaiveRAG 和 HippoRAG 等方法,在 hotpotQA 数据集中 F1 分数相对提升了 19.6%,在 2wiki 数据集中提升了 33.5%。

图片

这些性能的大幅跃升主要归功于框架中更高效的索引构建、知识对齐及混合问题求解库的开发。详细可查看https://arxiv.org/abs/2409.13731

什么是 KAG

图片

知识感知图生成器(KAG)框架是开源的,充分利用了知识图谱与 RAG 技术的互补优势。它不仅将图结构集成到知识库中,还将知识图谱内的语义类型、关系以及知识图谱问答(KGQA)整合到 KAG 中。

特点

知识感知图生成器(KAG)框架具备以下几个关键特性,使其在专业场景下的问答表现更为优越

  1. 适应大模型的知识表示:

     KAG 采用了一个(LLMFriSPG)系统,能与大模型(LLMs)良好协同,帮助 LLM 理解数据、信息与知识,从而更易于利用知识图谱。  

    图片

      

  2. 互索引

     该框架通过互索引将知识图谱与原始文本连接在一起,帮助更轻松地查找和整理信息,将结构化知识与非结构化文本有效衔接。

    图片

        

  3. 基于逻辑形式引导的混合推理引擎

     KAG 拥有一个融合规划、检索与数学计算等多种推理方式的推理引擎。它能够将自然语言问题转换为解决问题的结构化步骤,从而更擅长处理复杂问题。

  4. 基于语义推理的知识对齐

     KAG 利用语义推理将知识与用户问题进行匹配,确保信息符合上下文,与用户需求保持一致,从而提高答案的准确性。

  5. 改进的自然语言处理

     框架在理解、推理和生成语言等基础任务上进行了优化,帮助 KAG 更好地理解问题、深入思考并生成清晰的答案。

工作原理

图片

如上图所示,KAG 架构包括三个核心组件:KAG-Builder、KAG-Solver 和 KAG-Model。

• KAG-Builder 负责构建离线索引。该模块提出了一种与大模型兼容的知识表示框架,并在知识结构与文本碎片之间实现了互索引机制。
• KAG-Solver 引入了基于逻辑形式引导的混合推理引擎,整合了大模型推理、知识推理及数学逻辑推理。它采用语义推理进行知识对齐,从而提升 KAG-Builder 与 KAG-Solver 在知识表示及检索方面的准确性。
• KAG-Model 则基于通用语言模型,对各个模块所需的特定能力进行优化,从而提升整体性能。

KAG 与 GraphRAG 的比较

KAG 与 GraphRAG 主要在整合和推理能力上存在差异。KAG 通过整合语义关系并采用混合推理引擎来处理逻辑、检索和数值任务,充分发挥知识图谱(KG)的作用,实现结构化且复杂的问题求解。它通过改进语义对齐及定制化的自然语言理解、推理和生成来增强大模型在专业领域的能力。

相比之下,GraphRAG 更注重检索与生成,对语义推理、逻辑规划和领域特定性能关注较少,这可能限制其在处理复杂查询和专业应用中的效果。

实操

KAG 图形后端服务基于我们之前讨论过的 OpenSPG 知识图谱构建框架。首先,根据官方 OpenSPG-Server 服务器文档构建图服务器服务。

打开终端并运行以下命令(需要具备docker环境)


1curl -sSL https://raw.githubusercontent.com/OpenSPG/openspg/refs/heads/master/dev/release/docker-compose.yml -o docker-compose.yml

2

然后,检查服务是否已启动并运行,执行以下命令:


1 docker compose -f docker-compose.yml up -d

为确保一切正常运行,请检查主服务日志,执行命令:


1docker logs -f release-openspg-server

2

复制 http://127.0.0.1:8887/ 并将其粘贴到浏览器中,以访问 openspg-kag 产品界面。

图片

创建知识库

点击“创建知识库”,首先为知识库选择一个中文名称。接着,你需要输入一个英文名称——请记住,英文名称必须以大写字母开头,至少包含三个字符,并且仅包含字母和数字。在文本中,我将命名为 “KAG论文”。

图片

之后,设置图存储配置。复制以下简单的 JSON 配置,默认使用本地 Neo4j 数据库


1{

2  "uri": "neo4j://release-openspg-neo4j:7687",

3  "user": "neo4j"

4}

5

接下来,进入模型配置。选择一个模型,如 ChatGPT 或 DeepSeek,在 JSON 格式中输入你的 API 密钥及其他详细信息


1{

2  "type": "maas",

3  "base_url": "https://api.deepseek.com",

4  "api_key": "deepseek api key",

5  "model": "deepseek-chat"

6}

对于嵌入,我将使用硅基流动的免费api,可以通过https://cloud.siliconflow.cn/i/CrQNvgcQ注册。你也可以选择 Ollama 进行嵌入,因为它有一些非常不错的嵌入模型。


1{

2    "type": "openai",

3    "model": "BAAI/bge-m3",

4    "base_url": "https://api.siliconflow.cn/v1",

5    "api_key": "YOUR_API_KEY",

6    "vector_dimensions": "1024"

7}

最后,为你的知识库设置语言——可以选择中文(zh)或英文(en),我将保持默认


1{

2  "biz_scene": "default",

3  "language": "en"

4}

5

保存配置成功后,你会看到一个包含知识管理和问答功能的小窗口,如下所示。

图片

如果保存配置未成功,你可能会遇到我在安装 Neo4j 时遭遇的未知错误。解决该问题的方法很简单:检查 release-openspg-neo4j 是否成功启动,然后重新运行容器:

图片


1docker logs release-openspg-neo4j

2docker start release-openspg-neo4j

聊天机器人演示

点击“知识库构建”,创建一个任务,为你的知识任务命名,然后通过知识库管理页面选择本地文件上传(支持所有文件后缀),以进行知识库构建流程。

图片

点击“下一步”,保持默认的最大分段长度设置,然后点击“下一步”。

图片

看到该界面后,保持默认设置,点击“完成”。完成后,你可以创建任意多的任务——知识越多,聊天机器人就会越智能。

图片

注意:你需要等待直到图标变绿,表示任务状态已完成。你可以点击日志查看图标检查进度,确保所有内容都已成功提取,如下所示。

图片

我非常喜欢 OpenSPG 的一个特点是,我们可以使用 Neo4j 浏览器提取知识并检查知识提取结果。这对于任何希望跟踪数据,并确保聊天机器人通过 Cypher 查询生成精确回答的人来说,都非常有帮助:

http://127.0.0.1:7474/browser/

图片

接下来,让我们点击“知识库问答”与聊天机器人互动并进行测试。我将向聊天机器人提出 KAG 论文中的一个问题

“论文提出的 Knowledge Augmented Generation (KAG) 框架如何弥补 RAG 方法的不足?”

你会看到,当我提出问题时,聊天机器人通过逻辑推理生成了输出。其答案准确、结构严谨、便于非技术用户理解,而且更为精准,没有任何冗余信息。

图片

结论:

KAG 框架仍处于开发初期,因此未来还有改进和优化的空间。借助自定义模式和可视化查询等新功能,KAG 不仅提升了知识提取和问答的准确性与效率,同时也巩固了其基础。这些更新为构建更强大、更可靠的专业知识服务奠定了基础。

此外,摘要生成类也已得到优化。如果我们在各个阶段尝试不同规模的模型,KAG 的性能可能会进一步提升。而且,鉴于 KAG 是开源的,我们应当充分利用其代码,看看它如何帮助我们为各种需求创建定制化方案!

 

 如何学习AI大模型?

我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。

我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。

第一阶段: 从大模型系统设计入手,讲解大模型的主要方法;

第二阶段: 在通过大模型提示词工程从Prompts角度入手更好发挥模型的作用;

第三阶段: 大模型平台应用开发借助阿里云PAI平台构建电商领域虚拟试衣系统;

第四阶段: 大模型知识库应用开发以LangChain框架为例,构建物流行业咨询智能问答系统;

第五阶段: 大模型微调开发借助以大健康、新零售、新媒体领域构建适合当前领域大模型;

第六阶段: 以SD多模态大模型为主,搭建了文生图小程序案例;

第七阶段: 以大模型平台应用与开发为主,通过星火大模型,文心大模型等成熟大模型构建大模型行业应用。


👉学会后的收获:👈
• 基于大模型全栈工程实现(前端、后端、产品经理、设计、数据分析等),通过这门课可获得不同能力;

• 能够利用大模型解决相关实际项目需求: 大数据时代,越来越多的企业和机构需要处理海量数据,利用大模型技术可以更好地处理这些数据,提高数据分析和决策的准确性。因此,掌握大模型应用开发技能,可以让程序员更好地应对实际项目需求;

• 基于大模型和企业数据AI应用开发,实现大模型理论、掌握GPU算力、硬件、LangChain开发框架和项目实战技能, 学会Fine-tuning垂直训练大模型(数据准备、数据蒸馏、大模型部署)一站式掌握;

• 能够完成时下热门大模型垂直领域模型训练能力,提高程序员的编码能力: 大模型应用开发需要掌握机器学习算法、深度学习框架等技术,这些技术的掌握可以提高程序员的编码能力和分析能力,让程序员更加熟练地编写高质量的代码。


1.AI大模型学习路线图
2.100套AI大模型商业化落地方案
3.100集大模型视频教程
4.200本大模型PDF书籍
5.LLM面试题合集
6.AI产品经理资源合集

👉获取方式:
😝有需要的小伙伴,可以保存图片到wx扫描二v码免费领取【保证100%免费】🆓

Logo

欢迎加入DeepSeek 技术社区。在这里,你可以找到志同道合的朋友,共同探索AI技术的奥秘。

更多推荐