📱

Get Our Mobile App

Take your business learning on the go!

Download on the App StoreGet it on Google Play

AI Engineer World’s Fair 2025 — GraphRAG

AI Engineer4:08:05

Transcription

快速提问,今天早上参加了主题演讲的各位。嗯,我们从组织者那里收到一个非常好的问题。不是问题,是陈述。RAG 已经死了,还是代理正在接管 RAG?有多少人已经在生产环境中实现了 RAG?哦,很多。所以我可以很有信心地说 RAG 并没有死。我对 RAG 的看法是,嗯,我认为如果 RAG 可以解决您在生产环境中正在处理的问题,您就不需要代理,反之亦然,为什么?嗯,错误的类比,当您可以用一个更小、微小的版本完成时,为什么要建造一座埃菲尔铁塔呢?所以我认为这就是我认为 RAG 很重要的原因,而且 RAG 已经找到了其应用的大量用例,所以我就说到这里,我将在我的演讲中进一步讨论,但嗯,我正在等待 11:15,因为本次会议将在 YouTube 上直播,为那些未能参加本次会议的朋友们。所以当他给我一个提示时,我就会开始。我们开始吗?好的。哦,谢谢。好的。所以,感谢您的到来。嗯,简单介绍一下我自己,我叫 Mitesh。我领导 Nvidia 的开发倡导团队。我团队的目标是为不同的应用程序创建技术工作流程、笔记本,然后我们在 GitHub 上发布代码库。所以,开发者们,总的来说,就是我和你们所有人,我们可以利用这些知识,并将其进一步应用于您正在处理的应用程序或用例。所以,这就是我的团队,包括我自己在做的事情。在今天的演讲中,我将谈论我们与一位合作伙伴以及 Nvidia 的一些同事和我们的合作伙伴一起完成的一个项目,关于如何创建一个图 RAG 系统,它的优点是什么,以及如果我们加入混合性质,它有多大帮助。所以,这就是我的演讲内容。我无法给您一个 10 英尺的视角,我可以深入研究代码库,但演讲结束时有一个 GitHub 链接,您可以扫描,我将要谈论的所有这些笔记本都可供您带回家,但我将给您一个 10,000 英尺的视角,或者如果您正在尝试构建自己的图 RAG 系统,如何构建它。所以,快速回顾一下,什么是知识图谱,以及它们为什么非常重要。所以,它是一个表示不同实体之间关系的網絡,而这些实体可以是任何东西。它可以是人、地方、概念事件。一个简单的例子就是我在这里。我与人工智能世界博览会的关系是什么?人工智能工程师世界博览会和我之间的关系是我是在本次会议上的演讲者。我与在座的各位的关系是什么?嗯,我们的关系是您参加了我的会议。所以,这两个实体之间的关系边缘变得非常重要,只有基于图的網絡才能利用,或者知识图谱才能利用,这就是为什么在这个领域有很多活跃的研究,关于如何利用图 RAG,如何利用知识图谱并将其放入基于 RAG 的系统中。所以目标是三件事:如何创建一个三元组,它定义了这些实体之间的关系,这是我们的图或基于图的系统或知识图谱非常擅长利用的,这也是知识图谱的独特之处。所以,如果您考虑一下,为什么它们比语义 RAG 系统工作得更好?嗯,它能更详细地捕捉实体之间的信息。因此,这些连接可以提供您在 RAG 系统中创建的知识的非常全面的视图,当您检索其中一些信息并将其转换为对提问用户的响应时,这将变得非常重要。而且它能够从多个来源组织您的数据。我的意思是,这是理所当然的,无论您构建哪种 RAG 系统。那么,我们如何创建图 RAG 或混合系统呢?所以,这是它所包含内容的高层图。我将其分解为四个组件。第一件事是您的数据。您需要处理您的数据。您处理数据的质量越高,知识图谱的质量就越高。知识图谱的质量越高,检索的质量就越高。所以,四个组件:数据、数据处理、您的图创建或您的语义嵌入向量数据库创建。这三个步骤。然后最后一个步骤当然是推理,当您向您的 RAG 管道提问时。而在更高层次上,这可以分解为两个大块:离线和在线。所以,您所有的数据处理工作,这是一次性过程,是离线的,一旦您创建了知识图谱,也就是您的三元组实体关系实体 2,或者您的语义向量数据库,一旦您有了它,那么一切都将围绕着查询它并将该信息转换为用户可读的响应。它不能是“这里是三个关系”,然后我们作为用户必须去弄清楚这到底意味着什么。所以,这个流程图的顶部部分是您构建语义向量数据库的地方,也就是您选择您的文档,然后将其转换为向量嵌入,并将其存储到向量数据库中。所以,这部分是如何创建您的语义向量数据库,然后下面的部分是如何创建您的知识图谱,并且在创建知识图谱时,您需要遵循更多的步骤,需要更多的关注。所以,深入研究第一步:创建您的知识图谱。如何从非结构化文档中创建那些三元组?创建三元组,它暴露了两个实体之间的信息,并提取那些实体,以便这些信息变得有用,这一点非常重要。这是一个简单的例子。这份文件是埃克森美孚公司的财报。我认为是他们的季度财报,我们试图提取关系或使用 LLM 创建知识图谱,如果您看到第一行是埃克森美孚,这是一家公司,这是该实体的特征,花费在石油和天然气勘探和活动上的支出。我的歉意,花费是埃克森美孚与在石油和天然气勘探和活动上的支出之间的关系。实体是支出在石油和天然气勘探上的实体名称。所以,这就是关系需要被利用的方式。现在,我们脑海中浮现的问题是,这听起来很难做到,而且确实很难做到,这就是为什么我们需要利用 LLM 来找出一种方法来提取这些信息并为我们构建它,以便我们可以将其以三元组格式保存。我们该怎么做?提示工程,但我们需要更明确。所以,根据您正在处理的用例,您可以定义您的本体论,一旦您定义了本体论,您就可以将其放入您的提示中,然后要求 LLM 去提取这些文档中的本体论特定信息,然后以那种方式构建它,以便可以以三元组的形式存储。这一步非常重要。您可能会花很多时间在这里,以确保您的提示做对了事情,并且它为您创建了正确的本体论。如果您的本体论不对,如果您的三元组不对,如果它们很嘈杂,您的检索也会很嘈杂。所以,这就是您将反复尝试弄清楚如何获得更好的本体论的地方。所以,这是我将花费的时间,我的看法是,您将花费 80% 的时间来确保您获得正确的本体论,并且您将以迭代的方式来回尝试,看看如何随着时间的推移使其变得更好。然后,对于混合 RAG 系统,下一个向量数据库是创建语义向量数据库,这相当直接,或者已经得到了很好的研究。所以,您选择您的文档。这是“注意力就是你所需要”研究论文的第一页。您将其分解为块大小,您还有另一个称为重叠的因子。块大小很重要,因为语义向量数据库所做的是它会选择那个块,并将其转换为使用嵌入模型,并将其转换为向量嵌入并存储到向量数据库中。如果您没有重叠,那么前一个块和下一个块之间的上下文将会丢失,如果存在任何关系。所以,您会尝试聪明地决定我需要在我之前的块和下一个块之间有多少重叠,以及当我将文档分块成不同段落时,我应该使用多大的块。这就是图 RAG 的优势所在,因为,如果您仔细想想,由您的语义向量数据库未被利用的重要信息,即不同实体之间的关系,而当您尝试使用知识图谱或创建基于知识图谱的系统时,它们得到了很好的利用。所以,一旦您创建了这个知识图谱,下一步是什么?现在,现在 comes the retrieval piece,也就是,您问一个问题,埃克森美孚本季度的支出看起来如何,知识图谱将帮助您弄清楚如何检索那些节点或那些实体以及它们之间的关系。但是,如果您进行非常扁平的检索,也就是单跳,您就错过了图允许您的最重要的部分,即通过多个节点进行利用,您可以想象一下,这变得非常非常非常重要。我无法强调它有多么重要。所以,考虑不同的策略。您将花费大量时间来优化这一点,无论您应该查看单跳、双跳,您想深入到什么程度,以便节点,您第一个节点到第二个节点,第二个节点到第三个节点之间的关系得到很好的利用。您深入的越多,您获得的上下文就越好。但也有缺点。您深入的越多,您花费在检索该信息上的时间就越多。所以,延迟也成为一个因素,尤其是在生产环境中工作时。所以,当您尝试深入到什么程度,您想去多少次跳跃,以及您能承受多少延迟时,您必须找到一个最佳点。所以,这变得非常非常重要,而且其中一些搜索可以加速。所以,我们创建了一个名为 cool graph 的库,它可以在许多库中找到或集成,比如 network x 等等。但这种加速变得很重要,这样它就能为您提供深入图谱、多次跳跃的灵活性,但同时您也可以减少延迟,因此您的图谱性能会大大提高。所以,这就是检索部分发挥作用的地方,您可以定义不同的策略,以便在查询您的数据并获得响应时,您可以获得更好的响应。另一个重要部分是我个人在这个部分工作过,我可以详细地谈论它,但我将给您一个非常高层次的概述,那就是评估性能。有多个因素可以评估,例如忠实度、答案相关性、精确率、召回率,如果您尝试使用 LLM 模型,有用性、连贯性、复杂性、冗长性,所有这些因素都变得非常重要。所以,有一个名为 Ragas 的 Python 库。它旨在端到端地评估您的 RAG 工作流程。有人使用 Ragas 来评估您的图 RAG 吗?好的,有几位。谢谢。但它是一个很棒的库,您可以用来端到端地评估您的 RAG 管道,因为它评估响应,评估检索,并评估查询是什么。所以,它将端到端地评估您的管道,这在您尝试测试我的检索是否做得对,或者我提出的问题是否被 LLM 正确解释时非常方便。所以,您可以将您的响应分解为 Ragas 管道将评估所有这些部分,并查看您的最终分数。它是一个 pip install 库。另一个是 LLM,Ragas 在底层使用 LLM。不出所料。默认情况下,它与 GPT 集成,但它提供了灵活性,如果您有自己的模型,您也可以将其引入,并将其与您的 API 连接,并使用该 LLM 来确定 RAS 提供的这四个评估参数。所以,它非常全面,但我会说它很全面,但在提供灵活性方面确实很好。另一条路径是使用一个专门用于评估 LLM 输出的模型,那就是我们几年前发布的 Lanimotron 3400 亿奖励模型,当时它是一个非常好的响应模型,它是一个 3400 亿参数的模型,相当大,但它是一个奖励模型,它会去评估另一个 LLM 的响应,并根据这五个参数的响应情况进行评判,但它是用来评判其他 LLM 的,它是这样训练的。所以,继续前进,我想用这个类比来创造一个图 RAG 系统,它将花费您 80% 的工作时间,而您只需要 20% 的时间,然后要使其更好,也就是最后 20%,抱歉,也就是 80/20 法则,最后 20% 将花费您 80% 的时间,因为现在您正在进一步优化它,以确保它对您正在处理的应用程序的用例足够好。有一些策略我想向您介绍。正如我之前所说,我无法强调的是,您从非结构化数据中创建知识图谱的方式变得非常重要。您的知识图谱越好,您获得的结果就越好。我们通过与一位合作伙伴进行的这个用例实验,我们一直在探索,我们能否微调一个 LLM 模型以提高我们创建的三元组的质量,这是否会改善结果?我们能否在数据处理方面做得更好,例如删除不重要的字符,如撇号、括号、单词,如果我们删除它们,是否会得到更好的结果?所以,这些都是一些小事情,您可以考虑一下,但它们可以提高您整个系统的性能。所以,这就是我所说的 80% 的时间,您正在缓慢而稳定地微调的细微之处,以确保您的性能越来越好。我想分享一些我们进行的策略,这些策略使我们获得了更好的结果。所以,第一件事是正则表达式或仅仅是清理您的数据。我们删除了撇号和其他不那么重要的字符,如果您考虑三元组生成,这使我们获得了更好的结果。然后我们实施了另一种策略,即减少不遗漏的长输出,使其更短。这使我们获得了更好的结果,我们还微调了 llama 3.3 模型或 3.2 模型,这使我们获得了更好的结果。所以,如果您查看最后三列,您会看到,通过使用 llama 3.3,我们获得了 70% 的准确率。所以,这是在 100 个三元组上测试的,以查看其性能如何,当它变得更好,当我们引入 Laura,微调 llama 3.1 模型时,我们的准确率或性能从 71% 上升到 87%。然后我们做了那些小的调整,它提高了性能。再次记住,这是在 100 个文档上,所以准确率看起来很高,但如果您的文档池增加,它会稍微下降一点,但与我们之前相比,我们看到了改进,而这正是那些小的调整发挥作用的地方,当您将图 RAG 或 RAG 系统投入生产时,它们将对您非常有帮助。另一个是从延迟的角度来看。所以,如果您的图变得越来越大,现在您正在谈论一个网络,它包含数百万或数十亿个参数,或者数百万和数十亿个节点。现在,您如何在拥有数百万或数十亿个节点的图中进行搜索?而这正是加速发挥作用的地方。所以,使用 cool graph,它现在可以通过 network X 获得。network X 也是一个 pip install 库。有人在这里使用过 network X 吗?好的,有几位。好的。所以,network X 也是一个 pip install 库。在底层,它使用了加速,如果您看到一些算法,我们对其进行了性能测试,您可以看到整体执行的延迟大大降低。所以,这就是您再次获得小的调整,它们将为您带来更好的结果。所以,这是我们实验过的两件事,它们为我们带来了更好的准确率和更低的整体延迟,这些都是小的调整,它们为我们带来了更好的结果。所以,那么问题很明显,我应该使用图还是应该使用基于语义的 RAG 系统,或者我应该使用混合系统?我将给您一个外交式的答案。这取决于,但我想让大家带走一些东西,这将帮助您做出决定,以便您可以做出明智的猜测,对于我正在处理的这个用例,RAG 系统将解决问题,我不需要图,反之亦然,或者我需要一种混合方法。所以,这取决于两个因素:一个是您的数据。传统上,如果您查看零售数据,如果您查看 FSI 数据,如果您查看公司的员工数据库,它们都有一个非常好的定义结构。所以,这些类型的数据集非常适合基于图的系统。另一件事要考虑的是,即使您有非结构化数据,您能否从中创建一个好的知识图谱?如果答案是肯定的,那么就值得尝试走图的路径,这取决于应用程序和用例。所以,如果您的用例需要理解复杂的关系,然后提取信息来回答您提出的问题,那么使用图才有意义,因为请记住,这些是计算密集型的系统。所以,您需要确保这些事情得到处理。我可能要超时了,但我说过,我给您的是一个 10,000 英尺的视角,但如果您想获得一个 100 英尺的视角,也就是您在编码时,所有这些东西都可以在 GitHub 上找到,包括 llama 1.1 Laura 模型的微调,我们有一个工作坊,一个两小时的工作坊,我给了您一个 20 分钟的演讲,但整个工作坊也涵盖了两个小时。最后,加入我们的开发者计划,我们定期发布所有这些东西,如果您加入邮件列表,您将根据您的兴趣获得这些信息。正如我的同事提到的,我将在走廊尽头的 Neo4j 展位回答任何问题。我很乐意与您互动,看看您是否有任何问题,我可以回答。感谢您的时间。[掌声] 谢谢。谢谢 Mitesh。太棒了。我们这里还有一场精彩的演讲。J,上来吧。如果我没记错的话,您将从哲学角度来看待这个问题。是的。是的。你好。是的。谢谢。五,四,三,二,一。谢谢。您做到了。等等,笔记在哪里?嗯,是的。哦,似乎有排练。好的。所以,我不知道是否有办法将演讲者笔记显示在屏幕底部。你们知道吗?是的,全屏。您需要笔记吗?是的,我需要笔记。我看到了笔记。您也可以在侧边浏览,就像那样。您能折叠一下吗?我认为这样更好。是的。是的。好的。所以,大家好。我的名字是 Ching Kyong Lamb。我是 PO.AI 的创始人兼首席执行官。关于我的公司,PTO AI 两年前成立,当时收到了国家科学基金会的邀请,获得了 SBIR 资助,用于研究 LLM。我们做了一个基于 LMB 的药物发现应用程序。从那时起,我们开始利用我们学到的关于为大型企业构建 AI 系统的知识。我们目前正在为几位客户构建专家 AI 系统。目前我们构建的系统超越了 RAG 系统。我们的许多客户要求 AI 系统能够执行研究和咨询等任务,基于他们的兴趣领域。今天的演讲是与我们的人工智能工程师同行分享我们到目前为止构建这类系统所学到的东西。好的。什么是知识?一般而言,从哲学上讲,我认为知识是通过经验、教育和对事实与原则的理解而获得的理解和意识,这引出了下一个问题:什么是知识图谱?知识图谱是通过连接它们并创建网络或相互关联的关系来保存智慧的系统方法,这很重要。图谱代表了特定专业领域的思维过程和全面的自治。这就是为什么这对人们来说很重要,因为 AI 系统正在大量思考并返回建议,而不是仅仅从您的数据库中检索数据。所以,这引出了 KA 的发展。KA 代表知识增强生成,它与 RAG 不同。它通过集成结构化知识图谱来增强语言模型,以获得更准确和更具洞察力的响应,使其比简单的 RAG 更智能、更结构化。KA 不仅仅是检索,它还理解,这是不同的。在采访了许多客户之后,或者我们也是某个领域的专家,我发现他们的思维方式、决策过程、让他们成为该领域专家的思考方式是普遍存在的。知识图谱似乎是完美的契合。所以,这是一张图或状态图,如果您像我一样是计算机工程大脑。所以,它显示了智慧,智慧节点,正如您所见,是核心,是智慧,它不是静态的,它积极地指导决策,并被其他元素所融合。智慧的输出实际上进入了蓝色中的决策制定。智慧不是被动的,它指导决策,帮助我们明智地选择。然后,决策制定分析绿色圆圈中给出的情况,并且决策不是在真空中做出的。它们分析真实世界的情况。这就是区别。所以,看看智慧的输入。看看知识到智慧的反馈关系,以金色表示。例如,知识到智慧就像您所有的书籍、智能百科全书、维基百科,无论您存储什么,一旦数据被您使用的任何模型吸收,它就需要将其复述并理解,这就是为什么智慧能够综合您摄入知识后的数据非常重要。这有点抽象,但我稍后会详细说明。从洞察力来看,例如,智慧从混乱中提取模式,就像我的一些客户有很多社交媒体,他们的产品如何从社交媒体中追踪他们的产品情绪?所以,这是混乱的,来自 X 上的推文。所以,从中您可以看到一些关于他们的竞争对手与我当前产品相比的模式。这就是一个例子,我稍后会详细介绍。当所有这些连接的节点一起发挥作用时,为什么它们很重要?所有节点都相互关联,以不断丰富智慧存储系统。所以,这次演讲是关于存储智慧的。所以,知识告诉您它是什么,经验告诉您以前什么有效。洞察力发明了下一步要尝试什么。就像披萨一样,知识是食谱。经验是了解您的烤箱烧焦的饼皮。洞察力就像嘿,在饼皮上加蜂蜜,使其完美焦糖化。所以,知识图谱最重要的部分是反馈循环。反馈不是单向的。它从洞察力、智慧中学习。例如,情况会影响未来的智慧,经验会深化洞察力,使其更加敏锐,就像一棵树在扎根。它越有效,它就越强大。现在我想问您一个问题,您在生活中在哪里看到了这个循环?也许是一个让您学到东西的艰难决定。所以,对于领导力来说,一个实际的应用就是智慧。通过从反馈中学习来避免仓促反应。至于个人成长,您是否注意到过去的错误让您变得更聪明?这就是行动中的循环。所以,这张幻灯片的要点是,智慧不是您赢得的奖杯。它是一种您锻炼的肌肉。您喂养的知识、经验、洞察力越多,它就越能指导您。现在我将向您展示它如何映射到我目前的客户。您知道这一切都很抽象,对吧?所以,我的一位客户实际上正在进行竞争分析,他们过去有一个建模部门来做这件事,但他们希望 AI 来做这件事。他们让我构建系统,我正是这样做的,使用相同的分类法来存储所有这些。稍后我将讨论多代理如何处理所有这些。这是我为客户构建的聊天机器人之一,它不仅仅是一个聊天机器人,而是我们的智慧图谱驱动的 AI,旨在将数据转化为战略。主导。所以,我谈论的是什么样的问题?我谈论的是如何在市场空间中击败我的竞争对手,这是一个非常复杂的问题。所以,如果没有,如果您只是简单地按第一个演讲者所说的做,它将无法奏效,他们将无法回答这类问题。我所做的是,我们保留了相同的分类法,智慧被映射到相同的引擎,智慧引擎就像一个协调代理,它做出许多决策,包括根据当前情况建议下一步该做什么。所以,我所做的是,对于决策制定,我将其映射到一个策略生成器。这些客户谈论的是竞争分析。所以,我将知识映射到知识方面,他们拥有什么?他们拥有市场数据。所以,我将这种经验映射到 HP 的一次性过往活动,他们进行了大量的活动,进行了大量的营销。然后,洞察力被映射到行业洞察力,他们有一个存储这些信息的数据库。然后,当然最重要的是情况,情况是如何?我的产品卖得怎么样?所以,这就是一种情况。然后,我将其映射到竞争对手的弱点,这意味着他们说,如果您让他们意识到这一点,您可能会得到一个很好的答案,然后聊天机器人可能会做正确的事情,提供建议。所以,从这里,非常高层次的状态图,我如何将其映射到一个运行良好的系统?所以,这里是诀窍。这里有人听说过 N 吗?好的,好的,好的,好的,好的。我第一次遇到类似情况是在我过去的一个物联网项目中,它不是由 IBM 开发的,它也是一样,它就像无代码,但底层是一堆代码,都是 Node.js 代码。但是,为了证明您的概念等等,它非常非常灵活,我强烈推荐它。而且,您可以看看工作流程,我启用了这个复杂状态图的实现,我称之为有一个不同的社区,一个非常强大的节点是 AI 代理。以前 N 只是一个工作流程自动化工具,我不是在为 N 销售,我只是告诉您,我正在使用它进行原型设计。再往后,也许客户说,我真的需要现在有驱动不同模型的选项,比如 OpenAI 模型、Anthropic 模型,甚至本地模型。使状态机工作的关键是关于图 RAG,为什么我们谈论融合解码器?嗯,很高兴您问,因为下一个重大突破是知识图谱与融合解码器。所以,您可以使用知识图谱与融合解码器作为一种技术,这在某种程度上改进了融合解码器论文,通过使用知识图谱来理解检索到的段落之间的关系,这有助于解决效率瓶颈并改进流程。我不会一步一步地讲解这个图,但这是论文中的架构图,它使用图谱,然后进行这种两阶段的段落排序,这有助于提高效率,同时降低成本。所以,团队将所有这些研究汇集在一起,构建了我们自己的融合解码器实现,因为我们实际上构建了自己的模型来完成这最后一块拼图,它极大地降低了我们的幻觉率。我们发布了一篇关于我们自己发现的白皮书。所以,我们有了这块拼图,还有一些其他技术我们没有时间详细介绍,但重点是我们正在将基于研究的多种技术组合在一起,以获得我们为客户提供的最佳结果。所以,这一切都很好,但它真的有效吗?这是重要的一部分,对吧?所以,我们去年进行了一些基准测试。我们使用了 Amazon 的 robust QA 数据集,并将我们的检索系统与知识图谱和融合解码器以及所有东西进行了比较,与七个不同的向量搜索系统进行了比较,我们发现我们的准确率最高,响应时间最快。所以,我鼓励您去看看,并了解这个过程。基准测试真的很酷,但更酷的是它为我们的客户解锁了什么,也就是产品中的各种功能。首先,因为我们的大部分图结构,我们可以实际暴露思维过程,因为我们有那些关系和额外的上下文,您可以显示片段、子查询和 RAG 系统如何获取答案的来源。我们也可以将这些暴露给 API 给开发者以及产品中。然后我们还能够拥有知识图谱加速,称之为多跳问题,我们可以跨越多个文档和多个主题进行推理,没有任何困难。最后,它可以处理向量检索难以处理的复杂数据格式,答案可能分散在多个页面上,或者可能有一个相似的术语与用户正在寻找的不完全匹配。但是,因为我们有图结构和融合解码器以及额外的上下文和关系,我们能够形成这些正确的答案。所以,我的主要收获是,有很多方法可以从知识图谱中获得 RAG 的好处。这可能通过图数据库,可能通过使用海报进行创意性的事情,可能通过搜索引擎。但您可以利用知识图谱在您的 RAG 系统中建立的关系,当您到达那里时,您可以挑战您的假设,并专注于客户,以获得最终结果,使团队取得成功。所以,对我们的团队来说,重点是客户需求而不是炒作,根据团队的专业知识保持灵活性,并让研究挑战他们的假设。所以,如果您想加入这个了不起的团队,我们正在招聘研究、工程和产品人员。我们很乐意与您谈谈我们所有的空缺职位。我可以在走廊里找到我,或者在 Twitter 或 LinkedIn 上联系我。这就是我所说的。非常感谢您。掌声] 您现在能听到我吗?我在线了。好的。在图 RAG 这个巨大的伞下,有许多技术、许多方法、许多做事的方式。有知识图谱构建,有检索,但也有在 RAG 之后思考不同思考方式的概念,思考什么是知识,我们首先在做什么。所以,接下来是我的好朋友 Daniel,来自 Zap,他将带领我们完成这个过程。Daniel,继续。还没。哦,来了。五,四,三,二,一。太好了。欢迎大家。谢谢 Andrea。Andreas 也为我做了介绍。我是 Daniel,Zapai 的创始人,我们为 AI 代理构建内存基础设施。我将告诉您,您在内存方面做得不对。好吧,可能不是您直接,但可能是您用来构建代理的框架。我也认为知识图谱很棒。否则我们为什么会在这里,对吧?您应该将它们用于代理内存,而不仅仅是图 RAG。所以,在我深入扩展我的热门观点之前,我想谈谈为什么内存如此重要。所以,我们经常构建会忘记用户重要上下文的代理。所有那些我们从代理和用户之间的对话中收集到的动态数据。所有来自我们的应用程序、业务线应用程序等的业务数据。关于用户是谁,有如此丰富的细节,但我们却没有为我们的代理提供这些数据。结果,我们的代理响应得很通用,甚至更糟的是产生幻觉。这肯定不是通往 AGI 的道路,或者更具体地说,是留住客户的道路。所以,内存不是关于语义相似的内容。RAG 能很好地做到这一点。当我在这里谈论 RAG 时,我主要指的是基于向量数据库的 RAG,不一定是图 RAG,但考虑一下风格化的例子,我们已经学会了对 Adidas 鞋子的品牌偏好,不幸的是 Robbie 的 Adidas 鞋子坏了,所以他很不高兴,所以偏好改变了。然而,Robbie 随后问代理他应该购买什么运动鞋,这与第一个 Adidas 事实最相似。所以,如果我们使用向量数据库,那个事实可能在搜索结果的顶部,代理会错误地响应。所以,在使用 RAG 时,每个事实都是一个孤立且不可变的內容。这是一个真正的问题。左边的三个事实存在,而没有因果关系的理解。语义搜索无法推理事物随时间变化的原因。这就是为什么 RAG 方法作为内存会失败。RAG 缺乏原生的时间关系和关系推理。这一切都不应该令人惊讶。在底层,我们只是在抽象空间中处理相似性。这些嵌入,这些我们为内存生成的嵌入向量表示之间没有明确的关系。然而,当我们看知识图谱时,我们可以定义明确的关系。图谱可以模拟原因,而在 Zep,我们让它们模拟时间,这为您的代理提供了时间维度,可以进行推理。这种结构差异是内存工作方式的基础。所以,这很好地引出了 Graffiti。Graffiti 是 Zep 的开源框架,用于构建实时动态时间图,它解决了这些确切的问题。Graffiti 具有时间感知和图关系。您可以在 GitHub 上找到它,访问 git.new/graffiti。它有 10,000 多个星,近 11,000 个,在过去六周内翻了四倍。所以,感谢所有尝试过 Graffiti 并喜欢它的人。所以,让我们深入了解 Graffiti 的每个属性是如何工作的。所以,这是秘密武器。Graffiti 为每个事实提取和跟踪多个时间维度。它识别事实何时有效以及何时失效。在右侧,您可以看到当我们使用我之前说明的例子时,Graffiti 会如何暂停这些不同的时间范围。这使得时间推理成为可能。用户在二月份偏爱什么?它可以回答 RAG 根本无法处理的问题,或者它使您的代理能够回答 RAG 根本无法处理的问题。所以,当我们看 RAG 能做什么时,我们实际上会遇到许多相互矛盾的嵌入,在向量数据库中没有解决方案。所以,如果我们更新品牌偏好,向量数据库中将有一个新的品牌偏好事实。然而,Graffiti 理解破碎的鞋子使爱关系无效,这在之前的三个事件之间创建了因果关系。破碎的鞋子导致失望,这导致品牌偏好改变。Graffiti 不会删除事实的历史,因为它们改变了,因为它们失效了,而是将它们标记为无效。所以,我们将状态变化的序列存储在图谱上,这使得您的代理能够随着时间的推移对这些状态变化进行推理。所以,例如,下次我回到电子商务代理购买鞋子时,它不会向我推荐 Adidas 鞋子。这是生成的图谱,更接近于人类如何处理和回忆不断变化的状态。在图谱上,我们可以看到现有的 Adidas 品牌偏好仍然存在,但它没有过期日期。我们还看到有一个新的 Puma 鞋子品牌偏好,它是有效的,并且没有失效日期。所以,Graffiti 不会放弃嵌入。它们仍然非常有用。Graffiti 使用语义搜索和 BM25 全文本检索来识别 Graffiti 图谱中的子图。这些可以通过图谱遍历技术进行遍历,以更深入地理解内存。所以,我们可以找到相邻的事实,这些事实可能会充实代理对内存的理解。然后将结果融合在一起。所以,这提供了一种非常快速准确的检索方法。Graffiti 内置了许多不同的搜索配方。所以,您可以真正探索如何为您的特定代理采取不同的方法来检索数据。所以,当我们在看 Graffiti 的最新变化时,这是一个额外的福利,我们现在允许开发者在图谱上建模他们的业务领域。因为心理健康应用程序需要存储和回忆的内存类型与电子商务代理非常不同。所以,Graffiti 允许您构建代表您特定业务或应用程序中业务对象的构造、自定义实体和边。所以,这里有一个媒体偏好的例子,我们一直在学习用户喜欢的播客和音乐。我们为媒体偏好定义了一个实际的结构。这样做的好处是,我们还可以明确地从图谱中检索媒体偏好,而不是从我们可能添加到内存中的一堆其他噪音中检索。这种本体论确实能够为内存如何运作带来很多深度。所以,我并不是主张您到处替换 RAG。RAG,图 RAG,各种形式的图 RAG 和 Graffiti 各有优势和理想的用例。关键是认识到何时需要它们。当您想将增量动态数据集成到图谱中而无需大量重新计算时,Graffiti 非常强大。当您想建模您的业务领域时,它非常强大。它在低延迟检索方面非常强大。路径中没有 LLM。如果您尝试过图 RAG,它们通常在路径中有 LLM。增量地总结图谱的输出可能需要几十秒。Graffiti 的运行时间在几百毫秒以内。所以,关键是认识到哪种解决方案能为您的业务提供什么。大多数代理应用程序都可以使用 RAG,一种 RAG 方法和 Graffiti。所以,总而言之,代理内存不是关于知识检索。时间关系和关系推理对于连贯的内存至关重要。我们需要跟踪随时间变化的状态。我们需要理解偏好或用户特征等事物如何随时间变化,而这是当前 RAG 解决方案所缺乏的。所以,我们在今年早些时候发布了一篇论文,描述了 Zep 使用 Graffiti,并深入探讨了 Graffiti 的架构以及 Zep 使用 Graffiti 作为底层技术所带来的结果。所以,如果您想查看,可以关注下面的链接,访问 archive preprint,我相信幻灯片将在演讲结束后提供,所以您可以去看看论文。所以,快速宣传一下 Zep。Zep 超越了简单的代理内存,构建了一个统一的客户记录,该记录源自聊天记录和业务数据。所以,您可以流式传输用户聊天对话,也可以流式传输您的 SaaS 应用程序、业务线应用程序(如 CRM 或计费系统)中的业务数据,它构建了用户统一的整体视图,真正使您的代理能够准确且全面地实时了解用户,从而为该用户解决复杂问题。所以,请继续关注代理内存午餐和学习,这是下一场会议。它由 Mark Bane 主持,其中,除了其他人之外,我将演示 Zep 基于 Graffiti 的自定义实体和边构建的特定领域内存方法。所以,感谢您的聆听。我们还有几分钟时间,我很乐意回答问题。我会,是的,如果有任何问题。哦,那边有一个。问题是,您需要使用 Zep 来使用 Graffiti 吗?不。Graffiti 是开源的。它可以在 GitHub 上找到。您可以访问链接 git.new/graffiti,今天您只需要 Neo4j。所以,我们的合作伙伴 Neo4j 可以帮助您安装社区版,并强烈推荐他们的桌面产品。它很棒,您可以非常轻松地开始。另一个问题在这里。是的。所以,在底层,您如何使图边无效?我们使用 LLM 吗?所以,Graffiti 广泛使用 LLM 来智能地解析传入数据,这些数据可以是无结构的或结构化的。所以,非结构化的对话、非结构化的电子邮件、JSON 格式的结构化数据,并将它们融合到图谱上。在集成过程中,我们使用 LLM 来识别管道中的冲突事实。所以,这就是我们获得这种能力的地方。

