什么是向量嵌入和向量数据库?

为什么 Rememberizer 不仅仅是一个数据库或关键字搜索引擎。

Rememberizer使用矢量数据库中的矢量嵌入,以便在用户知识源中搜索语义相似性。这是一种比通过搜索引擎或数据库在内容中寻找关键字的信息检索形式更为先进和细微的形式。

一个多维空间

在最先进的形式中(正如Rememberizer所采用的那样),矢量嵌入是由语言模型创建的,其架构类似于支持OpenAI的gpt模型和ChatGPT服务以及Google(Gemini)、Anthropic(Claude)、Facebook(LLama 2)等公司的模型/服务所使用的人工智能LLM(大型语言模型)。因此,自然而然地会使用矢量嵌入来发现适合在AI模型提示中使用的相关知识。这些技术是互补的,也在某种程度上是等价的。出于这个原因,大部分作为服务提供的LLM供应商也会提供矢量嵌入作为一项服务(例如:Together AI的一篇博客OpenAI的另一篇博客)。

矢量嵌入看起来是什么样的呢?考虑一个在二维空间中的坐标(x,y)。如果它表示从原点到这个点的一条线,我们可以把它看作是具有方向的线,换言之,一个 二维空间中的向量。在我们的语境中,一个矢量嵌入将是一个类似768个数字的列表,代表一个在768维空间中的矢量。最终,这个数字列表可以表示在某种程度上代表了诸如"A bolt of lightening out of the blue."这样的短语所包含的语义的Transformer模型中的权重。这与GPT-4等使用的意义的基本表示方式基本上是一样的。因此,我们可以期望一个好的矢量嵌入能够启用我们在现代AI语言模型中看到的那种出色的表现。

值得注意的是,矢量嵌入不仅可以用于表示文本,还可以用于表示其它类型的数据,如图像或声音。而且,借助适当训练的模型,一个可以在不同媒体之间进行比较,因此可以将一段文本的矢量嵌入与一张图像进行比较,或者反过来也是可以的。现在,Rememberizer只能在用户文档和知识的文本组件中进行搜索。但文本到图像和图像到文本的搜索已经在规划中。 Google使用矢量嵌入来支持他们的文本搜索(文本到文本)以及他们的图像搜索(文本到图像)(参考资料)。Facebook已经考虑过使用嵌入来进行他们的社交网络搜索(参考资料)。Snapchat使用矢量嵌入来理解上下文,以便在正确的时间向正确的使用者显示正确的广告(参考资料)。

要深入理解矢量嵌入和矢量数据库如何工作,可以从Hugging Face的概述开始。Pinecone(一个矢量嵌入数据库作为服务的平台)也有一个不错的概述

另一个理解向量中的搜索和知识的极好来源是Meta/Facebook的FAISS库的论文和代码。"FAISS: A Library for Efficient Similarity Search and Clustering of Dense Vectors",作者是Johnson, Douze, and Jégou(2017):FAISS提供了一个关于为大规模密集向量的相似性搜索和聚类设计的库的全面概述。它讨论了在大规模向量数据库中优化索引和搜索过程的方法,包括基于产品量化的方法。学习更多相关知识的最佳途径是参考文档和GitHub上的代码

在考虑矢量嵌入和矢量数据库时,不要忘记考虑开始genAI(生成式人工智能)革命的2017年6月的论文,"Attention Is All You Need."(参考资料)这篇文章介绍了GPT模型以及所有OpenAI、Google、Meta (Facebook)、Nvidia、Microsoft、IBM、Anthropic、Mistral、Salesforce、xAI (Elon Musk)、Stability AI、Cohere以及其它开源提供商跟随其后的LLM背后的Transformer架构。 考虑一下,"Approximate Nearest Neighbors: Towards Removing the Curse of Dimensionality" (1998年的参考资料2010年的参考资料)。这些论文讨论了在高维空间中的近似最近邻(ANN)搜索的理论,这是矢量数据库中用于高效检索相似条目的核心概念。

基于Transformer的模型有一个令人兴奋的特点,那就是,他们使用的数据越多,他们的参数(更大)越多,他们的理解能力和功能就越强。OpenAI在训练他们的GPT-2模型时首次注意到了这一点。意识到这个潜力之后,他们立即停止了作为一个以开源为导向的非盈利性组织的活动,变成了一个专注于开发GPT-3、GPT-4及其著名的前端ChatGPT的闭源盈利性公司。有趣的是,Google拥有这项技术的专利——它是Transformers和Attention Is All You Need背后的研究者们(参考资料)。 ChatGPT对我的描述有一些不同的观点,他们表示,“围绕OpenAI从一个以开源为导向的非盈利性实体转变为一个闭源的盈利性实体的叙述过于简化了一种复杂的演变过程。OpenAI的转变包括对安全和负责任的AI开发的关注以及商业化方面的考虑。值得注意的是,尽管OpenAI优先发展了诸如GPT-3和更高版本的这样的专有技术,但是他们还将继续通过出版物和协作与研究社区保持互动。”

BERT语言模型是基于Transformers的,常常在先进的矢量嵌入引擎中使用。这在2018年的论文"BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding"中被介绍出来(参考资料)。BERT(双向编码器表示的Transfromers)标志着大大向预训练模型转变的趋势,这些模型可以被用于对各种NLP任务进行微调。其对双向训练和Transformer架构的创新性使用在众多基准测试中树立了新的模型性能标准。 早期创新的矢量嵌入创建方法由GloVe(2014,Stanford),Word2Vec(2013,Google)引入。"GloVe: Global Vectors for Word Representation"(参考资料):GloVe(Global Vectors)论文提出了一种新的全局对数双线性回归模型,用于无监督学习词表示,将嵌入的两种主要方法融合在一起:全局矩阵因子化和局部上下文窗口方法。"Efficient Estimation of Word Representations in Vector Space"(参考资料):该论文提出了 Word2Vec,这是一种生成词嵌入的突破性方法。Word2Vec模型,包括连续词袋(CBOW)和跳跃模型,在词嵌入的演变过程中起到了关键的作用。

Last updated