当您浏览Twitter、LinkedIn或新闻源上的时间轴时,可能会看到一些关于聊天机器人、LLM和GPT的内容。因为每周都有新的LLM发布,很多人都在谈论LLM。
我们目前置身于一场人工智能革命,许多新应用都依赖于向量嵌入。不妨让我们更多地了解向量数据库以及为什么它们对LLM很重要。
向量数据库的定义
不妨先定义向量嵌入(Vector Embedding)。向量嵌入是一种数据表示,它携带语义信息,帮助人工智能系统更好地理解数据,并能够保持长期记忆。对于任何您想学的新东西,最重要的部分是理解并记住主题。
嵌入是由人工智能模型生成的,比如含有大量特征的LLM,这使得它们的表示难以管理。嵌入表示数据的不同维度,以帮助AI模型理解不同的关系、模式和隐藏结构。
使用基于标量的传统数据库的向量嵌入是一个挑战,因为它无法处理或跟上数据的规模和复杂性。鉴于向量嵌入具有的种种复杂性,不难想象它需要专门的数据库。这时候向量数据库就有了用武之地。
向量数据库为向量嵌入的独特结构提供了经过优化的存储和查询功能。它们提供简单的搜索、高性能、可扩展性和数据检索,这一切都是通过比较值和查找彼此之间的相似性来实现的。
是不是听起来很棒?有一种方法可以处理向量嵌入的复杂结构。不过向量数据库很难实现。
就在不久前,向量数据库还只被那些不仅有能力开发而且有能力管理的科技巨头所使用。向量数据库成本高昂,因此确保它们经过正确校准对于提供高性能非常重要。
向量数据库是如何工作的?
现在我们对向量嵌入和向量数据库有了一定的了解,不妨看看它是如何工作的。
不妨从一个处理ChatGPT等LLM的简单示例开始。该模型有大量的数据和大量的内容,它们为我们提供了ChatGPT应用程序。
不妨看看这些步骤。
1.作为用户,您将往该应用程序输入查询。
2.然后您的查询被插入到嵌入模型中,该模型基于我们想要索引的内容创建向量嵌入。
3.然后向量嵌入移动到向量数据库中。
4.向量数据库生成输出,并将其作为查询结果发回给用户。
当用户继续进行查询时,它将通过相同的嵌入模型来创建嵌入,以查询该数据库中类似的向量嵌入。向量嵌入之间的相似性基于创建嵌入的原始内容。
想知道更多关于其在向量数据库中的工作原理吗?不妨了解更多。
库以行和列的形式存储字符串和数字等内容。从传统数据库查询时,我们查询的是与查询匹配的行。然而,向量数据库处理的是向量,而不是字符串等内容。向量数据库还运用相似度度量指标,该指标用于帮助找到与查询最相似的向量。
向量数据库由不同的算法组成,这些算法都有助于进行近似最近邻(ANN)搜索。这是通过散列、基于图的搜索或量化来完成的,它们被组装到一条管道中,以检索所查询向量的邻居。
结果取决于它与查询的接近程度,因此考虑的主要因素是准确性和速度。如果查询输出慢,结果就比较准确。
向量数据库查询要经历的三个主要阶段:
1.索引
如上例所述,一旦向量嵌入进入到向量数据库中,它就会使用各种算法将向量嵌入映射到数据结构,以便更快地进行搜索。
2.查询
一旦完成了搜索,向量数据库将查询的向量与索引的向量进行比较,并运用相似性度量指标来查找最近邻。
3.后处理
根据您使用的向量数据库,向量数据库将对最后的最近邻进行后处理,以生成查询的最终输出。另外,还可能重新排列最近邻,供将来引用。
结语
随着人工智能的不断发展和新系统的每周发布,向量数据库的发展起到了重要作用。向量数据库使公司能够更有效地与精确的相似度搜索进行交互,为用户提供更好更快的输出。
所以下次您在ChatGPT或Google Bard中输入查询时,想想它为您的查询输出结果所经历的过程。