0

如何用Cheshire Cat AI在长尾上“喵喵叫”?- Piero和Nicola | 向量空间讲座

Demetrios Brinkmann

·

2024年4月9日

How to meow on the long tail with Cheshire Cat AI? - Piero and Nicola | Vector Space Talks

“我们热爱Qdrant!它是我们的默认数据库。我们支持三种不同形式:基于文件、基于容器和基于云。”
— Piero Savastano

Piero Savastano是开源项目Cheshire Cat AI的创始人兼维护者。他从深度学习纯研究开始,19岁时从头编写了他的第一个神经网络。在罗马大学和CNR担任研究员一段时间后,他提供机器学习和深度学习领域的国际咨询、培训和指导服务。他在YouTube和TikTok上传播人工智能知识。

“另一个特点是量化,因为有了Qdrant的这个功能,我们提高了性能的准确性。我们使用标量量化,因为我们是模型无关的,也使用其他量化,比如二值量化。”
— Nicola Procopio

Nicola Procopio在数据科学领域拥有超过10年的经验,曾在电信、医疗保健等不同行业和市场工作。目前,他在媒体市场工作,专注于语义搜索、向量空间和LLM应用。他曾在研发领域从事数据科学项目,并且现在是Cheshire Cat等一些开源项目的贡献者。他是专业博客上关于数据科学的科普文章作者。

在 Spotify、Apple Podcast、Podcast addicts、Castbox上收听本期节目。您也可以在YouTube上观看本期节目。

主要收获

您知道吗,意大利、德国和美国的许多公司已经在利用Cheshire Cat的强大功能来完成各种巧妙的用途?它不仅仅是个好看的界面;它已经从一个简单的教程发展成为一个具有影响力的框架!

是时候学习如何“喵喵叫”了!Piero在本期向量空间讲座中讨论了促进该框架成功和扩展的社区和开源性质,而Nicola则揭示了Cheshire Cat如何使用Qdrant和量化,以混合模式增强搜索准确性和性能。

以下是本期节目的亮点

  1. 嵌入的艺术:了解Cheshire Cat如何使用带有嵌入器的集合,并通过标量量化和其他方法对其进行微调,以提高准确性和性能。
  2. 向量的和谐:详细了解如何在混合模式下存储量化向量——这关乎在不影响速度的情况下节省内存。
  3. 内存管理:获取关于如何在Qdrant(Cheshire Cat的首选向量数据库)中管理不同类型内存的内幕消息。
  4. 社区纪事:谈论不断壮大的社区如何塑造Cheshire Cat的演变——从爱好者到核心贡献者!
  5. 展望未来:他们正在酝酿Cheshire Cat的云版本宏伟计划。想象一下一个充满用户生成插件的热闹市场。这就是他们正在描绘的未来!

趣闻:Discord上的Cheshire Cat社区在框架的开发和用户支持中扮演着至关重要的角色,Piero幽默地将其描述为“一团糟”,因为它规模庞大且活跃。

节目笔记

00:00 强大的开源框架。
06:11 教程、代码定制、对话式表单、社区挑战。
09:09 探索Qdrant的内存功能。
13:02 Qdrant对文档量化进行实验。
17:52 探索详细信息、导出和记忆。
20:42 应对确保Cheshire Cat可靠性的挑战。
23:36 利用酷炫功能带来重大挑战。
27:06 基于插件的方法使CAT框架脱颖而出。
29:28 总结

Piero和Nicola的更多引述

“我们与Qdrant有合作关系,因为这个框架的原生数据库就是Qdrant。”
— Piero Savastano

“我们探索了Qdrant的别名功能,我们称之为‘醉猫效应’,因为如果我们有多个嵌入器,例如两个模型,两个具有相同维度的嵌入器,我们可以将来自两个不同嵌入器、具有相同维度的向量放入情景或声明性集合中。但对于相同的句子,这些点是不同的,对于猫来说,就像人类一样,当它混酒喝时会头痛欲裂,不明白它检索到了什么。”
— Nicola Procopio

“这是一个经典的语言模型助手聊天,每条消息都有可解释性,你可以上传文档。所有这些都是自动处理的,我们从新内容开始。你有一个记忆页面,你可以在其中搜索你的猫的记忆,删除、探索集合,这些集合来自Qdrant。”
— Piero Savastano