从破旧的鞋子到失望,再到品牌偏好的转变。嗯,LLM 能够理解它所看到的事件的情感色彩。还有一个问题。是的,取决于上下文。所以问题是如何处理事实的重新验证,如果一个状态回到了之前的一个状态,那么它就取决于上下文。可能会创建一个新的边来表示这个后继事实,或者使失效日期为空。是的。是的,这是一个非常好的问题。那么,为什么 Graffiti 可以进行实时更新,而 Microsoft Graph Ragg 不能呢?所以,Micro graph rag 是一种过度简化,它在许多不同的级别上总结文档块或文档,并在不同级别上创建重复的总结。所以,总结的总结的总结等等。这在计算上是非常昂贵的。所以,如果任何底层数据发生变化,你就会得到级联的总结。这既昂贵又复杂。Graffiti 的设计目的是识别受更新影响的特定节点和边,然后能够以手术般的精确度使受冲突影响的边失效。或者我们只是在图表中添加新的边或节点,只要它相关。因此,我们能够使用各种搜索管道以及许多不同的启发式方法来对图表进行非常集中的更改,这些更改是轻量级的且成本低廉。来了。数据如何?你如何?是的,这同样是一个好问题。所以,Graffiti 的运行方式有两种。最后一个问题,第一个是 Graffiti 会为你构建本体,并非常仔细地尝试去重边和节点类型。其次,正如我之前提到的,我们允许你使用 paidantic、zod、gostructs 等来定义本体。好了,我想我们时间到了。所以,谢谢大家。正如 Daniel 提到的,现在外面有午餐供应。所以,我鼓励大家去吃点东西,下午一点回来。我们将有一个关于整体代理记忆及其不同实现的专家小组讨论,你也将是这个小组的一员,对吗?是的。这将是一个很棒的会议。所以,下午一点回来参加一个关于记忆的更长时间的会议。嗨,我有一个问题。有没有限制?为什么我不下去?是的。图表可以处理的数据集有什么限制吗?因为我做得很好。谢谢。我会回来的。嗯,大约在下午一点前十分钟。好的。是的。你吃午饭了吗?好的,太棒了。[音乐]是的,她。这个房间里发生了什么?这就是我爱我们的房间的原因。她在做那个,你知道的。检查,检查。一,二。好的,他们必须。我只是把它放进去,因为检查,检查,检查。确保我有了图像。你可以把它戴在腰带上。你可以把它戴在上面。你可以随心所欲。你可以把它放在。你能帮我吗?只要我认为口袋是最好的。我通常把它放在里面来隐藏电缆。上面有一个摄像头。你喜欢电缆隐形。你能帮我吗?是的,当然。把它塞进去。当然。请便。不客气。一切就绪。谢谢。在去舞台之前,我们能为我们所有人做一个测试吗?嗯,谢谢。电脑都准备好了吗?一切都好吗?完美。我想我需要镜像,对吗?镜像屏幕。好的,我会做的。以太网已经在这里了。我们能?就在这里。就在这里。哦。哦,等等。所以,你只拥有这个,对吗?你可以开始这个。你都准备好了。你准备好了吗?我想我需要五分钟,如果我们有三分钟。是的,那是正确的数量。好的。我们能做一个测试吗?他会做的。我看到了。我看到了他的。我看到了。你说过要镜像你的屏幕。嗯。在那里。所以,我们必须设置那个。是的。是的。你可以练习一下。你实际上可以告诉 Daniel 和 Pacilia,以防万一。好的。所以,没有,我的意思是,总会有故障,但越少越好。是的。哦,我可以做这个测试吗,还是你需要一点时间?你需要一点时间。好的,太棒了。谢谢。让我把它弄直。回来吧。[音乐]美丽的。好的。好的。一旦你上去了,你就会。不。你好。你好。你好。你好。好的。没错。这是下午的音乐环节。嗯,大家好,欢迎来到 Graph Rag 轨道,我们有一个午餐和学习。我应该提醒自己,我也告诉了其他演讲者留在这里舞台中间,进行午餐和学习,我们有一个很棒的款待,我的好朋友 Mark Bane Mark,他就在那里,Mark 将带我们了解代理记忆,进行一次广泛的扫视,就像,你知道的,深入代理记忆,但我们还将围绕它进行一个专家小组讨论和一些演示。这将是一个比 Graph 轨道其余部分更长的会议。大约 45 分钟。完全值得全程停留。应该很精彩。Mark,你准备好说话了吗?当然。我的朋友 Mark Bane,请。好的。一,一,一。好的。大家在这里怎么样?我非常激动能和你们在一起。嗯,这是我第一次在 AI Engineer 上发言。而且,嗯,我们有一组很棒的演讲者,特邀演讲者。Vasilia Marovitz 来自 Cognney,Vasilia。嗯,那里有 Vasilia,Daniel Chalev 来自 Graffiti 和 Zepai,Alex Gilmore 来自 Neo4j。嗯,计划是这样的。我将做一个非常快速的电力演讲,关于我非常热衷的主题,AI 记忆。接下来我们将有四个现场演示,然后我们将进入我们正在提议的一个新解决方案,一个图 rag 聊天竞技场,我将能够演示它,我希望你们在我演示时能够跟随。在最后,我们将有一个非常简短的问答环节。嗯,有一个 Slack 频道,我希望你们加入。嗯,所以请在我们开始之前扫描二维码,并确保每个人都能访问这些材料。频道上有一个演练指南,我们将在研讨会快结束时详细介绍。但我想让你在你的笔记本电脑上开始设置它,如果你想跟随的话。好的,这是一个研讨会 graph chat。你也可以在 Slack 上找到它,你可以加入频道。所以,关于我的一些情况。嗯,大家好,我是 Mark Bane,我对记忆、记忆的深层物理学和跨不同技术的记忆应用充满热情。嗯,你可以在社交媒体或我的网站上找到我,让我给你讲个关于我自己的故事。嗯,当我 16 岁的时候,我数学很好,我参加了数学奥林匹克竞赛,与许多杰出的人一起,包括 OpenAI 的联合创始人 Voyek Sarmba,得益于对数学和物理学的深刻理解,我有很多机会接触到 AI 记忆的问题。所以,首先,我想回忆一下我 2014 年 9 月在这里斯坦福学习时与 Voych 和 Ilia 的两次谈话。嗯,在一个派对上,我遇到了 Ilia 和 Voytech,他们当时在谷歌工作,他们试图说服我 AI 将会有一场巨大的革命,我有点跟不上。当时我有点不以为然。现在。回想起来,我可能会觉得这是一种巨大的兴奋,我真的祝那些做深度学习的人好运,因为当时我真的没有看到 GPU 在计算方面能带来如此巨大的优势。然而,在那次大约 20 分钟的谈话的最后,我问 Ilia,好吧,所以将会有一场巨大的 AI 革命,但这些 AI 系统将如何相互通信?答案非常令人费解,并且为现在发生的事情奠定了基础。Ilia 简单地回答说,我不知道,我想他们会发明自己的语言。那是 11 年前。快进到今天。嗯,在过去的两年里,我一直在深入研究 AI 的物理学,并且深入研究了所有这些最现代的 AI 架构,包括注意力扩散模型、VAE 等等。我意识到有些东西是关键的,有些东西是缺失的。而这个电力演讲就是关于这个缺失的东西。所以,在过去的两年里,我一直在进行大量的物理学、计算机科学、信息科学研究,我得出了这个结论:记忆,事实上,AI 记忆是任何格式的任何数据,这很重要,包括代码算法和硬件。以及任何影响它们的因果变化。这是一个非常令人震惊的结论,这个结论为整个图轨道定下了基调。事实上,我也对生物系统如何使用记忆以及不同的宇宙结构或量子结构如何拥有记忆感到困惑。它们在某种程度上会记住。让我们回到数学和物理学以及几何学。当我参加科学奥林匹克竞赛时,我非常专注于两三个方面:几何学、三角学和代数。我在去年意识到,物理学中的损失量与数学中的损失量大致相当。而且数学中的常数,如果你真的深入思考几何学,它们与数学和物理学中的常数都匹配。如果你真的更深入地思考,它们似乎超越了所有其他学科。这让我思考了很多。我发现支配 LLM 的原理与支配神经科学的原理是完全相同的,与支配数学的原理也是完全相同的。我研究了 Perilman 的论文。我不知道你是否听说过 Pearlman。Pearlman 是这位数学家,他拒绝接受一百万美元的奖金,以证明关于三个球体对称性的最重要的猜想之一。当我意识到球体和圆的深层数学与注意力模型和扩散模型的工作方式密切相关时。基本上,Pearlman 达到的公式将熵与曲率联系起来,而曲率基本上,如果你想到曲率,那就是注意力,那就是引力,所以从某种意义上说,有多个学科中相同的事物反复出现,我将与一些杰出的导师一起发表一系列论文,他们是这些方法论中的两篇的合著者,即 Transformer 和 VAE,我得出了这个认识,这个方程支配着一切,支配着质量,支配着物理学,支配着我们的 AI 记忆,支配着神经科学、生物学、物理学、化学等等。所以,我得出了这个方程:记忆乘以计算等于 i 的平方虚数圆。如果它曾经存在,我们将拥有完美的对称性,我们将不复存在,因为我们要存在,这些不对称性就需要出现。从某种意义上说,每一个 LLM 通过权重和偏差,权重提供了结构。计算将数据转化为某种原始格式。计算将它变成权重。权重基本上,如果你取这些数十亿个参数,权重就是这些数据在原始数据中找到关系时的矩阵结构。好的。然后有这些偏差,这些微小的偏移,试图以一种稳健的方式适应这个模型,使其不会崩溃,但仍然很好地反映现实。所以,有些东西缺失了。所以,当我们取权重和偏差并应用缩放定律并不断添加更多数据、更多计算时,我们对现实的理解就会越来越好。从某种意义上说,如果我们有无限的数据,我们就不会有任何偏差。而这种理解又是这个图轨道的原理。偏差的消失是我们扩展模型时所追求的。所以,从某种意义上说,记忆和计算的数量应该是完全相同的。它只是以不同的方式表达。但如果存在任何不平衡,就会发生一些重要的事情。我得出了另一个结论:我们的宇宙基本上是一个网络数据库。它具有图结构,并且是时间结构。所以,它会遵循某些原则和规则不断发展。而这些原则和规则不一定是模糊的,它们必须是模糊的,否则一切都将完全可预测。但如果一切都完全可预测,那就意味着我自己将知道关于过去的我的一切,以及关于未来的我的一切。所以,从某种意义上说,这是不可能的。这就是为什么我们有这种热扩散熵模型。它们使我们能够存在。但有些东西被保留下来了。关系。在量子层面发生的任何不对称性,任何微小的不对称性都会保留因果联系。而这些因果联系正是我希望你们从这次研讨会中带走的东西。简单的 rag、混合 rag、任何类型的 rag 和图 rag 之间的区别在于,我们能够将这些因果联系保存在我们的记忆系统中。基本上,关系是保留因果关系的原因。这就是为什么我们可以解决幻觉问题。这就是为什么我们可以优化假设的生成和测试。因此,由于理解了这种因果关系保存在关系中,我们就能在生物科学、化学科学领域进行惊人的研究。而当存在这些必需的不对称性时,它们就会产生我所说的曲率。所以,我们直观地感觉到你们每个人都在选择一些特定的研讨会和讲座。现在你们都在参加我们正在进行的讲座和研讨会。这意味着它对你们很重要,也意味着你们可能看到了价值,而这种价值,这种信息通过空间和时间传递。它对你或任何其他对象来说都是非常主观的,我认为我们真的需要理解这一点。所以,LLM 基本上就是这些权重和偏差。所以,相关性使我们有机会变得模糊。你知道吗?我从 Voytech 那里学到的一个东西,大约 10 到 8 到 11 年前,就是幻觉是解决内存或计算不足以应对你正在解决的问题的组合空间问题的必要条件。所以,你基本上是在想象,你正在根据你的历史提出一些假设,并试图将其投射到未来。但你的内存太少,计算能力太少,无法做到这一点。所以,你可以和你拥有的内存和计算能力一样好。所以,这意味着缺失的部分是你可以通过所有这些因果关系和这种模糊性来弯曲的东西。而错误推理是阅读这些不对称性和因果联系。因此,我真的相信代理系统是目前下一个大事件,因为它们遵循网络数据库的原则。但为了具有因果关系,为了从我们的模糊性中恢复这种因果关系,我们需要图数据库。我们需要因果关系。而这正是我们在这里要谈论的这个新兴的图表趋势中的主要内容。现在,我想邀请我们的三位杰出的特邀演讲者上台。我想从 Vasilia 开始。Vasilia,请上台。接下来是 Alex 和 Daniel。我也会做一些介绍。好的。所以,Vasilia 将向我们展示如何根据手头的特定用例来搜索和优化内存。好的,让我们测试一下。嗯,让我们确保它能正常工作。好的。所以,很高兴认识大家。我是 Vasili。我来自黑山,一个巴尔干地区的小国。很美。所以,如果你想去那里,我的表兄弟 Igor 和 Milos 会欢迎你。每个人都认识每个人。所以,如果你只是对记忆感到好奇,我正在构建一个基于图和向量数据库的记忆工具。我的背景是商业大数据工程和临床心理学。所以,Mark 谈到的很多内容都与此相关。我将在这里向你们展示一个小演示。这个演示是关于两个开发者之间的墨西哥对峙,我们正在分析他们的 GitHub 存储库,这些 GitHub 存储库的数据存储在图中,而这个墨西哥对峙意味着我们将让代理团队去分析,查看他们的数据,并尝试将他们相互比较,并给我们一个结果,应该代表我们应该雇用谁,比如说,在这两个人中。所以,我们现在看到的是 Cognify 在后台是如何工作的。所以,Cognify 的工作方式是添加一些数据,将其转换为语义图,然后我们可以用各种选项来搜索它。我们在上面接入了 Crew AI。所以,我们几乎可以实时完成这个。所以,这里在后台我有一个正在运行的客户端。这个客户端连接到系统。所以,它现在正在搜索数据集并开始构建图。所以,让我们看看,这需要几秒钟,但在后台,我们正在有效地摄取 GitHub API 的 GitHub 数据,构建语义结构,然后让代理实际搜索它并在此基础上做出决策。所以,正如现场演示一样,事情可能会出错。所以,我有一个视频版本,以防万一。让我们看看,我将切换到视频。哦,来了。所以,语义图开始生成,正如你所看到的,我们有一个活动日志,图表正在实时不断更新。数据被存储在内存中,然后数据被丰富,代理正在做出决策。所以,你在这里看到的侧面是代理逻辑,它正在读取、写入、分析和使用所有这些预先配置的权重和基准来分析这里的任何人。所以,Cognify 是一个模块化的框架,你可以构建这个任务,你可以从任何类型的数据源摄取。现在支持 30 多个数据源。你可以构建任何类型的自定义图。你可以从关系数据库、半结构化数据构建图,我们还有受认知科学方法启发的记忆关联层。然后,有效地,当我们实时构建和丰富这个图时,我们看到它越来越大,越来越受欢迎,然后我们将数据存储回图中。这就是它的状态化时间方面。我们以一种可以添加数据、分析报告、搜索它们并让其他代理实时访问它们的方式构建图。我们的想法是,让我们有一个代理可以写入并不断添加数据的地方。所以,我将看看图表,这样我们可以稍微检查一下。所以,如果我们点击任何节点,我们可以看到关于提交的信息,关于开发者的信息,他们过去所做的事情以及他们贡献过的存储库。然后,最终,当图表几乎填满时,我们将看到最终报告开始出现。所以,让我们看看我们进展到哪里了。它正在准备最终的招聘决策任务的输出。所以,让我们看看它加载时。我们今天早上刚刚完成。我希望今天能有一个托管版本,但它没有通过 AI 导致一些麻烦。所以,让我们看看。是的。所以,我将只向你展示视频的结尾,这样我们就不会等待它。所以,在这里你可以看到,在结尾,我们可以看到图表,我们可以看到最终的决定,这是一个绿色的节点,在绿色的节点中,我们可以看到我们决定雇用 lasslo,我们的开发人员,他拥有图表博士学位,所以做出这个决定并不难,我们看到了原因,看到了数字和基准。所以,谢谢。这是一个非常快速的三分钟演示。希望你们喜欢,如果你们有问题,我之后会在这里。我们是开源的,很高兴看到新用户,如果你有兴趣,请尝试一下。谢谢。哇。谢谢你。谢谢 Vasilia。接下来是 Alex。所以,Vasilia 向我们展示了我称之为语义记忆的东西。所以,基本上,你获取原始数据,加载它,然后对其进行认知。来吧,来吧,Alex。那就是基础。那是我们已经在做的事情。接下来 Alex 将向我们展示 Neo4j MCP 服务器。舞台是你的。测试。四,三,二,一。我们好了。好的。所以,大家好。我叫 Alex。我是 Neo Forj 的 AI 架构师。我将演示我们提供的内存 MCP 服务器。所以,我有一个演练文档。我们将把它放在 Slack 或其他方式上,以便你们可以自己完成。但设置起来非常简单。而我们今天将要展示的,实际上是我们希望在代理记忆应用程序中看到的那些基础功能。主要是我们将在此 MCP 服务器中查看语义记忆,但我们目前正在开发它,并且还将添加其他类型的记忆,我们稍后可能会在演示中讨论。所以,为了做到这一点,我们需要一个 Neo4j 数据库。Neoraj 是一个我们用来存储我们正在创建的知识图的原生图数据库。他们有一个 Aura 选项,托管在云端,或者我们可以使用 neoj 桌面应用程序在本地完成。此外,我们将通过 Claude 桌面完成。所以,我们只需要下载它。然后我们可以将此配置添加到 Claude 的 MCP 配置文件中。这将连接到你创建的 Neo4j 实例。而这里发生的是,我们将从 Pi 下载内存服务器,它将在后端为我们托管。然后它将能够使用 MCP 服务器提供的工具。而我们做的最后一件事,在我们实际进行对话之前,就是使用这个简短的系统提示。而这确保了我们在每次交互后都能正确地回忆和记录记忆。所以,有了这个,我们可以看看我在 Claude 桌面中使用这个内存服务器进行的对话。所以,这是一个关于创办一个代理 AI 记忆公司的对话。所以,我们可以看到这里所有的工具调用。起初,我们的内存存储中什么都没有,这是意料之中的。但随着我们通过这次对话的进展,我们可以看到,在每次交互时,它都会尝试回忆与用户提示相关的记忆。然后在交互结束时,它将在我们的知识图中创建新的实体和关系。所以,在这种情况下,实体将具有名称、类型和观察列表。这些只是我们知道的关于这个实体的所有事实。而这将在我们了解更多关于关系的信息时进行更新。这些只是识别这些实体如何相互关联。而这正是使用图数据库作为上下文层如此重要的核心原因,因为我们可以识别这些实体实际上是如何相互关联的。它提供了非常丰富的上下文。所以,随着这一切的进行,我们可以看到我们有很多交互。我们正在添加观察结果,创建更多实体。而在最后,我们可以看到一个相当长的对话。我们可以说,“让我们回顾一下我们到目前为止所拥有的。”所以,我们可以将整个知识图读回作为上下文,然后 Claude 可以为我们总结。所以,我们拥有找到的所有实体,识别的所有关系,以及基于我们对话所知道的关于这些实体的一切事实。所以,这提供了一个对我们讨论的这家公司以及我们关于如何创办它的想法的很好的回顾。现在,我们也可以进入 Neoraj 浏览器。它在 Aura 和本地都可以使用。我们可以实际可视化这个知识图。我们可以看到我们讨论了 Neo4j,讨论了 MCP 和 Langraph。如果我们点击其中一个节点,我们可以看到我们有一系列观察结果。而这都是我们在整个对话中跟踪的信息。所以,重要的是要知道,即使这个知识图是使用一次对话创建的,我们也可以将其用于其他对话。我们可以将这个知识图与其他客户端一起使用,例如 Cursor IDE 或 Windsurf。所以,这是一种非常强大的方式来为你的所有应用程序创建一个记忆层。所以,有了这个,我将把它传下去。谢谢。好的,给 Alex 一阵掌声。谢谢 Alex。接下来是 Daniel。我将分享我对 MCP 的个人看法。我在研讨会之前测试了 Neo4j Graffiti Cognney Mzier 的 MCP,我坚信这就是我们的未来。我们必须努力实现这一点,稍后我将展示一个迷你图 rag 聊天竞技场。接下来是 Daniel 所做的非常非常重要的事情:时间图。Daniel 是 Graffiti 和 Zep 的联合创始人,他们在 GitHub 上拥有 10,000 颗星,并且增长非常快。舞台是你的。Daniel,请展示你所做的事情。谢谢。所以,五,四,三,二,一。它工作了吗?似乎是。所以,我今天来这里是为了告诉你,没有一种万能的记忆,以及为什么你需要根据你的业务领域来建模你的记忆。所以,如果你早些时候看到我,我谈到了 Graffiti,Zep 的开源时间图框架,你可能看到我谈到了如何为你的特定业务领域构建自定义实体和边。所以,你业务领域中的业务对象。我今天将要演示的是 Zep 如何实现这一点,以及从 Python、TypeScript 或 Go 使用它的简便性。而我们在这里所做的,是解决了一个困扰记忆的基本问题。我们使开发人员能够为许多不同的用例构建更连贯、更有能力的记忆。所以,我将向你展示一个快速的例子,说明事情会变得多么糟糕。所以,你们中的许多人可能使用过 ChatGPT。它会生成关于你的事实记忆。而你可能注意到它在相关性方面确实很挣扎。有时它只是随意地提取关于你的事实。不幸的是,当你存储随意的事实时,并将其检索为记忆,你就会得到不准确的响应或幻觉。而当你构建自己的代理时,也会发生同样的问题。所以,这里有一个例子,一个媒体助手,它应该记住爵士乐、NPR、播客、《每日新闻》等我喜欢听的所有东西。但遗憾的是,因为我正在与代理对话,或者它正在捕捉我的声音,你知道的,它是一个语音代理。它正在学习各种不相关的事情,比如我早上 7 点起床,我狗的名字叫 Melody 等等。而这里的重点是,不相关的事实会污染记忆。它们与媒体播放器业务领域无关。而技术现实是,许多框架在生成事实方面采取了非常简单的处理方式。如果你使用一个具有记忆功能的框架,代理框架,它会生成事实并将其放入向量数据库。不幸的是,向量数据库或 reddus 中存储的事实意味着,当你检索记忆时,很难区分应该返回什么。我们将返回在语义上相似的东西。而这里有一些事实,它们与我请求我最喜欢的音乐在语义上相似。我们有一些好的东西,不幸的是 Melody 也在那里,因为 Melody 是一只名叫 Melody 的狗,这可能与音乐有关。所以,一堆不相关的东西。所以,基本上,语义相似性不是业务相关性,这是可以预料的。我之前一直在谈论向量只是嵌入空间中的投影。它们之间没有因果或关系。所以,我们需要一个解决方案。我们需要领域感知的记忆,而不是更好的语义搜索。所以,有了这个,我将不幸地向你展示一个视频,因为 Wi-Fi 一直非常糟糕。让我打开视频。好的。所以我构建了一个小程序,它是一个财务教练,我告诉它我想买房子。它问我,我一年赚多少钱?它问我可能有多少学生贷款债务。而我们将在右侧看到,在 Zep 的记忆中存储的是一些非常明确的业务对象。我们有财务目标、债务、收入来源等。这些是由开发人员定义的,并且它们的定义方式非常简单易懂。我们可以使用 paidantic 或 zod 或 go strcts,我们可以应用业务规则。所以,让我们来看看一些代码。我们有一个使用 Zep 的底层 SDK 的 TypeScript 财务目标模式。我们可以定义这些实体类型。我们可以给实体类型一个描述。我们甚至可以定义字段,这些字段的业务规则。所以,它们的值。然后我们可以为我们的代理构建工具来检索财务快照,该快照同时运行多个 Zep 搜索,并按节点类型过滤。而当我们启动 Zep 应用程序时,我们将注册这些特定的目标,抱歉,对象与 Zep。所以,它知道要构建这个本体图。所以,让我们做一点小小的补充。我将说我的月租是 5000 美元。我认为是租金。几秒钟后,我们看到 Zep 已经暂停了这条新消息,并捕获了 5000 美元。我们可以看看图表。这是 Zep 的前端。我们可以看到这个用户的知识图有一个债务账户实体。它有我们作为开发人员定义的字段。所以,再次,我们可以通过过滤来非常精确地控制我们从 Zep 检索到的内容。好的,我们时间到了。所以,非常快速地,我们写了一篇关于这一切如何工作的论文。你可以通过下面的链接找到它。感谢你的时间。你可以在之后找到我。顺便说一句,这篇论文很棒。好的。在我准备好之后,我希望你确认一下你是否可以访问 Slack。Slack 对你来说正常吗?好的。我想我们时间不多了。所以,如果你对任何演讲者有任何问题,请在 Slack 上写下这些问题,我们将在房间外面,我们很乐意在研讨会结束后回答更多问题。我现在继续进行一个我开发的用例,以及这个 GraphRack Chat Arena,具体来说,在深入研究代理记忆到知识图之前。我曾领导一个私人的网络安全实验室,为国防客户工作,非常大的客户,在安全方面有非常严重的问题。我曾经在一个项目中不得不处理大约 27 到 29 个不同的终端和 shell,这需要了解很多语言,比如如果你想到不同的 Linux 发行版,每个防火墙和网络设备通常都有自己的专有 shell,通常还有 PowerShell,所以你需要了解很多语言来与这些机器通信,与这样的客户合作,我意识到 LLM 不仅在翻译这些语言方面非常出色,而且它们在创造一种新的 shell,一种人类语言 shell 方面也非常出色。有这样的 shell,但这样的 shell,如果它们有情景记忆,关于这个 shell 历史上发生的事情的时间记忆,它们会非常出色。而如果我们能够访问这种时间历史,事件,我们就能知道用户在做什么,他们的行为是什么,我们就能控制运行的每一个代码执行函数,包括代理的函数。所以我与一些投资者和顾问一起,发现了一个利基市场,我们称之为代理防火墙,我想做一个关于它如何工作的超快速演示。所以,基本上,你会输入命令并输入 pwd,从某种意义上说,我们假设我们中的许多人都上过计算机科学课,或者我们在 shell 中工作过,我们必须记住所有这些命令,比如显示正在运行的 Docker 容器,比如 docker ps,但如果你去更高级的命令,我们可以,我认为这是有原因的。是的,我认为这是有原因的。嗯,一秒钟。抱歉。好的,它在那里。好的,谢谢。总的来说,我现在需要知道一个可以提取正在运行的容器名称及其状态的命令。只显示镜像和状态。我可能会犯像人类语言一样模糊的错误。显示 Apache 是否正在运行。好的,显示我们三条命令之前的命令。所以,基本上,如果你接入代理,如果你接入代理记忆到像这样的东西,我认为它搞错了,但你明白我的意思。所以,如果我通过不同的 shell 和终端,并且我拥有关于已完成的事情的文本上下文,以及关于这里发生的事情的机器的上下文,并且它跨越了所有用户,所有机器,所有用户和所有会话,在 PTY TTY 中,我认为我们真的可以获得非常好的安全上下文,所以那个空间,时间锁,情景锁是我认为将会蓬勃发展并出现的。所以我相信我们所有将在终端中执行代码的代理,都将通过一个代理防火墙执行,也许不是全部,但那些在企业网关上运行的代理,它们将通过代理防火墙。我对此非常确定。所以,这是我的用例。现在,让我们继续 GraphRack Chat Arena。所以,你在 Slack 上有一个指向这个文档的链接,这个文档允许你设置我们为这次研讨会创建的存储库,我们稍后会推广它。所以,大约一年前,我遇到了 Jeru,来自 Lamal Index,我们聊了很长时间,关于如何发展这种对话记忆,他给了我两个建议。其中一个,考虑数据抽象,另一个考虑演进。数据抽象我大约在两个月内就解决了。演进我意识到不会有任何形式的基准演进。所有这些热门话题等等,都很有趣。我知道我们的特邀演讲者和其他人写了一些关于热门话题的优秀论文,但这不重要。你无法为不存在的事物制定基准。基本上,代理图记忆将是这种不断演进的记忆。所以,你不知道它会如何演进。所以,如果你不知道它会如何演进,你就需要一个模拟竞技场,而这将是唯一正确的演进。所以,一年后,我们创建了一个这样的代理记忆竞技场的原型。把它想象成 Web 竞技场,但用于记忆。让我快速向你们展示,你可以去这个存储库。我分叉了它,有 mezzero,有 graffiti,有 cogni,而且将有两种方法。一种方法将是存储库本身,另一种是通过 MCP,因为我们真的不知道哪种方法更好,所以存储库还是 MCP 会更好,所以我们需要测试这些不同的方法,但我们需要为此创建这个竞技场。所以,你基本上克隆这个存储库,我们使用 ADK。所以,我们得到了这个很好的聊天,你可以与这些代理交谈。你可以切换代理。所以,我想和 Neo 谈谈,背后有一个 Neo4j 代理在运行。有一个 Cipher Graph 代理在背后运行,我可以暂时在这些代理之间切换。也许我会稍微增加字体大小。所以,Neo 代理基本上回答关于这项惊人技术,图表,特别是 Neo4j 的问题。我可以切换到 Cipher,然后一个擅长运行 Cipher 查询的代理与我交谈,我正在写“添加到图数据标记”,我热衷于记忆架构,基本上它运行由 cogni、mezero、graffiti 和所有其他语义和时间记忆解决方案的供应商创建的这些层,或者由 Alex 演示的 Neo4j MCP 服务器专门创建的。所以,我非常期待这项技术如何发展。但我真正想快速展示的是,它已经奏效了。它具有成为这个代理记忆竞技场的科学性。所以,我可以问我的图表一些问题,代理会连接。这只是一个。你知道最棒的是什么吗?这只是一个 Neo4j 图。它只是后端的一个 Neo4j 图,而所有这些可以测试图表如何被创建和检索的技术。这就像当我想到它时,这就像我们可以用代理记忆模拟做的最聪明的想法。所以我从图表中得到答案。这是图表。我可以基本上重新运行命令,看看这个图表上发生了什么。让我继续。接下来我想添加到图表中,Vasilio 将展示如何集成 Cognney。所以我添加了新信息,Cipher 将它写入图表中,然后我想做些别的事情。它仍然处于非常早期阶段,但我转移到 Graffiti,我可以重复完全相同的过程。所以,我现在可以使用 Graffiti 搜索我刚刚添加的内容,并且我可以切换这些不同的记忆解决方案。这就是为什么我对它如此兴奋。我们没有时间一起练习,一起做研讨会,但我相信我们会写一些文章。所以,请关注我们。如果你有任何问题,请发给 Slack。我将问 Andreas 我们是否有时间进行简短的问答,还是我们需要将其移到 breakout 或房间外。需要五分钟。五分钟。好的。所以,今天就到这里了。我真的希望 Vasilia、Daniel 和 Alex 回到舞台上,这样你们就可以问任何一个我们。请将问题指向我们中的任何一个人,我们将在之后尝试回答。是的,我们走吧。嗨,我是 Lucas。我想问一个基本问题。随着时间的推移,你如何决定什么是坏记忆?因为作为开发者和作为一个人,我们会随着时间的推移而发展,三年前、十年前你认为的好东西,今天可能就不好了。所以,你如何决定?一个非常好的问题。所以,我将回答,也许你们可以帮忙。我将以一种非常科学的方式回答。所以,基本上,那个引起很多噪音的,那个没有太多意义的。所以,通过冗余和关系来减少噪音。所以,从某种意义上说,一个连接不多的节点有可能不正确,但还有其他方法可以验证它。你想继续吗?是的,当然。一种实用的方法是,我们允许你用 Pantics 对数据进行建模。所以,你可以加载你需要的数据,并为边和节点添加权重。所以,你可以做一些时间加权的事情。你可以添加你自己的自定义逻辑,然后有效地,你就会知道你的数据是如何随着时间演变的,以及它如何变得越来越相关,以及你需要应用哪些算法。所以,这是想法,不是为你解决,而是通过工具帮助你解决。但是的,这取决于用例。是的,我不会添加,我认为这是一个很好的解释。我认为我想补充的是,存在缺失的因果联系。缺失的因果联系很可能是模糊性的一个很好的指标。是的。下一个问题。你能听到我吗?你如何将安全或隐私嵌入到网络或应用程序层?如果有一个公司,他们有绝密数据,或者我有一些个人数据,它是一个图。我想分享,但不是全部。哦,那是一个非常好的问题。我将简要回答。所以,基本上,你确实需要拥有这种上下文。你确实需要拥有这些决策,这些上校、少校以及企业中的任何人在企业堆栈中的意图,从某种意义上说,它也变得模糊而复杂。所以,我预计这将是一个巨大的挑战,这就是为什么我想在这方面工作。但我相信,首先应用本体,正确的本体来这个企业网络安全堆栈,确实能够为导航这个挑战性问题提供护栏,并减少这种模糊性和错误。谢谢。是的,我还要补充一点,所有这些应用程序都构建在 Neo4j 上,所以在 Neo4j 上你可以进行基于角色的访问控制,所以你可以阻止用户访问他们不应该看到的数据。所以,这是你可以配置的东西。这个问题是给 Mark 的。是的,继续。继续。你正要说些什么。请继续。我只想说一点,我们也注意到,如果你为每个用户单独划分图表,或者保持它在物理上分开,这对我们来说效果很好。人们对此反应很好。所以,这是一种方式。是的。独立的图表,个人的图表。是的。Mark,在你之前的演示中,你提到了一个方程,它将引力、熵和某物联系起来,以及记忆和计算与 IQ 平方。你能再次展示它们并再次解释它们吗?当然。是的。如果我们有时间的话。除此之外,这可能需要一系列论文来正确解释。所以,这是第一个,记忆乘以计算等于 i 的平方。另一个是,如果你取所有注意力、扩散和 VAS,它们都在进行平滑处理,它保留了不对称性。所以,非常简短地说,让我们设置词汇表。所以,首先,曲率等于注意力等于引力。这是最简单的最重要的原则。我需要写这些论文时,我们正在非常紧密地尝试定义这三个。接下来,扩散、热量、熵,它们是完全相同的,我们只需要对齐定义,如果它们不是完全相同的,如果有其他定义,我们需要展示。

