基于GraphRAG的SEO智能助手实战案例 - 解锁大模型和知识图谱结合的力量

摘要

Unlocking The Power Of LLM And Knowledge Graph (An Introduction),by Sylvain Peyronnet ,CEO at Babbar / yourtextguru

本文介绍了如何利用LLM和知识图谱的强大功能制作AI助手,并详细解释了RAG和GraphRAG的应用。

通过整合外部API,构建了名为VictorIA的SEO助手,该助手不仅能生成内容、传递SEO行业知识,还能与SaaS工具互动,展示了未来SEO自动化的潜力。

知识图谱的应用与LMI框架的结合为助手的开发提供了重要支持。通过向LLM输入自然语言问题并与API进行交互,构建了一个信息丰富、有结构性的助手。GraphRAG方法虽然提高了答案的完整性,但也带来了一定的延迟。

最终,展示了如何在Jupyter Notebook中逐步构建GraphRAG对话代理。这一工作为助手的未来发展指明了方向,表明辅助工具可能会在SEO领域产生深远影响。

Source:

https://www.searchenginejournal.com/unlocking-the-power-of-llm-knowledge-graph-introduction/518343/

正文

我们正处在一个激动人心的时代,AI 的进步正在改变专业实践。

自发布以来,GPT-3 已经在 SEM 领域的专业人士在他们的与内容相关的任务中“辅助”。

然而,ChatGPT 在 2022 年底的推出引发了朝着创建 AI 助手的运动。

到 2023 年底,OpenAI 推出了 GPTs,结合了指令、额外知识和任务执行。

GPTs的未来

GPT 为实现个人助理的梦想铺平了道路,现在看来这一目标已经是可以实现的。会话式 LLM 代表了人机界面的理想形式。要开发强大的 AI 助手,必须解决许多问题:模拟推理、避免幻觉,以及增强使用外部工具的能力。

我们开发SEO助手的旅程

过去几个月里,我和我的两位长期合作伙伴Guillaume和Thomas一直在研究这个课题。我在这里展示我们的第一个原型SEO助手的开发过程。

为什么做SEO 助手?

我们的目标是创建一款助手,能够:

  • 根据简要说明生成内容。

  • 提供关于SEO的行业知识。它应该能够细致回答诸如“每页应该有多个H1标签吗?”或“TTFB是排名因素吗?”这样的问题。

  • 与SaaS工具互动。我们都使用各种复杂程度的图形用户界面工具。通过对话来使用它们可以简化它们的使用。

  • 规划任务(例如,管理一个完整的编辑日历)并执行定期的报告任务(例如创建仪表板)。

对于第一个任务,只要我们能约束它们使用准确的信息,LLM已经非常先进了。

关于规划的最后一点仍然在科幻领域里。

因此,我们专注于将数据整合到助手中,使用RAG和GraphRAG方法以及外部API。

RAG 方法

我们首先将基于检索增强生成(RAG)方法创建一个助手。

RAG是一种技术,通过提供外部信息而不是内部结构(其训练)来减少模型的幻觉。直觉上,这就像与一个有搜索引擎访问权限的聪明但失忆的人进行交流。

图像来自作者,2024年6月

为了构建这个助手,我们将使用向量数据库。有许多可用的选项:Redis、Elasticsearch、OpenSearch、Pinecone、Milvus、FAISS 等。我们选择了 LlamaIndex 提供的向量数据库用于我们的原型。

我们还需要一个语言模型集成(LMI)框架。该框架旨在将 LLM 与数据库(和文档)链接起来。在这方面,也有许多选项:LangChain、LlamaIndex、Haystack、NeMo、Langdock、Marvin 等。我们在项目中使用了 LangChain 和 LlamaIndex。

一旦您选择了软件堆栈,实施就相当简单。我们提供文档,框架将其转换为编码了内容的矢量。

有许多技术参数可以改善结果。然而,像 LlamaIndex 这样的专门搜索框架在本机上表现相当出色。

对于我们的概念验证,我们提供了一些法语 SEO 书籍和一些著名 SEO 网站的网页。

使用 RAG 可以减少幻觉并获得更完整的答案。您可以在下一张图片中看到一个本地 LLM 答案的示例以及使用我们的 RAG 的相同 LLM 的答案。

作者提供的图片,2024年6月

我们在这个例子中看到,由RAG提供的信息要比仅由LLM提供的信息稍微完整一些。

GraphRAG方法

RAG 模型通过整合外部文档来增强 LLM,但仍然有困难将这些来源整合在一起,并从大语料库中高效提取最相关的信息。

如果一个答案需要结合来自多个文档的多个信息片段,RAG 方法可能不够有效。为了解决这个问题,我们预处理文本信息以提取其携带的语义底层结构。

这意味着创建一个知识图谱,这是一种数据结构,以图中实体之间的关系进行编码。这种编码以主语-关系-客体三元组形式完成。

在下面的例子中,我们有几个实体及其关系的表示。

图像来自作者,2024年6月

图中描绘的实体是“水獭鲍勃”(命名实体),还有“河流”、“水獭”、“毛皮宠物”和“鱼”。关系显示在图的边缘。

这些数据是有结构的,并表明水獭鲍勃是一只水獭,水獭生活在河流中,吃鱼,并且是毛皮宠物。知识图非常有用,因为它们允许进行推理:我可以从这个图推断出水獭鲍勃是一只毛皮宠物!

构建知识图谱是使用NLP技术长期以来一直在进行的任务。然而,LLM通过其处理文本的能力有助于创建这样的图谱。因此,我们将要求一个LLM创建知识图谱。

作者提供的图片,2024年6月