“因为我是一名研究员、数据科学家,我喜欢玩一些奇怪的功能,比如二值量化,但我们需要专注于用户需求和用户行为。”
— Nicola Procopio

文字记录

Demetrios:互联网上的各位好!我们又来到向量空间讲座了,我得说这是个特别的日子。今天我们邀请到了Cheshire Cat团队,他们将全力以赴,我想马上开始,因为我知道他们有很多要讲的。今天我们有买一送一的折扣。这将是你前所未有的体验。也许我说得太大了。我把他们捧得很高。Piero正在直播。Piero,你在哪儿?Cheshire Cat的创始人Piero。

Demetrios:他来了,Cheshire Cat的创始人。今天与你一起的是Nicola,核心贡献者之一。很高兴能邀请到你们两位,非常激动。你们将向我们讲述你们充满诗意地描述的“如何在Cheshire Cat上用长尾喵喵叫”。我知道你们准备了一些幻灯片。我知道所有这些有趣的东西现在都在运行,我将让你们直接开始,这样我们就不浪费时间了。准备好了吗?谁想先分享屏幕?是Nicola你,还是Piero?

Piero Savastano:我来吧。谢谢。

Demetrios:我们开始吧。伙计,你现在应该看到了。

Piero Savastano:是的。

Demetrios:砰。

Piero Savastano:我们开始吧。谢谢Demetrios。我们很高兴能被邀请到向量空间讲座。我们来谈谈Cheshire Cat AI。这是一个开源框架。我们与Qdrant有一些合作关系,因为这个框架的原生数据库就是Qdrant。它是一个Python框架。在深入细节之前,我将向你展示一个小视频。

Piero Savastano:这是网站。所以你看,这是一个经典的语言模型助手聊天,每条消息你都有可解释性,你可以上传文档。所有这些都是自动处理的,我们从新功能开始。你有一个记忆页面,你可以在其中搜索你的猫的记忆,删除,探索集合,这些集合来自Qdrant。我们有一个插件系统,你可以发布任何插件。你可以出售你的插件。已经有一个庞大的生态系统,我们还提供记忆的解释。我们有适配器适用于最常见的语言模型。

Piero Savastano:暗黑团队,你可以用这个框架做很多事情。这就是它的呈现方式。我们有一个带有教程的博客,但回到我们的数据,它是开源的,GPL许可。我们有一些不错的数据。我们主要活跃在意大利、欧洲大部分地区,东欧,以及美国也有一些社区。已经有很多贡献者,我们的docker镜像已经被下载了很多次,所以启动和运行非常容易,因为你只需运行docker就可以了。我们还有一个拥有数千名成员的discord服务器。如果你想加入我们,会很有趣的。

Piero Savastano:我们喜欢表情包,我们喜欢围绕代码构建文化,所以它不仅仅是代码,这些是猫的主要组成部分。你有一个聊天界面,像往常一样。兔子洞是我们的文档摄取模块。你可以扩展所有这些部分。我们有一个代理管理器。Meddetter是管理插件的模块。我们有一个向量数据库,它原生就是Qdrant。顺便说一句,我们使用基于文件的Qdrant、容器版本,我们也支持云版本。

Piero Savastano:所以如果你正在使用Qdrant,我们支持整个堆栈。现在,通过这个框架,我们有一个嵌入器和一个大型语言模型来到嵌入器和语言模型。你可以使用任何你想要的语言模型或嵌入器,闭源API,开放Ollama,自托管任何东西。这些是主要功能。所以猫的第一个特点是它已经准备好战斗了。它已经是模型无关的,大小适中。终端中的一个命令,你就可以“喵喵”了。

Piero Savastano:另一方面,它不仅有检索增强生成系统,还有一个动作代理。这一切都是可定制的。你可以插入任何你想要的脚本作为代理,或者你可以自定义现成的默认代理。我们的一个特色是,我们不仅像大家一样对文档进行检索增强生成,我们还对对话进行增强生成。我能听到你的键盘声。我们对对话和程序进行增强生成。所以我们的工具和对话式表单也嵌入到数据库中。我们有一个庞大的插件系统。