真正不同的是,现在如果你想到注意力,它会展示通往某些不对称性的那种路径。如果你拿一个球体,如果你开始弯曲那个球体,并让它变得像你知道的那样,你试图去延伸它。会发生两件事。熵增加,曲率在某种意义上增加。佩雷尔曼他证明了你可以以任何方式弯曲这些球体。三维球体、四维、五维以及更高维度的球体已经被解决了。所以他解决了三维球体的问题,而这些方程证明了基本上不会有其他架构用于 LMS。它只会是注意力扩散模型和 VAS,可能不仅仅是 VAS,而是某种可以移动的东西,为偏见留出空间。好的,谢谢大家。我真的很感谢你们的到来。希望有所帮助。感谢各位嘉宾演讲者,我们将在房间外回答问题。很感激。好的,我们还有大约十分钟的休息时间,然后下一位演讲者就要开始了,但我们还有一些准备工作要做。所以,这是喝咖啡的好时机。迈克尔接下来将和我们谈论实用的图谱 RAG,对吧?是的。你好。如果你要参加下一场会议,我认为你必须出去让你的徽章扫描一下,因为他们就是这样追踪每场会议有多少人参加的。所以,这是指示。谢谢。谢谢。我们稍后会再聊。谢谢。谢谢。谢谢。嗯,是的。谢谢大家。我们正在结束这次轮换。感谢你们。祝你们有一个非常好的演示。我喜欢你从别人那里学习的演示方式。如果你要留在房间里,请出去让你的电池扫描一下。我们走吧,因为他们需要准备。所以,我会在那里。我们谈谈。我会在三十秒内到。好的,我去拿我的东西。我是机器人吗?所以非常有趣。当然。我们走吧。是的,我们会。嗯,继续。喜欢你建立的物理学联系。我能写博客吗?我能发现你的一些……我将要写一些像深度科学这样的理论物理学论文。首先是理论物理学,然后是……我有一些草稿,它们正在被审查。它真的……一秒钟……所以,质疑广义相对论并使其成为……这真的很具挑战性。它建立在佩雷尔曼和所有这些量子物理学之上。我只在有非常好的导师时才感到舒适,所以这需要时间。我基本上……我开始的时候是……我和科格尼、格拉菲蒂和米零一起……我们一直在构建东西,但我喜欢……我想进入科学领域。所以,在 LinkedIn 和网站上关注我。好的,我大概可以写一些……关于它的简短帖子。但我们正在尝试做的是……首先是深度理论物理学论文,之后……所以,像第一到第三篇论文将是关于这个的。像第三到第五篇论文将是关于将它与 Transformer、扩散模型、热传递以及所有这些其他东西联系起来。在某种意义上……我感觉写科普文章会有人负责。所以,我们正在尝试做……真正的研究。你的网站又是什么?嗯,是 markbane.com。我可以给你看。一秒钟。嗯,嗯,可以拍张照片。当然。是的,当然。嗯,你能……我的……一秒钟。你能拍一下吗?是的。谢谢。是的。是的,我们会处理的。你拿回麦克风了吗?哦,好的。酷。好的。所以,他将是其中之一。好的。好的,请从五开始倒计时。你好。你好。说 51。迈克尔,请从五开始倒计时。慢一点。哦,好。请从十开始倒计时。十、九、八、七、五、六、五、四、三、二、一。好了,你好了。所以,请……[音乐]……这部分我会修复的。当然。好的,请从五开始倒计时。五、四、三、二、一、零。可以吗?是的。是的,没问题。你知道最好的。美丽的。好了,非常感谢。谢谢。所以,我们一开始就有所有关于……论文的幻灯片。我们要跳过一些吗?因为我有一张总结幻灯片,上面有一张幻灯片包含了所有的搜索内容。你想怎么做?是像幻灯片一样吗?我的意思是,我只是会快速浏览一下。好的。是的。所以,我将在这里,对吧?所以,从这里。是的。切换。她说你需要待在讲台。所以,你必须退后,然后我在这里,因为直播。好的。它将上传到 YouTube。没关系。酷。好的。所以,我只是介绍一下。我认为我们应该一起在这里介绍。是的。但如果你不想站在这里看我,你可以坐下。所以,你只需要这样做,然后……是的。你有遥控器吗?不,我忘在家里了。你有吗?是的,我有一个。我的意思是,试试看。哦,我以为只是一个 USB 记忆棒。哦,USB。我们随时准备着。好。现在我们可以……这很好。大家好。希望你们喝了不错的咖啡。请进。嗯,我们今天谈论图谱 RAG。当然是图谱 RAG 的技巧。嗯,我们想看看成功的图谱应用的模式,嗯,通过引入知识图谱来让 LLM 变得更聪明。我叫迈克尔·洪加。我是 V4J 的产品创新副总裁。我叫史蒂芬·沈。我负责 Neo Forj 的开发者关系,嗯,实际上,我们都是合著者。这很有趣,因为我们都是作者,而且我们多年来一直是朋友,终于有机会一起写一本书了。我们正在为 O'Reilly 合著《图谱 RAG:权威指南》。所以,基本上,我们上周末没睡,因为我们有书的截止日期。是的。所以,嗯,我将从高层次上谈谈图谱是什么,为什么它很重要,我们在媒体上看到什么,然后迈克尔将深入探讨所有细节和模式,并给你很多要点和你可以做的事情。这可能是……如果你想知道如何做图谱 RAG,迈克尔的快速讲解是你能得到的最好的介绍。所以,我也很兴奋。太棒了。我们开始吧。好的,那么图谱 RAG 的理由就是我们要开始的地方。使用 LLM 和其他模式来解决这个问题的主要挑战是,它们缺乏企业领域知识。它们不验证或解释答案。它们容易出现幻觉。嗯,它们存在伦理和数据偏见问题。你可以看到,就像我们友好的鹦鹉一样。嗯,它们就像鹦鹉一样行为和举止,除了是一只可爱的鸟。所以,我们想做得比这更好,用图谱 RAG 来弄清楚如何使用领域特定的知识来获得准确、有上下文和可解释的答案。而且,我真的认为很多公司和行业正在弄清楚的是,这真的一个数据问题。你需要好的数据。你需要有可以为你的系统提供动力的数据。嗯,你可以用 RAG 来做到这一点的一种模式。所以,你可以把你的外部数据放进 RAG 系统。你可以从……数据库中获取东西,但向量数据库和 RAG 有不足之处,因为它……它缺少你全部的数据集。它只通过向量相似性算法提取一小部分信息。通常,很多,尤其是现代向量数据库,每个人都在使用它们,它们很容易上手,但它们不健壮。它们不成熟。它们不是你构建强大、健壮的企业系统所需要的东西,而且向量相似性不等同于相关性。所以,使用基本 RAG 系统得到的结果,它们会返回与主题相关的东西,但它不完整,而且通常也不太相关。而且,很难解释系统输出的内容。所以,我们需要答案的生命线。是的。图谱 RAG。图谱 RAG 是我们将知识和上下文引入 LLM 擅长的领域。所以,你可以把它想象成人类的大脑。我们的大脑……我们的右脑更具创造性。它更擅长……构建东西。它更擅长……推断信息。而我们的左脑是逻辑部分。它拥有推理、事实,并能丰富数据。它建立在知识图谱之上。所以,知识图谱是节点、关系和属性的集合。这是一个非常简单的知识图谱示例,其中有两个人。他们住在一起,你有一辆车,但当你深入了解细节时,它实际上比乍一看要复杂一些,因为他们……他们都有车,但车的所有者不是开车的人。这有点像我的家人。我妻子负责所有账单,但当我们上高速公路时,她就把钥匙递给我。她讨厌开车。所以,知识图谱也是获取丰富数据的绝佳方式。嗯,这是一个关于 Stack Overflow 图谱构建到知识图谱的示例,你可以看到所有丰富的元数据和结果的复杂性。我们可以用它来将 RAG 演变成一个更复杂的系统,基本上是图谱 RAG,在那里我们可以获得更好的相关性。我们获得更相关的结果。我们获得更多上下文,因为现在我们可以通过图谱邻近算法提取所有相关信息。我们可以解释正在发生的事情,因为不再只是……向量。不再是向量数据库输出的统计概率。我们实际上有节点。我们有结构。我们有可以查看的语义,并且我们可以在其之上添加安全性和基于角色的访问。所以,它是上下文丰富的,它是基于事实的。这给了我们很多力量,也给了我们解释我们正在做什么的能力。现在我们可以……我们可以可视化它,我们可以分析它,我们可以记录所有这些。现在……这是微软研究院的早期论文之一,关于图谱 RAG 的论文,他们对此进行了研究,他们表明,你不仅可以获得更好的结果,还可以降低代币成本。实际上,使用图谱 RAG 算法的成本更低。此后,已经有很多论文展示了图谱 RAG 领域正在进行的各种研究和有趣的工作。嗯,这只是对不同研究和结果的快速浏览,但即使从早期数据来看。World 研究表明,图谱 RAG 的能力提高了三倍,分析师甚至显示图谱 RAG 的趋势正在上升。所以,这是 Gartner……2024 年的……炒作周期,你可以看到通用人工智能正在……走下坡路。RAG 正在克服障碍,但图谱 RAG 和许多这些东西实际上正在为人工智能生态系统注入更多生命。所以,Gartner 有很多很棒的报告,表明它基于事实。它解决了幻觉问题。知识图谱和人工智能正在解决这些问题,并且它正在获得不同行业领导者、大型组织的广泛采用……他们正在利用这一点,并实际生产应用程序并使其像 LinkedIn 客户支持一样运作,他们实际上写了一篇很棒的研究论文,表明使用知识图谱进行客户支持场景实际上为他们带来了更好的结果,并使他们能够提高……质量并缩短响应时间。每个问题的平均解决时间减少了 28.6%。我提到了 data.world 研究,它基本上是比较了在 SQL 上进行 RAG 与在图谱数据库上进行 RAG,他们显示 LLM 回答的准确性提高了三倍。让我们来谈谈模式,迈克尔,因为我认为每个人都想学习如何做到这一点。确切地。所以,让我们看看如何实际做到这一点。对。所以,嗯,如果你看看图谱 RAG,实际上有一枚硬币的两面。所以,一方面,你当然不是凭空开始的,你必须创建你的知识图谱,对吧?所以,VC 基本上需要多个步骤才能到达那里。最初,你获取非结构化信息。你将其分解。你将其放入一个词汇图谱,它表示文档块及其关系。在第二步中,你可以使用 LLM 和这个图谱模式来提取实体和关系。在第三阶段,你可以通过图谱算法来丰富这个图谱,例如执行 PageRank、社区摘要等。然后,当你构建好这个知识图谱后,你就可以将图谱 RAG 作为搜索机制,无论是本地搜索还是全局搜索,以及……其他方式。对?所以,让我们首先稍微详细地看看知识图谱构建的第一阶段。嗯,所以,就像数据工程中一样,如果你想获得更高质量的输出,你必须在开始时付出更多的努力,对吧?所以,基本上,没有什么是不劳而获的。毕竟没有免费的午餐。但你在开始时所做的事情会多次得到回报,因为你从非结构化文档中获得的是高质量、结构化的信息,然后你可以用它来提取查询的上下文信息,从而最终实现丰富的检索。好的。在看到……图谱 RAG 被许多用户、客户使用后,我们查看了研究论文,我们看到出现了一些模式,关于我们如何构建图谱,如何查询这些图谱等等。所以,我们开始收集这些模式并将它们放在 graph.com 上。我想展示一下它是什么样的。所以,我们基本上有……示例图谱……在模式中,模式有一个名称、描述、上下文,我们还看到了用于提取此信息的查询。对?所以,例如,这里有一个……词汇图谱和领域图谱的混合体,然后我们可以有一个查询来获取……这些信息。让我们更详细地看看图谱模型方面的三个步骤。所以,一方面,我们有……对于左侧图谱,文档和元素。所以,它可以是像一个块一样简单。但是,如果你有结构化的元素文档,你也可以做一些事情,比如……有一个书,里面有章节,有段落,段落是你可以用来……例如,创建向量嵌入的语义上连贯的单元,你以后可以用于向量搜索。但图谱中真正有趣的是……你可以将这些东西连接起来,对吧?所以,你确切地知道一个块的前一个是谁,后一个是谁,一个元素的父元素是谁。使用向量或文本相似性,你也可以通过 K 最近邻或相似性图谱将这些……块连接起来,你基本上存储块之间的相似性,然后你把它们之间的关系以及一个加权的得分,基本上是两个块有多相似,然后你可以在提取上下文时使用所有这些关系,在检索阶段,例如,找到与文档、……时间顺序、相似性等相关的块。所以,这就是词汇方面的情况。嗯,这看起来是这样的。所以,例如,如果你有一个 RFP,你想以结构化的方式将其分解,那么你基本上会创建这些块之间的关系,或者……这些文本的子部分,进行向量嵌入,然后你大规模地进行,然后你得到一个完整的……词汇图谱。下一个阶段是实体提取。嗯,这也是 NLP 领域存在了相当长一段时间的事情,但 LLM 实际上将其提升到了一个新的水平,因为它们具有多语言理解能力、高度灵活性和良好的语言技能。所以,你基本上提供一个图谱模式和一个……指令提示给 LLM,加上你的信息片段、文本片段。现在,有了大型上下文窗口,你可以输入一万到十万个代币进行提取。如果你有……你也可以输入已有的真实数据。所以,例如,如果你有……现有的结构化数据,其中你的实体,比如产品、基因、合作伙伴或客户已经存在于你的知识图谱中,那么你也可以将其作为提示的一部分。这样 LLM 就不会进行提取,而是更多地进行识别和……查找方法,你找到你的实体,然后从中提取关系,然后你可以存储额外的、……额外的你存储的信息,作为关系和实体的一部分。所以,基本上,在第一部分,你有词汇图谱,它表示文档结构。但在第二部分,你提取相关的实体及其关系。如果你已经有一个现有的知识图谱,你也可以将其连接到一个现有的知识图谱。所以,想象一下你有一个……CRM,其中你的客户、潜在客户已经存在于你的知识图谱中,但然后你想用……例如,来自通话记录的协议来丰富它,然后你基本上将其连接到现有的结构化数据。所以,这也是一种可能性。然后在下一个阶段,你可以运行图谱算法进行丰富,然后例如对实体图谱进行聚类,然后生成……类似……社区的东西,LLM 可以生成摘要……跨越它们。所以,特别是最后一个很有趣,因为你识别的是……跨文档的主题。因为基本上每个文档都是……基本上是信息的时序……垂直表示。但这个实际上是……它查看哪些主题在许多不同的文档中反复出现。所以,你也会发现这些跨文档的主题集群。酷。所以,如果你看看第二阶段,搜索阶段,它基本上是 RAG 的检索部分。我们在这里看到的是,在图谱检索器中,你不仅仅是进行简单的向量查找来获取……返回结果,而是你进行初始索引搜索,它可以是向量搜索、全文搜索、超文本搜索、空间搜索或其他类型的搜索,以找到你图谱中的入口点,然后你基本上……正如你在这里看到的……从这些入口点开始,你沿着关系向上追溯到一定的程度或一定的相关性,以获取……额外的上下文。这个上下文可以来自用户问题。它可以是外部用户上下文,例如,当来自……比如你的财务部门的人查看你的数据时,你返回的信息与来自……比如工程部门的人查看你的数据时不同。它还考虑了外部上下文,检索多少上下文以及检索哪个上下文,然后你将其返回给 LLM 来生成答案。不仅仅是文本片段,就像你在向量搜索中所做的那样,你还创建了……将这些……更完整的……上下文图谱子集返回给 LLM。而且,现代 LLM 实际上也经过了……图谱处理的训练。所以,它们实际上可以处理这些……额外的模式结构,其中你有……节点关系节点模式,你将其作为附加上下文提供给 LLM。嗯,然后,当然,我提到你可以使用图谱算法进行丰富。所以,基本上你可以做……聚类、链接预测、PageRank 等等来丰富你的数据。酷。让我们看一些……实际的例子。我们没有太多时间了。嗯,一个是来自非结构化源的知识构建。所以,有很多库。嗯,你今天已经听过一些……今天有人做过这类事情。嗯,我们构建的一个工具是……一个允许你获取 PDF、YouTube 视频转录、本地文档、网页文章、维基百科文章的工具,它将你的……数据提取到图谱中。让我切换到……演示。嗯,这是……这是工具。嗯,我上传了……来自不同维基百科页面、YouTube 视频、文章等的信息。这里有一个……例如,Google DeepMind 的提取。所以,你可以使用很多不同的 LLM。然后,如果你想在图谱增强中提供图谱模式,你也可以这样做。所以,你可以说,一个人……为一家公司工作……并添加这些模式……到你的……你的模式中,然后 LLM 使用这些信息来驱动提取。嗯,所以,如果你看看从……DeepMind 提取的数据,就是这个部分,我们可以看到……维基百科文章的两个方面。一个是带有块的文档,这是……图谱的这部分。然后第二部分是从……文章中提取的实体。所以,你看到实际的实体连接知识图谱,这些实体是公司、地点、人物和技术。所以,它遵循了我们的……遵循了我们的模式来提取这个。然后,如果我想运行图谱 RAG,这里有许多不同的检索器。所以,我们有向量检索器、图谱和全文检索器、实体检索器等等,你可以选择。所有这些也是一个开源项目。所以,你只需要去 GitHub 看看。我刚刚运行了这个,因为这里的互联网不太可靠。所以,DeepMind 在做什么?我得到了一个详细的解释。然后,如果我想,我可以在这里查看细节。所以,它显示了它使用了哪些来源。AlphaFold 维基百科,另一个 PDF。我看到使用了哪些块,基本上是全文和混合搜索。但然后我也看到了图谱中使用了哪些实体。所以,从可解释性的角度来看,我实际上可以看到,这些是图谱检索器检索到的实体,除了……与这些实体相关的文本之外,还传递给了 LLM。所以,它得到了一个更丰富的响应。嗯,然后你也可以用 Feras 对其进行评估。嗯,在我进行屏幕操作时,让我再展示一些……我们还做了一些事情,这更像是一种……一种方法,你基本上将这些单独的检索器放入一个……配置中,你基本上有领域特定的检索器……它们……运行单独的查询。所以,例如,如果你看……比如说这个,它有……这里的查询,以及一个带有输入和描述的工具。然后我们可以有一个代理循环,使用这些工具,基本上进行……图谱 RAG,每个单独的工具接收响应,然后进行……更深入的工具调用。我稍后会展示一个更深入的例子。所以,这基本上就是我展示的。所有这些都可以作为……开源库使用。你也可以自己从 Python 中使用它。它展示了 Neo4j 的对话功能,它不仅可以输出文本,还可以输出图表和其他可视化图表,网络……可视化。有趣的是,在代理方法中,你不仅仅使用向量搜索来检索你的数据,而是你基本上将用户问题分解成单独的任务,提取参数并运行这些单独的工具。嗯,然后它们要么按顺序运行,要么在一个循环中运行,以……返回数据。然后你基本上得到这些……输出,然后……基本上,对于这些事情中的每一个,都会调用和使用不同的单独工具。我最后想展示的是……graphite Python 包,它基本上也将所有这些封装在构建和检索中,在一个包中。所以,你可以构建知识图谱。你可以在这里实现检索器并创建管道。这里有一个例子,我传入……PDF 和一个图谱模式,然后基本上……它运行……导入到 Neo4j,然后我可以在 Python 笔记本中可视化……之后的数据。就这样,我给你留下一秒钟……要点是,在 graph.com 上,你可以找到所有这些资源,很多模式,我们很乐意收到贡献,也很乐意进一步交流。如果你有更多问题,我在外面的展位。是的。所以,现在这很棒,我认为你从专家那里得到了所有关于工具的信息。实际上,迈克尔的团队构建了许多工具,比如知识图谱构建器。嗯,非常激动你们都来到了图谱 RAG 赛道,希望以后能和你们多聊聊。如果你有任何关于我和迈克尔的问题,请在街对面的 Neo4j 展位找我们。谢谢。谢谢。谢谢。谢谢迈克尔和史蒂芬。太棒了。我最大的收获是,有太多东西需要看。太神奇了。[音乐]这个是……这个是用于 Wi-Fi 的。好的。非常感谢。所以,在接下来的演讲中,我们将通过一个多代理框架来进行网络分析。是这样吗?正确。太棒了。正确。期待。是的。太棒了。非常抱歉。所以,我们可以得到声音。好了,一、二、三、四、五。五、四、三、二、一。麦克风检查。一、二、一、二。好了,下午好,各位。我叫 Hola Mabad。我是思科的一名产品经理。嗯,我的演示将比技术性更偏向产品性,但……嗯,我认为你们会喜欢的。所以,嗯,我在思科工作了三年,专注于人工智能。嗯,我在一个叫做 Outshift 的团队工作。所以,Outshift 是思科的孵化团队。我们的任务是帮助思科关注新兴技术,看看这些新兴技术如何帮助我们加速传统业务部门的路线图。嗯,所以,嗯,通过……我的专业是电气工程,转到了网络工程,很喜欢,而且我做了一段时间了,但在过去三年里,我专注于人工智能。我们团队还关注量子技术,所以量子网络是我们关注的领域。嗯,如果你想了解更多关于我们做什么的信息。嗯,我们在思科的 Outshift。嗯,你可以了解更多。所以,今天我们将快速深入研究这个。嗯,就像我说的,我是一名产品经理。所以,我通常从客户的问题开始,试图理解他们想解决什么问题,然后从那里开始,朝着为他们创建解决方案的方向努力。所以,作为我们过程的一部分,我们通常会经历这个孵化阶段,在那里我们问客户很多问题,然后我们提出原型,我们进行 A/B 测试,然后我们将其 MVP 交付到生产环境中,一旦我们获得产品市场契合度,该产品就会进入思科的业务部门。所以,这个客户遇到了这个问题,他们说,当我们进行变更管理时,我们在生产环境中有很多失败的挑战,我们如何减少这些?我们能用人工智能来减少这些吗?所以,我们深入研究了这个问题,并意识到这是行业中的一个主要问题。我不会在这里详细介绍,但这是一个大问题。现在,为了解决这个问题,我们想了解人工智能是否真的在这里占有一席之地,还是仅仅是基于规则的自动化来解决这个问题。我们查看了工作流程,意识到工作流程中有特定的环节,人工智能代理可以帮助解决问题。所以,我们……我们强调了三、四和五,我们认为人工智能代理可以帮助增加客户的价值,并减轻他们所描述的痛点。所以,我们和团队坐下来。我们说,让我们来解决这个问题。嗯,所以,这个解决方案包括三个大方面。第一个是……它必须是一个自然语言接口,网络运营团队可以实际与系统进行交互。所以,这是第一件事,不仅仅是工程师,还有系统。所以,例如,在我们的案例中,我们构建了这个系统来与像 ServiceNow 这样的 ITSM 工具进行通信。所以,我们实际上有代理在 ServiceNow 端与我们这边的代理进行通信。第二个部分是……一个多代理系统,它位于……这个应用程序内。所以,我们有一些代理负责做特定的事情。所以,一个负责进行影响评估、进行测试、进行……推理潜在网络故障的代理。第三部分是我们将花一些时间在这里,那就是网络知识图谱。所以,我们有一个……在这个案例中是数字孪生的概念。所以,我们正在尝试做的是构建一个实际生产网络的孪生。这个孪生包括一个知识图谱以及一套执行测试的工具。所以,嗯,我们将在稍后深入探讨这一点,但在我们深入探讨之前,我……我们遇到了这个挑战,好吧,我们想构建一个实际网络的代表性表示。我们该怎么做?嗯,因为如果你对网络很了解,网络是一项非常复杂的技术。在一个客户的环境中,你有各种供应商,各种设备,防火墙、交换机、路由器等等。然后所有这些不同的设备都以不同的格式输出数据。所以,我们的挑战是如何使用知识图谱在一个数据模式中创建一个这个真实网络表示,这个模式可以被代理理解。所以,目标是创建一个摄取管道,能够以代理能够以有意义和预测性的方式采取正确行动的方式来表示网络。所以,为了能够继续进行,我们考虑了这三个主要方面。所以,我们必须考虑数据源是什么。所以,如果你再次看网络,有控制器系统,有设备本身,有设备中的代理,有配置管理系统,所有这些东西都在收集网络数据,或者它们有关于网络的数据。现在,当它们输出数据时,它们以不同的语言输出,Yang、JSON 等等。另一套需要考虑的因素,以及在数据实际输出方面,它可能是流式遥测、JSON 配置文件的形式,或者其他形式的数据,我们如何看待这三个不同的考虑因素,并能够设定……提出一套需求,使我们能够实际构建一个系统,该系统能够解决客户的痛点。嗯,所以,团队……从产品角度来看,我们有一套需求,我们想要一个……一个可以具有多模态灵活性的知识图谱,这意味着它可以处理键值对,理解 JSON 文件,理解网络中不同实体之间的关系。第二件事是性能。如果一个……工程师正在查询知识图谱,我们希望能够即时访问关于节点的节点信息,无论该节点的位置在哪里。这对我们的客户很重要。第二件事是操作灵活性。所以,模式必须是……我们可以将其整合到一个模式框架中。第四部分是……RAG 部分。所以,我们今天已经听了很多关于图谱 RAG 的信息。我们希望这是一个……具有向量索引能力的系统,这样当你想进行语义搜索时,你可以做到。然后,在生态系统稳定性方面,我们希望确保当我们将其部署到客户环境中时,……客户不需要做很多繁重的工作来集成到他们的系统中,而且它必须支持多个供应商。所以,这些是产品方面的要求,然后我们的工程团队……我们开始考虑一些可行的选择。Neo4j 当然是市场领导者,以及各种其他开源工具。最终,工程团队决定进行……一些分析。所以我展示了右侧的表格。它不是一个详尽的列表,但这些是他们考虑过的东西,他们想看看……什么才是解决产品需求的正确解决方案。嗯,我们……我们都集中在前两个,Neo4j 和 ArangoDB。但出于历史原因,团队决定使用 ArangoDB,因为我们在安全领域有一些用例,那是一种……推荐系统类型的用例,我们想继续使用。所以,但我们仍在探索将 Neo4j 用于此项目的一些即将出现的用例。所以,我们选择了 ArangoDB。嗯,最终我们得出了一个看起来像这样的解决方案。所以,我们有这个知识图谱解决方案。这是一个概述。嗯,在左侧,我们有所有的生产环境。我们有控制器,Splunk(一个 SIM 系统),流量遥测数据进来。所有这些都进入这个摄取服务,该服务正在进行 ETL,将所有这些信息转换成一个模式,OpenConfig。所以,OpenConfig 模式是主要围绕网络设计的模式,它有助于我们……因为互联网上有很多关于它的文档。所以,LLM 非常理解它。所以,这个设置主要是……一个网络信息的数据库,以 OpenConfig 模式作为我们与之通信的主要方式。所以,通过单个工程师或与该系统交互的代理进行自然语言通信。所以,我们将其分层构建。所以,如果你……如果你再次了解网络,网络中有一些你想与之交互的实体。所以,我们这样分层,这样,如果……有一个工具调用,或者有一个关于测试的决定,比如,假设你想做一个关于……配置漂移的测试,例如,你不需要访问图谱的所有层,你只需要直接进入原始配置文件,并能够进行比较。如果你想做一个关于可达性的测试,例如,那么你需要几层,也许你需要原始配置层、数据平面层和控制平面层。所以,它的结构是这样的,当代理调用这个系统时,它们理解系统发出的请求,并且能够直接访问它们需要的信息层来执行它。所以,这是图谱系统分层的高级视图。现在,我将……切换方向,回到系统。我记得我描述了一个包含代理、知识图谱和数字孪生以及自然语言接口的系统。所以,让我们谈谈代理层。在我……谈论这个应用程序中的一个特定代理之前,我们正在研究如何构建一个基于开放标准的系统。这是思科的一个挑战。我们正在寻找一个……一个开源集合,包括我们在这里看到的合作伙伴。所以,我们有……思科的 Outshift,我们有 LangChain,Galileo,我们有所有这些……这个集合的支持者。我们正在做的是建立一个系统,允许来自世界各地的代理。所以,这是一个宏大的愿景,它们可以相互通信,而无需在每次你想将它们与另一个代理集成时进行繁重的重构。所以,它包括身份、用于定义代理技能和能力的模式框架、存储代理的目录,以及如何实际组合代理,无论是语义层还是合成层,以及如何观察代理的过程,所有这些都是这个集合愿景的一部分。如果你想了解更多,可以在 agency.org 上找到。我这里还有一张幻灯片,上面有……实际上有一些代码你可以今天使用,或者如果你想贡献代码,你可以去那里,有一个 GitHub 仓库,你可以去那里,你可以开始贡献或使用……使用数据。有可用的文档,也有示例应用程序,可以让你看到它在现实生活中是如何工作的。嗯,我们知道有 MCP,有 A2A,所有这些协议都变得……非常流行。我们也集成了所有这些协议,因为目标不是……创建一个定制的东西。我们希望向所有人开放,让他们能够创建代理,并能够让这些代理在生产环境中工作。所以,回到我们正在谈论的具体应用程序,基于这个框架,我们作为一个团队交付了这一套代理。我们构建了一套代理。所以,我们现在有五个代理作为这个应用程序的一部分。有一个助手代理,它是规划者,负责协调全球所有这些代理。然后我们有其他代理,它们都基于 React 的推理循环。我特别想提一个代理,查询代理。这个查询代理是那个经常与知识图谱直接交互的代理。我们不得不微调这个代理,因为……我们最初尝试使用 RAG 来查询知识图谱,但效果不佳。所以,我们决定为了立即获得结果,我们将对其进行微调。所以,我们对这个代理进行了一些微调,使用了一些模式信息以及示例查询。所以,这帮助我们减少了两件事。我们消耗的代币数量,因为每次我们……之前,AQL 查询都会通过知识图谱的所有层,并且在推理循环中消耗大量代币,并且需要很长时间才能返回结果。微调后,我们看到消耗的代币数量以及返回结果所需的时间都大大减少。所以,这在一定程度上帮助了我们。嗯,所以,我将在这里暂停一下。我谈了很多,有很多幻灯片。我想展示一个快速演示,看看它实际上是什么样的。所以,将所有内容联系起来,从自然语言接口与 ITSM 系统的交互,到代理如何交互,到它如何从知识图谱收集信息并向客户交付结果。好的。是的。所以,我们这里的场景是,一个网络工程师想修改一个防火墙规则。他们必须这样做,以便容纳新服务器进入网络。所以,他们需要做的是,首先从 ITSM 开始。所以,他们在 ServiceNow 中提交一个工单。现在,我们这里的系统,我在这里显示的 UI 是我们构建的实际系统的 UI,我们已经摄取了关于……工单的信息,用自然语言,所以这里的代理能够开始处理它。所以我将播放一个视频,让它……更容易理解。所以,这里发生的第一件事是,这些代理……第一个代理要求……信息被合成并以摘要的方式呈现,以便他们能够快速理解……该做什么。接下来要执行的操作是创建一个影响评估。所以,影响评估在这里的意思是,我想了解这个变化是否会对我产生任何影响,除了直接……目标区域之外,并且这将被总结,然后我们将要求负责这个特定任务的代理将此信息附加到 ITSM 工单中。所以我将说……将这个关于影响评估的信息附加到 ITSM 工单中。这已经完成了。现在下一步是创建一个测试计划。所以,测试计划是我们客户面临的最大问题之一。嗯,他们运行了很多测试,但他们错过了正确的测试。所以,这些代理实际上能够通过互联网上关于测试计划的大量信息进行推理,并且基于从 ServiceNow 工单收集的意图,它将提出一个测试列表,你必须运行这些测试,以确保这个防火墙规则更改不会对生产环境产生重大影响或造成问题。所以,正如你在这里看到的,这个代理已经列出了所有需要运行的测试用例以及每个测试的预期结果。所以,我们将要求这个代理再次将此信息附加到 ITSM 工单中,因为在实施……在批准在生产环境中实施此更改之前,批准委员会需要在此处看到此信息。所以,我们可以看到,这个代理现在已经将该信息附加回 ITSM 工单。所以,两个独立的系统,但代理在相互通信。现在下一步是实际运行所有这些测试用例的测试。所以,嗯,在这种情况下,用于修改防火墙的配置文件位于 GitHub 仓库中。所以,我们将对该配置文件进行一个拉取请求,并获取该信息。所以,这是我们将进行拉取请求的 GitHub 仓库。我们将获取该拉取请求的链接并粘贴到工单中,这样当执行代理开始工作时,它实际上将从那里拉取并使用它来运行此测试。所以,嗯,此时我们……我们将开始运行测试。我们将要求这个代理继续运行测试并执行它。所以,嗯,我附加了更改,抱歉,我没戴眼镜。我将我的……更改候选附加到了工单中。你能继续运行测试吗?所以,这里将发生的是,如果你看屏幕的右侧,一系列事情正在发生。第一件事是,这个……执行代理去查看测试用例,然后它进入知识图谱,它将继续并实际拍摄网络最新视觉或最新信息的快照。