当然,正是LMI框架有效地引导LLM执行这项任务。我们在项目中使用了LlamaIndex。

此外,使用GraphRAG方法时,我们助手的结构变得更加复杂(请参见下图)。

作者提供的图片,2024年6月

稍后我们将回到工具API集成,但其他方面,我们看到了一个RAG方法的要素,以及知识图谱。请注意“提示处理”组件的存在。

这是助手代码的一部分,它首先将提示转换为数据库查询。然后,它通过从知识图谱输出中制作人类可读的响应来执行相反的操作。

下图显示了我们用于提示处理的实际代码。您可以在这张图片中看到,我们使用了NebulaGraph,这是第一个部署GraphRAG方法的项目之一。

作者提供的图片,2024年6月

可以看到提示非常简单。事实上,大部分工作都是由LLM本地完成的。LLM越好,结果也就越好,即使是开源的LLM也能提供高质量的结果。我们已经使用了在RAG中使用的相同信息来供给知识图谱。答案的质量更好了吗?让我们以同一个例子来看一下。

作者提供的图片,2024年6月

我让读者来判断这里提供的信息是否比以前的方法更好,但我觉得它更有结构和完整性。然而,GraphRAG的缺点是获取答案的延迟(稍后我会再谈到这个用户体验问题)。

整合SEO工具数据

在这一点上,我们有一个助手可以更准确地撰写和传递知识。但我们也希望让助手能够从 SEO 工具中传递数据。为了实现这一目标,我们将使用 LangChain 以自然语言交互 API。

这是通过向 LLM 解释如何使用给定的 API 的函数来完成的。对于我们的项目,我们使用了 babbar.tech 工具的 API(完全披露:我是开发该工具的公司的首席执行官)。

作者提供的图片,2024年6月

上面的图片展示了助手如何收集关于特定URL的链接度量信息。然后,我们在框架级别(这里是LangChain)指出该功能是可用的。

tools = [StructuredTool.from_function(get_babbar_metrics)]  
agent = initialize_agent(tools, ChatOpenAI(temperature=0.0, model_name="gpt-4"),   
agent=AgentType.CONVERSATIONAL_REACT_DESCRIPTION, verbose=False, memory=memory)

这三行代码将从上述功能中设置一个LangChain工具,并初始化一个用于制作有关数据答案的对话。请注意,温度为零。这意味着GPT-4将输出直接的答案,没有创造力,这对于从工具传递数据更好。

再次,LLM在这里大部分工作都是它将自然语言问题转换为API请求,然后从API输出返回到自然语言。

作者提供的图片,2024年6月

您可以下载Jupyter Notebook文件,按照逐步说明,在您的本地环境上构建GraphRAG对话代理。

在实施上述代码后,您可以在Jupyter笔记本中使用下面的Python代码与新创建的代理进行交互。在代码中设置您的提示并运行它。

import requests  
import json  
  
# Define the URL and the query  
url = "http://localhost:5000/answer"  
  
# prompt   
query = {"query": "what is seo?"}  
  
try:  
    # Make the POST request  
    response = requests.post(url, json=query)  
      
    # Check if the request was successful  
    if response.status_code == 200:  
        # Parse the JSON response  
        response_data = response.json()  
          
        # Format the output  
        print("Response from server:")  
        print(json.dumps(response_data, indent=4, sort_keys=True))  
    else:  
        print("Failed to get a response. Status code:", response.status_code)  
        print("Response text:", response.text)  
except requests.exceptions.RequestException as e:  
    print("Request failed:", e)

总结分析

使用LLM(例如GPT-4)与RAG和GraphRAG方法,并添加对外部API的访问,我们已经构建了一个概念验证,展示了SEO自动化未来可能的样子。

它为我们提供了对我们领域所有知识的平稳访问,以及与最复杂工具互动的简便方式(谁从未抱怨过即使是最好的SEO工具的GUI呢?)。

仅剩下两个问题要解决:答案的延迟和与机器人讨论的感觉。

第一个问题是由于需要在LLM和图形或向量数据库之间来回进行计算所需的时间。在我们的项目中,要回答非常复杂的问题可能需要长达10秒的时间。

这个问题只有几个解决方案:增加硬件或等待我们正在使用的各种软件模块的改进。

第二个问题更棘手。虽然LLM模拟了实际人类的语气和写作风格,但界面是专有的这一事实说明了一切。

这两个问题都可以用一个聪明的技巧来解决:使用一个众所周知,大多数人使用,且延迟通常的文本界面(因为人类以异步方式使用)。

我们选择了WhatsApp作为与我们的SEO助手的通信渠道。这是我们工作中最容易的部分,通过Twilio的消息API使用WhatsApp业务平台完成。

最终,我们获得了一个名为VictorIA的SEO助手(这个名字结合了Victor - 著名法国作家维克多·雨果的名字和IA - 意为"人工智能"的法语首字母缩写),您可以在下面的图片中看到。

作者提供的图片,2024年6月

结论

我们的工作只是激动人心旅程的第一步。助手可能塑造我们领域的未来。GraphRAG(+API)促进了LLMs,使公司能够建立自己的平台能力。

这样的助手可以帮助新入职的初级合作者(减少他们向高级员工提问简单问题的需求)或为客户支持团队提供知识库。

我们已经包含了源代码,供有足够经验直接使用的任何人使用。这段代码的大多数元素都很简单,关于Babbar工具的部分可以跳过(或者替换为其他工具的API)。

然而,了解如何设置Nebula图存储实例是至关重要的,最好是在本地进行设置,因为在Docker中运行Nebula会导致性能不佳。这一设置已经有文档记录,但乍一看可能看起来复杂。

如何学习大模型 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 的正确特征了。

这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值