Piero Savastano:它真的很容易使用,并且具有不同的原语。我们有WordPress风格的事件钩子。我们有工具、函数调用,我们还刚刚为对话式表单建立了一个规范。所以你可以使用你的助手点披萨,例如,多工具对话和点披萨,预订航班。你可以做操作性的事情。我已经告诉过你,我再重复一下,它不仅仅是一个运行器,它是一个功能齐全的框架。所以我们构建它不是为了使用语言模型,而是为了在语言模型之上构建应用程序。有一个详细的文档,描述了所有事件。

Piero Savastano:你会发现教程,只需几行代码,你就可以改变提示。你可以使用受长链启发的工具,而且,这是我们刚刚构建的重要部分,你可以使用对话式表单。我们直接在GitHub和我们的Discord上发起了一个披萨挑战,我们挑战社区成员构建原型来支持多轮对话式披萨订单。这个挑战的结果就是这个规范,你可以在Python中定义一个严格的模型,然后从框架中继承披萨表单、切割表单,你可以给出触发表单、停止表单的语例,并且可以自定义提交函数以及与表单相关的任何其他函数。因此,通过一个简单的子类,你可以处理实用的、操作性的、多轮对话。我真的相信我们是世界上首批构建此类规范的人之一。我们有很多插件。许多都是社区自己构建的。

Piero Savastano:许多人已经托管了私有插件。有一个关于插件的小型独立市场。所有这些插件都是开源的。定制猫的方法有很多。这里最大的优势是没有供应商锁定。因为框架是开放的,插件系统也可以是开放的,你不需要通过大型科技巨头的审查。这是未来将框架沿着开源价值观推进的最佳关键点之一。我们计划增加多模态。

Piero Savastano:目前我们只支持文本,但有插件可以生成图像。不过我们希望框架原生支持图像和声音。我们已经实现了对话式表单。在之后的讲座中我们可以更详细地讨论这个问题,因为它非常酷,我们希望将知识图谱集成到框架中,这样我们就可以同时使用符号向量表示和符号网络表示,例如维基数据。这些东西会非常有趣。是的,我们喜欢Qdrant。它是我们的默认数据库。我们支持三种不同形式,基于文件、基于容器和基于云。

Piero Savastano:但从现在开始,我想把话筒交给Nicola,他在向量搜索方面经验更丰富,他编写了大部分与数据库相关的代码。谢谢大家。Nicola,轮到你了。

Nicola Procopio:谢谢Piero。谢谢Demetrios。我很荣幸能在这里做客,因为我是向量空间讲座的粉丝。好的,Qdrant是cat的向量数据库,现在我将尝试探索我们在Cheshire Cat上使用的功能。第一张幻灯片解释了cat的记忆。因为Qdrant是我们的记忆。我们有一个长期记忆,分为三个部分。情景记忆,我们存储和管理对话、图表;声明性记忆,我们存储和管理文档;程序记忆,我们存储和管理工具,如何用多个嵌入器管理这三种记忆,因为用户可以选择他喜欢的嵌入器并进行更改。

Nicola Procopio:我们探索了Qdrant的别名功能,我们称这个话题为醉猫效应,因为如果我们有多个嵌入器,例如两个模型,两个具有相同维度的嵌入器,我们可以将来自两个不同嵌入器、具有相同维度的向量放入情景或声明性集合中。但对于相同的句子,这些点是不同的,对于猫来说,就像人类一样,当它混酒喝时会头痛欲裂,不明白它检索到了什么。目前我们的流程是这样的。我们用一个名字创建集合,然后使用别名来。

Piero Savastano:标记。

Nicola Procopio:这个集合是用所使用的嵌入器的名称来标记的。当用户改变嵌入器时,我们会检查嵌入器是否具有相同的维度。如果具有相同的维度,我们也会检查别名。如果别名相同,我们不做任何改变。否则,我们创建一个新的集合,这就是醉猫效应。这是我们在猫中使用的一个功能。另一个功能是量化,因为有了Qdrant的这个功能,我们提高了性能的准确性。我们使用标量量化,因为我们是模型无关的,也使用其他量化,比如二值量化。