现在将要处理从 GitHub 拉取的拉取请求,这是它刚刚从知识图谱中获取的快照。它将一起计算,然后逐个运行所有单独的测试。所以我们可以看到它正在运行测试一、测试一、测试二、测试三、测试四。所以这一切都发生在我们称之为数字孪生的东西中。所以数字孪生再次是知识图谱的组合,以及一套可用于运行测试的工具。所以这里的工具示例可以是 Batfish,也可以是 Routnet,或者您用于网络工程目的的其他一些工具。所以一旦所有这些测试都完成,这个工具实际上将由这个代理现在生成一份关于测试结果的报告。所以,我们给它一些时间来运行。它仍在运行测试,但一旦它完成所有测试,它将报告实际的测试结果是什么。所以哪些结果,哪些测试实际上通过了,哪些失败了。对于那些失败的,它将提出一些建议,说明您可以做什么来修复问题。我将跳到前面,只是为了快速完成这个,因为时间关系。所以,它已将结果附加到工单,这就是它吐出的报告,就测试运行的报告而言。所以这个执行代理实际上创建了一份关于系统运行的所有不同测试用例的报告。所以,这里有一个非常快速的简短演示。幕后有很多细节,但我可以稍后回答一些问题。我想留给我们的是,在我结束之前,评估对我们理解它如何为客户提供价值至关重要。我们在这里关注各种事情。所以代理本身,知识图谱数字孪生,我们正在关注我们可以量化衡量什么。现在对于知识图谱,我们特别关注外在指标,而不是内在指标,因为我们希望将其映射回客户的用例。所以这是我们看到的关于评估指标的总结。我们仍在学习,目前这是一个 MVP。但我们迄今为止学到的是,这两个关键构建块——知识图谱和一个用于构建代理的开放框架——对我们为客户构建可扩展系统至关重要。所以,我将在还剩 8 秒时停止。感谢您的聆听。然后,如果您有问题,我会在外面。是的。非常感谢,Ola。太棒了。我喜欢深入了解,而且来自产品人员的视角总是很好听。让我们保持现实。谢谢。所以对于图谱 RAG,为这一天的结束,将是我的朋友 Tom Smoker,来自 YAL,他将谈论法律文件以及如何将它们转化为知识,对吧?是的,一部分。是的。太棒了。快速检查一下您的音频。五、四、三、二、一。回来了。还在。哦,你在这儿。太好了。好的。谢谢大家。当我们准备好时,ABK,请告诉我。好的。太好了。我看不清太多。谢谢。我将开始。好的。是的。哦,不。请稍等。请稍等。我们需要更改报告。没关系。驱动器。对不起。好的,我们准备好了。谢谢。谢谢。我视力不好,还有澳大利亚口音。所以,这不是一个很好的组合。所以,我感谢您与我合作。谢谢。大家好。我在这里谈论图谱 RAG,因为我们在这里是为了这个赛道,但我谈论的是在法律行业做什么,以及我们在法律行业做什么,以及在人工智能时代将文件转化为图谱并使用这些图谱是什么样的。我通常需要说明我为什么会出现在这些地方。我今天可能有很多原因可以谈论。您选择您想要的那个,但总的来说,我从事图谱工作已经大约十年了。我与 Neo4j 团队关系很好,而且我从事图谱工作已经很长时间了,但主要是我是一家名为 yhar.ai 的公司的技术创始人,我们比律师先找到案件,然后交给律师。现在,我们如何找到这些案件是一个我将要介绍的过程,但我们使用图谱的变体、多代理系统、信号等。我将在今天详细介绍我们如何做到这一点,从宏观到微观。我很乐意随时回答问题。这大致是我们所做的。我们在法律领域工作。这是一个例子。我们在其他人之前找到集体诉讼、大规模案件。我们有代理。我们有图谱。我们存储这些信息。我们抓取网络。我们用专有流程对其进行限定。我们每天与律师打交道,并确切地了解他们的想法并构建这些案件。我所说的案件就像许多人使用了一种药物产品。该产品对他们造成了伤害。科学已经证明了这种伤害,我们可以收集这些人并集体起诉制药公司。所以我们支持那些这样做的律师事务所。当我说话时,以及在座的所有图谱 RAG 赛道的人都可以开始想象我正在开始开发一个模式。我正在描述个人。我正在描述产品。这些产品有成分。这些成分有浓度。这些浓度可能有 ID 号。突然之间,您可以开始想象有一个大型的、模式化的数据,其中包含一些非常有价值、非常直观且对领域专家非常有用的点。所以,我将开始使用一些定义,因为知识图谱已经存在很长时间了,ABK 会比我更了解这一点。但我从 2016 年开始攻读我的博士学位,我的硕士学位是关于图谱的,当时它远不如现在受欢迎,看到它走了多远真是令人着迷。但我确实认为对我来说定义我们如何使用它们以及我们如何看待它们很重要。总的来说,对我来说,图谱就是关系。这是视觉元素的一部分。还有一个后端元素。但使用图谱的好处是,我可以看到什么与某物相连。我可以明确说明什么与某物相连。我可以对与某物相连的内容进行大规模分析。从我可以将其向下看到我可以对其进行大规模分析。是关系的价值。当我使用关系时,不一定是节点到节点。它可以是节点到节点到节点。它可以是多跳。它可以是您想要的任何变化、分叉和分布式。这就是为什么我们在流程中使用图谱。总的来说,在经营这家公司以及之前作为一名学者,我认为图谱的容易之处在于。人们看着它们说,哇,太棒了。我对此有了很好的理解。另一个人说我也是。而且不一定存在一致性,这两个人刚才所说的。他们可能对所代表的内容有不同的理解。在我整个职业生涯中,这些是图谱的难点,对吧?您可以说它们是连接到边的节点。您可以说它们是分布式的。您可以说它们已备份。人们使用他们拥有的数据、存储方式以及谈论方式有很多种。现在,随着图谱对于图谱 RAG、结构化数据等变得非常必要和一致。越来越多的人来到这个相对小众的领域,以前甚至当时也不一定就其是什么达成一致。所以我确实喜欢定义我们正在使用什么。所以图谱和多代理系统,这是我想定义的两件事,因为人们使用它们的方式有很多种。这就是我们使用多代理系统的方式,对吧?所以现在多代理系统是从非常具体地定义您正在处理的内容并将其链接在一起,并使用 LLM 将所有内容粘合在一起,或者在我们的情况下,将一个复杂的白领工作流程分解为一组我可以进行 IO 测试的特定步骤,并且每个步骤都有不同的要求、不同的频率、不同的状态,并且该状态通常可以由图谱控制。这就是为什么我们在为法律行业构建应用程序时喜欢使用它们。不确定你们是否知道,但律师们其实不喜欢事情出错,对吧?基本上,整个行业就是让这件事非常具体、正确和恰当,而且绝对用正确的语言。因此,在构建应用程序时,概率性大型语言模型本身并不一定有效。我需要一种非常具体的控制、结构和模式来构建这些系统。我需要能够测试并能够准确地查明在任何时候什么地方出了问题。这里有一些问题,对吧?我们听说了多代理系统,至少我听说了多代理系统很多。我相信其他人也听说了。有时工作流程中的一部分比另一部分更重要。有时工作流程中有我不太关心的部分。世界上也有代理。代理意味着这些东西非常强大,但我可以很容易地写一个糟糕的提示,然后我就会得到一个糟糕的代理。所以,关于我信任哪个代理,很少。我们花了很多时间进行尽可能多的护栏。我们花时间确保记忆不仅是即时的,而且是偶发性的。我们花时间捕获随时间变化的信息状态,然后修剪该状态。再次回到,捕获、扩展、修剪、结构化,然后查询状态,对我们来说,发生在图形格式中,因为结构、可扩展性以及移除该扩展的能力非常重要。最后,我尽量不让它太深入,数字太多,但 95% 的准确率,我认为对于单个代理来说,目前是一个很高的要求。也许人们拥有完全准确的代理。我非常高兴。我现在还没有完全正确。我有一些可以部署的系统,比如护栏和人工干预,可以将这些代理带到一个点,使其足够准确,人们愿意使用它们。然而,五个 95% 准确的代理按顺序链接在一起。那就是 77% 的预期准确率。那不是很多代理。如果您考虑一个工作流程,那就是五个步骤。如果我说,如果这五个步骤中的每一个都准确率为 95%,这已经是一个相当难的要求了,特别是如果涉及到 LLM,那么我们就有 77% 的时间能够以我想要的方式完成工作流程。这可能是我总结我的主要问题的一部分,那就是在构建这些系统的过程中,整个过程都是在不确定性下做出的决策。这就是背景。这就是我们理解这些系统的方式。我们使用多代理系统,并且我们天生持怀疑态度。我们每天都使用图谱,并且我们对这些东西的存储和结构方式持自然怀疑态度。但我们以特定且一致的方式使用它们。所以我使用代理这个词是因为每个人都在使用代理这个词。我们构建诉讼代理。诉讼就是我将总结一下,但我们从事集体诉讼/大规模诉讼,如我之前所说,将所有人聚集在一起,将所有伤害放在一起,然后起诉一家制药公司。现在,我们公司不进行任何诉讼或起诉,但我们确实支持那些这样做的律师。我们通过几种方式做到这一点。这是我们看待法律行业的一种方式。毫无例外,一切都需要完美。它需要准确。它需要以正确的方式书写。然后,一旦有了正确的格式,就可以进行创造性的论证。最好的律师非常非常非常注重细节,然后非常有创造力地将这些细节应用于案件。例如,Netflix 出现了一个问题,他们正在像往常一样捕获用户数据,而且他们应该这样做,我是 Netflix 用户,他们捕获我的数据,我对此表示赞赏,因为他们给我推荐了更好的节目。然而,法律对他们能从我这里捕获多少信息有限制,对吧?您不能超过法律限制,否则您可能会进入诉讼程序。现在,如果您超过了,就需要有一个先例来说明为什么有人可以说,“您不能捕获这么多信息。”我所指的特定先例是多年前,Blockbuster 因保留了太多关于人们租用的实体 DVD 的细节而被起诉。这是一个相当有创意的说法,“看,我记得 Blockbuster 发生过,而 Netflix 所做的并没有太大区别。它可能以数字格式呈现。它可能规模更大。它可能是一个算法,而不是推荐它的人。然而,这是我所做的一个有趣的应用程序。因此,这些问题,即必要的准确性,然后在此之上进行创造性,然后所有这些信息都保存在不同的地方,而许多创造性来自于专家头脑中的潜在知识,当您说“好吧,我有这些概率性代理,您可以争辩说它们不是很有创造力”时,就会开始显现出来。我有一些代理,大多数时候做得很好,而且可以很有创造力,而且坦率地说,这可能会让律师感到沮丧。所以,这在律师们希望如何处理这些信息方面产生了冲突。再次,我只是泛泛而谈。我不是律师。我的联合创始人是。如果观众中有律师感到冒犯,我确实表示歉意。但这大致是我所见过的准确的。我们也协助法律发现,对吧?就像我之前描述的那样,可能有一家未具名的制药公司。一家制药公司很好,但碰巧造成了伤害,对吧?他们有最好的利益是将所有信息提供给律师事务所并确切地描述,嗯,不是确切地描述,而是尽可能多地描述。这里有 500GB 的电子邮件,它们无关紧要。随意吧。确切地找出发生了什么以及在什么时间,并找出信息。现在这是一个挑战。很多时候是手动审查。出于必要,有一些捷径和流程,因为许多诉讼都有特定的时间表。阅读诉讼发现过程中提供的所有信息在物理上是不可能的。然而,这是一个通用的图,我使用它,因为我不允许使用我目前正在处理的图。然而,如果您可以获取所有这些信息,提取信息并以一致的方式对其进行结构化,那么这堆电子邮件就变成了一堆我可以立即忽略的信息,以及一堆真正有用的信息,我可以查看。不仅如此,当涉及到图谱时,我实际上可以增强发现中的信息,然后我可以将该视觉效果提供给专家,他们可以立即做出决定。我将回到我之前描述的例子,即制药行业的例子。所以,再次,如果成分具有一定的浓度,那么该浓度就是一个问题。该问题发生在某个特定时间。在可能数百万个节点组成的图谱中,只有少数人有问题,对吧?就像在那些文件堆中只有少数人有问题一样。然而,现在我已经改变了形式,这样我就可以专门关注重要的内容,而不仅仅是以数据驱动的方式关注。我可以以视觉方式和自然语言方式关注,这样了解该自然语言确切含义的律师或了解该自然语言确切含义的专家就可以做出数据驱动的决定。这也是一个过程,如果我们能准确地构建这些信息,我正在提供基础知识。这是一个图谱 RAG 讲座。我们想引入这个图谱。我刚才描述的图谱并不大。我刚才描述的图谱具有一致的模式,并且相对容易检索。我不会说检索已经完全解决了。我将要说的是,我们现在有生产中的代理,律师可以用自然语言查询并进一步了解诉讼以及他们所代表的个人。现在我们来看案例研究。所以那更多的是发现,对吧?一堆文件。案例研究将是很多人使用了该产品,并且他们在网上抱怨。这也是我们公司价值和我们所做事情的很大一部分。人们可以随时抱怨。他们可以对着一个利基子版块大喊大叫,或者他们可以在 Twitter 上,或者他们可以在他们习惯的论坛上。他们可以在 IRC 上,他们可以在任何他们想去的地方,对吧?但他们正在使用关于特定事物的相似语言。因此,在传统的案例研究中,这些信息实际上并没有被发现。很多时候,这是通过与另一个人交谈、订阅时事通讯等方式发生的。人们如何找到信息?所以,这是我从我们网站上截取的图,我保证它看起来比我做的幻灯片好得多,但我倾向于尝试与它们交谈。这是我们业务的案例研究工作方式,那就是我们开始并抓取整个网络。现在,任何人都可以抓取整个网络。这是可行的。这是一个技术挑战,但它是可行的,并且您可以以一定的频率和服务等进行抓取。我们所做的是抓取网络,然后限定抓取的潜在客户。我们将所有信息过滤到个人想要的特定内容。我们有与特定律师事务所和律师合作的模式。这些模式将我们缩小到他们关心的信息。而且,也许有,但至少对我来说,现在没有完美的案例。没有完美的诉讼。这取决于愿意接受它的律师、合伙人或律师事务所。所以,这不是一个最佳问题。这是一个特定和个性化的问题。而这正是 LLM 等在目前特别有用的地方。这就是多代理系统等非常棒的地方。这就是结构化信息和图谱等突然之间,不同的律师可以拥有不同的多代理系统和不同的图谱来支持他们喜欢的工作方式,而不是像以前那样在其他所有人都喜欢的工作方式上做出妥协,也许能听到一些东西。从那里,一旦我们缩小到他们关心的信号,那些对他们来说是特定的合格信号,该信号就可以进一步生成报告,并且该报告可以完全针对律师。因此,在报告生成方面,再次是多代理系统,由模式支持,并且该模式是一致且经过修剪的,并且该模式看起来像由图谱控制的状态,该图谱可以构建律师想要的报告,并且每份报告都会有所不同,但结构对于每个律师来说都是相同的,并且每个律师都有不同的流程。我所泛泛描述的是大规模抓取网络,然后生成仅针对律师的特定信号。这是一项完全个性化的自动化服务,这就是我们所做的过程,这也是我们能够管理和使用状态、图谱和多代理系统来整合信息的一部分。好的。我将继续,我认为我有一个案例研究,我想描述一下,只是考虑到时间。这种情况发生了。这并不好。没有人真正希望它发生。可能存在一些情况,即一群人购买了一辆他们真的希望它着火的汽车。我们不一定处理他们。我们确实发现,有些人正在驾驶他们的汽车,它开始冒烟,然后着火了,而且这不是他们打算发生的行为,对吧?购买时手册上没有。不是他们想要的。这些人立即抱怨,他们应该这样做,对吧?他们会去政府网站。他们会去 carcomplaints.com。他们在特定的子版块或论坛上。一旦我们开始跟踪这一点,我们就可以做到,一旦我们开始抓取、结构化、模式化和分析,我们就可以开始为特定车辆、特定年份、特定问题构建投诉密度。这种密度是投诉数量乘以投诉速度的组合。所以每月的某个数量,在一定月数内。突然之间,我们就能及早发现这些潜在客户。现在,当我们构建模型时,我们开始越来越早地发现这些潜在客户,而且我们不一定需要立即获得速度。我们可以开始找出之前的诉讼是什么,这些诉讼都是公开的,并且有详细的记录,以及在该过程中确切发生了什么。因此,对于一家大型律师事务所来说,在人们开始投诉大约八到九个月后,他们就可以选择提起诉讼,如果我们愿意的话。对我们来说,我们可以在大约 15 分钟内找到它,然后通常需要一个月左右才能确信这是您想要的信号,因此我们可以更早地找到东西。再次是抓取网络,过滤,生成特定报告,这是一个我们做过的例子,再次,我们处理律师想要的东西。所以这位律师再次提出,人们的汽车着火了,他们并不真正想要它们着火。这些是他就想处理的案件。它涉及一定的金额,它涉及一定的品牌、型号,它在特定的司法管辖区等。这些特定的过滤器,这些模式可以应用于整个过程。这基本上就是图谱。每个律师都有他们想要的特定图谱。不仅如此,他们还可以过滤和反馈这些信息。所以它不仅仅是一个静态图。我的意思是,图谱结构的好处至少是,或者说图谱结构的好处之一是,它是一个可扩展的模式,我可以更新、查询并理解这些信息。所以,虽然我们正在处理 RAG,但我会说我们的聊天 RAG 界面较少。虽然律师们绝对欣赏这一点,但我们在 RAG 或检索增强生成方面有很多工作是生成这些报告,因为律师们虽然想要答案,但他们也想要他们习惯的格式。因此,所有这些图谱每天都在持续创建和构建,然后从那个更广泛的单体结构中提取一个子图,并组合成一份律师可以采取行动的报告。接下来是什么,我将谈谈未来。我的意思是,我所描述的基本上是我们正在做的事情,但这是我们正在做的事情。最终的诉讼,尽早发现并补偿伤害,然后人们可以根据需要获取这些信息。我们完全能够做到这一点,我们能够抓取网络、结构化等。我们能够根据需要迭代地构建模式。这不仅仅是一个生成式 AI 问题,我认为这是我在这次会议上看到的一个重要问题,人们可能正在看到的是,生成式 AI 不比机器学习好,LLM 也不比传统 ML 系统好,但有些情况下,一个很棒,另一个不行。如果您看看多代理系统,再次,我以前是多代理系统的学者,没有人听我的,所以这是一个奇怪的情况,但当您过去将多代理系统组合在一起时,在工作流程的某个地方,您不得不停止或说这不可行,因为我无法将这两部分信息联系起来。它太概率化了,或者太随机了,或者太不一致了,或者描述它的方式不是一个二元特征。对吧?我真的很想输入我想要的东西。现在有了 LLM,您可以做到,但对我们来说,它非常不是一个 LLM 过滤的系统。它是一个 ML 过滤的系统,LLM 允许我们将其连接起来,这样您就可以提供端到端的价值,我认为这以前是不可行的。对我们来说,再次,我们使用图谱已经很长时间了。对我们来说,能够迭代地构建图谱、修剪图谱,并且每份报告都因我们能够管理状态而变得更好,这就是人们喜欢与我们合作的原因,因为我们可以持续地遵循并跟踪他们具体想要的东西。好的。我想我差不多到时间了。我有点早到了,但这已经是关于我乐意与任何人谈论具体细节的演讲了,图谱 RAG 等,多代理系统,但这就是我们使用这个过程的方式。非常感谢。掌声。哦,好的。是的。如果不需要,我不想碰它。最好的方法是什么?哦,抱歉。我下来。我来拿。我可以插拔这个吗?可以吗?谢谢。为我们的一天。非常感谢。稍后见。哇,您的信息太棒了。你们有生意吗?在特定的。感谢大家参加这个房间的会议。我们必须清空这个房间为明天做准备。所以我们感谢您,外面有很多工作空间。我保证外面仍然有 Wi-Fi。可能更好。他们甚至可能有咖啡和柠檬派。谢谢。我们将在外面进行提问。谢谢。他会在外面见你。我保证他不会去任何地方。很高兴我没有音乐。那是什么?我们通常会把音乐调大,但他们没有获得任何版权。他们没有获得任何音乐版权。我们没有音乐。是的。是的。你能说我是制作人吗?是的。太棒了。谢谢。