向量数据库的出现填补了人工智能中的关键角色?

时间:2023-01-23 01:12:51

几年前,向量数据库出现在舞台上,帮助推动基于神经网络而非关键词的新型搜索引擎。像家得宝这样的公司使用这种新兴技术极大地改善了搜索体验。但现在,向量数据库在帮助企业部署聊天机器人和其他基于大型语言模型的应用方面找到了新的作用。

向量数据库的出现填补了人工智能中的关键角色?

向量数据库是一种新型的数据库,在机器学习和人工智能领域正变得流行。向量数据库与传统的关系型数据库不同,比如PostgreSQL,它最初是用来存储行和列的表格数据的。它们也明显不同于较新的NoSQL数据库,如MongoDB,它以JSON文档存储数据。

这是因为向量数据库是为存储和检索一种特定类型的数据而设计的:向量嵌入。

当然,向量是代表一个物体的各种特征的数字数组。作为机器学习过程中训练部分的输出,向量嵌入是训练数据的精炼代表。它们本质上是一个过滤器,在机器学习过程的推理部分,新的数据要通过这个过滤器来运行。

向量数据库的第一大应用是为下一代搜索引擎以及生产推荐系统提供动力。家得宝公司通过增强传统的关键词搜索向量搜索技术,极大地提高了其网站搜索引擎的准确性和可用性。向量搜索不需要完美的关键词匹配,而是使家得宝能够利用机器学习的力量来推断用户的意图。

但现在,向量数据库发现自己正处于技术领域最热门的工作负载中间:大型语言模型(LLM),如OpenAI的GPT-4、Facebook的LaMA和谷歌的LaMDA。

在LLM的部署中,一个向量数据库可以用来存储LLM训练后的向量嵌入。通过存储代表LLM广泛训练的潜在的数十亿个向量嵌入,向量数据库执行最重要的相似性搜索,找到用户的提示(他或她正在问的问题)和特定向量嵌入之间的最佳匹配。

虽然关系型数据库和NoSQL数据库已经被修改以存储向量嵌入,但它们最初都不是为存储和服务这种类型的数据而设计的。这给了那些从头开始设计来管理向量嵌入的本地向量数据库一定的优势,比如Pinecone和Zilliz等公司的数据库。

Zilliz是Milvus的主要开发者,这是一个在2019年首次发布的开源向量数据库。根据Milvus网站,该数据库是以现代云方式开发的,可以提供“对万亿级向量数据集的毫秒级搜索”。

上周在Nvidia的GPU技术大会上,Zilliz宣布了向量数据库的最新版本,Milvus 2.3。该公司说,当与Nvidia GPU适配时,Milvus 2.3的运行速度比Milvus 2.0快10倍。向量数据库还可以在GPU和CPU的混合体上运行,据说这还是第一次。

Nvidia还宣布了其RAFT(可重复使用的加速函数和工具)图形加速库和Milvus之间的新集成。Nvidia首席执行官黄仁勋在其GTC主题演讲中谈到了向量数据库的重要性。

“推荐系统使用向量数据库来存储、索引、搜索和检索非结构化数据的大量数据集,”黄仁勋说。“向量数据库的一个新的重要用例是大型语言模型,以检索在文本生成过程中可以查询的特定领域或专有事实......向量数据库对于建立专有大型语言模型的组织来说将是至关重要的。”

Pinecone的营销副总裁Greg Kogan表示,向量数据库也可以被那些满足于通过科技巨头披露的API来利用预训练的LLM的组织所使用。

像ChatGPT这样的LLMs,经过对互联网巨大的数据语料库的训练,已经显示出它们应对问题的反应方面非常出色(尽管不是完美)。由于它们已经被训练过,许多组织已经开始投资于提示工程工具和技术,以使LLM在他们的特定用例中更好地工作。

GPT-4的用户可以用多达32000个 “标记”(单词或单词片段)提示模型,这代表了大约50页的文本。这大大超过了GPT-3,后者可以处理约4000个标记(或约3000个单词)。据Kogan称,虽然标记对提示工程至关重要,但向量数据库在为LLM提供一种持久性方面也有重要作用。

“现在你可以装下50页的上下文,这相当有用。但这仍然是你在一个公司内总背景的一小部分,”Kogan说。“你甚至可能不想填满整个上下文,因为那样你就要付出延迟和成本的代价。”

“所以公司需要的是一个长期的记忆,是在模型上添加的东西,”他继续说。“模型是了解语言的东西,它可以解释它。但它需要与长期记忆结合起来,将储存你公司的信息。这就是向量数据库。”

Kogan说,今天Pinecone的客户约有一半涉及LLMs。通过在向量数据库中塞入代表其整个知识库的嵌入物--无论是零售库存还是企业数据--Pinecone的客户获得了一个长期存储其专有信息的区域。

有了Pinecone作为长期存储器,数据流的工作方式有些不同。Kogan说,客户的问题不是直接提交给ChatGPT(或其他LLM),而是首先被转到向量数据库,它将检索出与该查询最相关的10或15个文件。然后,向量数据库将这些支持性文件与用户的原始问题捆绑在一起,将整个包作为提示提交给LLM,由LLM返回答案。

Kogan说,这种方法的结果优于只是盲目地问ChatGPT问题,而且还有助于解决LLM讨厌的幻觉问题。

作者:Alex Woodie