Nicola Procopio:如果你阅读Qdrant的文档,会发现它不仅对所有嵌入器进行了实验,还对OpenAI和Coer(如果我没记错的话)进行了实验,通过这种发现标量量化,标量量化用于存储步骤。向量被量化并以混合模式存储,原始向量存储在磁盘上,量化向量存储在RAM中,通过这种过程我们可以使用更少的内存。在Qdrant标量量化的情况下,flat 32元素转换为int eight,单个数字,单个元素需要的内存减少了75%。对于大型嵌入,比如我不知道的Gina嵌入或mistral嵌入,它们有超过1000个元素。这将是巨大的改进。第二部分是检索步骤。我们使用量化查询和量化向量来计算余弦相似度,我们得到前n个结果,就像一个简单的语义搜索管道。

Nicola Procopio:但是如果我们需要量化模式下的前n个结果,量化模式的信息质量较低,所以我们使用过采样。过采样是一个简单的乘法。如果我们想要前n个结果(n为10),通过过采样(例如1.5倍),我们得到15个量化结果。当我们得到这15个量化结果时,我们也会检索相同的15个未量化向量。然后,在这些未量化向量上,我们根据查询重新缩放并筛选出最佳的10个。这是一个改进,因为检索步骤非常快。是的,因为使用这些技巧,Cheshire cat的向量可以实现。

Piero Savastano:四。

Nicola Procopio:内存占用降低4倍,性能提升2倍。使用Qdrant的这个功能,我们速度非常快。最后但同样重要的是,我们深入探讨内存。这是Piero之前展示的可视化。这是2D的向量空间,我们使用Disney,它与Qdrant云可视化非常相似。对于嵌入,我们有搜索栏,我们想要检索多少个向量。我们可以选择内存和其他过滤器。我们可以过滤内存,我们可以清除一个内存或所有内存,并清理我们所有的空间。

Nicola Procopio:我们可以深入查看详情。我们可以点击圆点,就会弹出一个气泡,或者使用详细信息,我们会看到离查询最近的前n个结果列表,针对每个记忆。最后但同样重要的是,我们可以以两种模式导出和分享我们的记忆。第一种是通过UI上的导出按钮导出JSON。或者,如果你非常好奇,你可以浏览项目中的文件夹,并分享包含所有记忆的长期记忆文件夹。或者,实验性功能是“唤醒睡鼠”。这个功能很简单,就是下载Qdrant快照。这是实验性的,因为快照很容易下载,我们将努力寻找更快的方法来使用它。

Nicola Procopio:但现在它有效,有时一些用户会使用这个功能,对我来说就是这样,谢谢。

Demetrios:好的,太棒了。时间刚刚好。我知道聊天中已经有一些问题,其中一个问题我认为Piero你已经回答了。但是我们什么时候能吃到用可爱的Cheshire Cat制作的开心果冰淇淋呢?

Piero Savastano:所以计划是让猫通过一个API从服务订购冰淇淋,这已经可以做到了。所以我们可以在某个地方或我们家见面,冰淇淋会通过猫送来。猫能够接收,我们每个人都可以下不同的订单,但是要制作冰淇淋本身,我们要等到有更多的开源机器人出现。然后我们也会去那里。

Demetrios:然后我们就这么做了,就能得到完整的节目。那有多酷啊?好了,我再等一分钟,让聊天中的任何人提问。这真的很酷,我很感谢你们详细介绍了。不仅是这个领域和你们正在做的事情,还有你们使用Qdrant的不同方式,以及其背后的挑战和架构。我很想知道,当大家在输入问题的时候,特别是对你,Nicola,你在努力让Cheshire Cat更可靠,更能自信地执行时,遇到过哪些挑战?

Nicola Procopio:挑战尤其在于如何将Qdrant的许多功能与用户需求结合起来。因为我是一名研究员、数据科学家,我喜欢玩一些奇怪的功能,比如二值量化,但我们需要专注于用户需求、用户行为。有时我们会砍掉Cheshire Cat的一些功能,因为目前对用户来说不重要,我们可能会引入一些错误,或者用户会产生误解。

Demetrios:你听得到我吗?好的。现在我看到聊天中有一个问题,问你们是否正在考虑云版本的猫。比如SaaS,它会来的。正在开发中。

Piero Savastano:正在开发中。不仅可以免费自托管猫,有些人甚至安装在树莓派上,所以它非常轻量。我们计划推出托管版本和一个更大的插件生态系统,带有一个小市场。用户也将能够上传,甚至可能出售他们的插件。所以我们希望建立一个类似于WordPress风格的生态系统。

