什么是向量嵌入和向量数据库?
为什么 Rememberizer 不仅仅是一个数据库或关键字搜索引擎。
Last updated
为什么 Rememberizer 不仅仅是一个数据库或关键字搜索引擎。
Last updated
Rememberizer 使用向量嵌入在向量数据库中实现对用户知识源的语义相似性搜索。这是一种比通过搜索引擎或数据库简单查找内容中的关键词更为先进和细致的信息检索形式。
在其最先进的形式中(如 Rememberizer 使用的那样),向量嵌入是由具有类似于支撑 OpenAI 的 gpt 模型和 ChatGPT 服务的 AI LLM(大型语言模型)架构的语言模型创建的,以及来自 Google(Gemini)、Anthropic(Claude)、Facebook(LLama 2)等的模型/服务。因此,使用向量嵌入来发现相关知识以包含在 AI 模型提示的上下文中是很自然的。这些技术是互补的,并且在某种程度上是等价的。因此,大多数 LLM 作为服务的提供商也会提供向量嵌入作为服务(例如:来自 Together AI 的博客 或 来自 OpenAI 的另一篇博客)。
向量嵌入是什么样的?考虑二维中的一个坐标 (x,y)。如果它表示从原点到这个点的线,我们可以将其视为一条具有方向的线,换句话说,是一个 二维向量。在我们的上下文中,向量嵌入将是一个类似于 768 个数字的列表,表示一个 768 维空间中的向量。最终,这个数字列表可以表示在 Transformer 模型中介于零和一之间的权重,这些权重定义了短语的含义,例如“晴天霹雳”。这在根本上与 GPT-4 中使用的意义表示是相同的。因此,我们可以期待一个好的向量嵌入能够实现现代 AI 语言模型中所看到的同样出色的表面理解。
值得注意的是,向量嵌入不仅可以用于表示文本,还可以用于表示其他类型的数据,例如图像或声音。通过适当训练的模型,可以跨媒体进行比较,因此文本块上的向量嵌入可以与图像进行比较,或 反之亦然。今天,Rememberizer 仅支持在用户文档和知识的文本组件中进行搜索。但文本到图像和图像到文本的搜索在计划中。 Google 使用向量嵌入来驱动他们的文本搜索(文本到文本)以及他们的图像搜索(文本到图像)(参考)。Facebook 考虑在他们的社交网络搜索中使用嵌入(参考)。Snapchat 使用向量嵌入来理解上下文,以便在合适的时间向合适的用户投放合适的广告(参考)。
要深入了解向量嵌入和向量数据库的工作原理,请从 Hugging Face 的 概述 开始。Pinecone(作为服务的向量嵌入数据库)也有一个很好的 概述。
另一个理解向量中的搜索和知识的优秀来源是 Meta/Facebook 关于 FAISS 库的论文和代码。“FAISS:高效相似性搜索和密集向量聚类的库”由 Johnson、Douze 和 Jégou(2017)撰写:FAISS 提供了一个关于为高效相似性搜索和密集向量聚类而设计的库的全面概述。它讨论了在大规模向量数据库中优化索引和搜索过程的方法,包括基于产品量化的方法。了解更多的最佳地方是文档以及 Github 上的代码。
务必考虑 2017 年 6 月的论文,该论文开启了 genAI(生成性人工智能)革命,“注意力是你所需要的一切。”(参考),该论文介绍了 GPT 模型及其后续的所有 LLM 背后的 Transformer 架构,包括 OpenAI、Google、Meta(Facebook)、Nvidia、Microsoft、IBM、Anthropic、Mistral、Salesforce、xAI(Elon Musk)、Stability AI、Cohere 和许多其他开源项目。 还要考虑,“近似最近邻:消除维度诅咒的方向”(参考 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:用于语言理解的深度双向 Transformers 的预训练”(参考)中介绍。BERT(来自 Transformers 的双向编码器表示)标志着向可针对广泛 NLP 任务进行微调的预训练模型的重大转变。其创新的双向训练和 Transformer 架构的使用为众多基准测试中的模型性能设定了新标准。 早期创建向量嵌入的创新方法由 GloVe(2014,斯坦福)和 Word2Vec(2013,谷歌)提出。“GloVe:用于词表示的全局向量”(参考):GloVe(全局向量)论文提出了一种新的全局对数双线性回归模型,用于无监督学习词表示,结合了嵌入的两种主要方法的优点:全局矩阵分解和局部上下文窗口方法。“在向量空间中高效估计词表示”(参考):这篇论文介绍了 Word2Vec,这是一种生成词嵌入的突破性方法。Word2Vec 模型,包括连续词袋(CBOW)和 Skip-Gram 模型,在词嵌入的发展中具有重要意义。