Demetrios:太酷了。哦,太棒了。所以基本上我从Nicola那里听到的关于挑战是,嘿,我们在Qdrant中有很多很棒的功能,但你几乎必须着眼于目标,确保你正在为人们需要和想要的东西构建,而不是仅仅因为你可以使用很酷的功能就去使用它们。然后Piero,你正在说,嘿,我们真的想让人们能够构建更多很棒的东西,并使用所有这些很棒的不同功能以及他们想要使用的任何口味或工具。但我们想成为那个生态系统的创造者,这样任何人都可以带来并在生态系统之上创建应用程序,然后让他们也能得到报酬。所以不仅仅是Cheshire Cat得到报酬,还有那些正在创造很棒东西的贡献者。

Piero Savastano:是的。社区是第一主角,没有社区。我告诉你,猫最初只是一个教程。当ChatGPT问世时,我决定做一个小小的RAG教程,我选择了Qdrant作为向量数据库。我选择了OpenAI作为语言模型,我制作了一个小教程,然后从一个展示如何在GitHub上构建代理的教程,它完全失控了。所以整个框架是有机增长的吗?

Demetrios:是的,这是最好的。这真的很酷。Simone问是否有公司已经在用Cheshire Cat,能不能提几个。

Piero Savastano:是的,好的。在意大利,至少有10到15家公司分布在教育、客户服务、典型的聊天机器人使用等领域。其中一家公司尤其正在尝试为公共行政部门构建产品,这在国际层面上很难做到。我们看到德国有一些情况,比如网络代理公司开始使用猫,美国也有一些。他们大多试图使用猫和Ollama作为运行器来构建代理。一家公司特别在拉斯维加斯的一次会议上展示了一个关于3D头像的提案。头像内部,猫作为语言设备。

Demetrios:哦,不错。

Piero Savastano:老实说,我们在追踪公司方面有点问题,因为我们目前还没有遥测。我们决定暂时不进行遥测。所以我希望公司能贡献并让自己出现。如果不能,我们将会更多地进行追踪。但使用猫的公司至少有50、60、70家。

Demetrios:是的,不错。所以如果有人正在使用猫,但还没有和Piero聊过,请让他知道,这样他就能了解你在做什么,以及你是怎么做的。还有一个关于市场分析的问题。有没有竞争对手?

Piero Savastano:有很多竞争对手。当你深入了解猫与其他许多新兴框架的区别时,我们从一开始就决定采用基于插件的操作代理。目前,大多数框架都是检索增强生成框架。我们同时拥有检索增强生成、工具和表单。工具和表单也嵌入其中。因此,猫可以拥有20,000个工具,因为我们也嵌入了工具并对函数调用进行回忆。所以我们扩展了文档、对话和工具、对话式表单,到目前为止我还没有看到任何人这样做。

Piero Savastano:所以如果你想构建一个应用程序,一个实用的、操作性的应用程序,用来购买产品、点披萨、做事情、拥有公司助手。猫目前非常擅长。

Demetrios:太棒了。

Nicola Procopio:而且猫在Discord上有一个非常庞大的社区。

Piero Savastano:我们的Discord一团糟。

Demetrios:你有最棒的表情包。如果这都不能让人加入Discord,我不知道什么能了。

Piero Savastano:拜托,Nicola。抱歉打断你。

Demetrios:没有。

Nicola Procopio:好的。社区是Cheshire Cat的一大优势,因为我们在Discord上有很多开发者用户,对于一个开源项目来说,社区是100%的基础。

Demetrios:伙计们,这太棒了。我真的很感谢你们来向量空间讲座,分享关于“猫”的一切。对于任何感兴趣的人,希望他们能去看看,加入你们的社区,分享一些表情包,并参与进来,甚至可能做出贡献并创建一些工具。那将是太棒了。所以Piero和Nicola,我非常感谢你们的时间。我们下次再见。

Piero Savastano:谢谢。

Nicola Procopio:谢谢。

Demetrios:对于任何想参加向量空间讲座并向我们介绍您如何使用Qdrant的人,我们很乐意倾听。只需联系我们,我们将为您安排时间。下次再见。大家再会。再见。

免费开始使用 Qdrant

开始使用