人工智能
矢量数据库在现代生成人工智能应用中的作用
为了使大规模的生成式人工智能应用程序有效运行,需要良好的系统来处理大量数据。 矢量数据库就是这样重要的系统之一。 该数据库的与众不同之处在于它能够处理多种类型的数据,例如数字/矢量形式的文本、声音、图片和视频。
什么是矢量数据库?
矢量数据库是一种专门为高效处理高维矢量而设计的存储系统。 这些向量可以被视为多维空间中的点,通常表示更复杂数据(如图像、文本或声音)的嵌入或压缩表示。
矢量数据库允许在这些矢量之间进行快速相似性搜索,从而能够从庞大的数据集中快速检索最相似的项目。
传统数据库与矢量数据库
矢量数据库:
- 处理高维数据:矢量数据库旨在管理和存储高维空间中的数据。这对于机器学习等应用程序特别有用,其中数据点(例如图像或文本)可以表示为多维空间中的向量。
- 针对相似性搜索进行了优化:矢量数据库的一个突出特点是它们执行相似性搜索的能力。 这些数据库不是基于精确匹配来查询数据,而是允许用户检索与给定查询“相似”的数据,这使得它们对于图像或文本检索等任务非常有价值。
- 可扩展用于大型数据集:随着人工智能和机器学习应用程序的不断增长,它们处理的数据量也在不断增长。 矢量数据库是按比例构建的,确保它们可以处理大量数据而不影响性能。
传统数据库:
- 结构化数据存储:传统数据库,如关系数据库,旨在存储结构化数据。 这意味着数据被组织到预定义的表、行和列中,确保数据的完整性和一致性。
- 针对 CRUD 操作进行了优化:传统数据库主要针对CRUD操作进行优化。 这意味着它们旨在高效地创建、读取、更新和删除数据条目,使其适用于从 Web 服务到企业软件的各种应用程序。
- 固定架构:许多传统数据库的定义特征之一是其固定模式。 一旦定义了数据库结构,进行更改可能会非常复杂且耗时。 这种刚性可确保数据一致性,但灵活性可能不如某些现代数据库的无模式或动态模式性质。
传统数据库经常与嵌入的复杂性作斗争,而矢量数据库很容易解决这一挑战。
矢量表示
矢量数据库功能的核心是使用数值向量表示不同形式的数据的基本概念。 让我们以图像为例。 当你看到一张猫的图片时,虽然它对我们来说可能只是一张可爱的猫科动物图像,但对于机器来说,它可以转换成一个独特的 512 维向量,例如:
[0.23、0.54、0.32、…、0.12、0.45、0.90]
借助矢量数据库,生成式人工智能应用程序可以做更多事情。 它可以根据含义查找信息并长期记住事物。 有趣的是,这种方法不仅仅局限于图像。 充满上下文和语义含义的文本数据也可以放入矢量形式。
生成式人工智能和矢量数据库的需求
生成式人工智能通常涉及嵌入。以自然语言处理 (NLP) 中的词嵌入为例。单词或句子被转换为捕获语义的向量。在生成类人文本时,模型需要快速比较和检索相关嵌入,确保生成的文本保持上下文含义。
同样,在图像或声音生成中,嵌入在编码模式和特征中发挥着至关重要的作用。 为了使这些模型发挥最佳功能,它们需要一个能够即时检索相似向量的数据库,这使得向量数据库成为生成人工智能难题的重要组成部分。
为自然语言创建嵌入通常涉及使用预先训练的模型,例如:
- GPT-3 和 GPT-4: OpenAI 的 GPT-3 (Generative Pre-trained Transformer 3)一直是 NLP 社区中的一个里程碑式的模型,拥有 175 亿个参数。 紧随其后,具有更多参数的 GPT-4 继续突破生成高质量嵌入的界限。 这些模型在不同的数据集上进行训练,使它们能够创建捕获各种语言细微差别的嵌入。
- BERT 及其变体: BERT Google 的(Transformers 的双向编码器表示)是另一个重要的模型,它已经经历了各种更新和迭代,例如 RoBERTa 和 DistillBERT。 BERT 的双向训练可以从两个方向读取文本,特别擅长理解单词周围的上下文。
- ELECTRA:一种更新的模型,效率高,性能与 GPT-3 和 BERT 等更大的模型相当,同时需要更少的计算资源。 ELECTRA 在预训练期间区分真实数据和虚假数据,这有助于生成更精细的嵌入。
理解上面的过程:
最初,采用嵌入模型将所需内容转换为向量嵌入。 一旦生成,这些嵌入就会存储在矢量数据库中。 为了轻松追踪和相关性,这些存储的嵌入保留了对其派生的原始内容的链接或引用。
随后,当用户或系统向应用程序提出问题时,相同的嵌入模型就会立即采取行动。 它将这个查询转换为相应的嵌入。 然后,这些新形成的嵌入搜索向量数据库,寻找相似的向量表示。 识别为匹配的嵌入与其原始内容直接关联,确保用户的查询得到相关且准确的结果。
对矢量数据库新人的资助不断增加
Oracle 最近还宣布了其新功能 数据库 23c,介绍了综合矢量数据库。 它将拥有新的数据类型、索引和搜索工具,可以使用矢量存储和搜索文档和图像等数据,名为“AI 矢量搜索”。 它支持 检索增强生成 (RAG),它将大型语言模型与业务数据相结合,以便在不共享私有数据的情况下更好地回答语言问题。
向量数据库的主要考虑因素
距离度量
相似性搜索的有效性取决于所选的距离度量。 常见指标包括 欧氏距离 和 余弦相似度,每个都适合不同类型的向量分布。
索引
鉴于向量的高维性,传统的索引方法无法解决这一问题。 矢量数据库使用以下技术 分层可导航小世界 (HNSW) 图表或 惹恼树木,允许向量空间的有效划分和快速的最近邻搜索。
Annoy 是一种使用二叉搜索树的方法。 它将我们的数据空间分割很多次,并且只查看其中的一部分来找到近邻。
另一方面,HNSW 图就像网络。 它们以特殊方式连接数据点以使搜索速度更快。 这些图表有助于快速找到数据中的接近点。
可扩展性
随着数据集的增长,保持快速检索时间的挑战也随之增加。 分布式系统、GPU 加速和优化内存管理是矢量数据库解决可扩展性问题的一些方法。
矢量数据库的作用:影响和机遇
1. 前沿训练数据 生成式 AI 模型: DALL-E 和 GPT-3 等生成式 AI 模型是使用大量数据进行训练的。 这些数据通常包含从多种来源提取的向量,包括图像、文本、代码和其他领域。 矢量数据库精心策划和管理这些数据集,使人工智能模型能够通过识别这些矢量内的模式和关系来吸收和分析世界知识。
2. 推进少样本学习: 少样本学习是一种人工智能训练技术,其中模型使用有限的数据进行训练。 矢量数据库通过维护强大的矢量索引来放大这种方法。 当模型仅接触少量向量(例如,几张鸟类图像)时,它可以通过识别这些向量之间的相似性和关系来迅速推断出更广泛的鸟类概念。
3. 增强推荐系统: 推荐系统使用矢量数据库来建议与用户偏好密切相关的内容。 通过分析用户的行为、个人资料和查询,提取表明他们兴趣的向量。 然后,系统扫描矢量数据库以查找与这些兴趣矢量非常相似的内容矢量,从而确保精确的推荐。
4. 语义 信息检索: 传统的搜索方法依赖于精确的关键字匹配。 然而,矢量数据库使系统能够根据语义相似性理解和检索内容。 这意味着搜索变得更加直观,专注于查询的潜在含义而不仅仅是匹配单词。 例如,当用户输入查询时,会将相应的向量与数据库中的向量进行比较,以找到与查询的意图(而不仅仅是其措辞)产生共鸣的内容。
5. 多模式搜索: 多模式搜索 是一种新兴技术,集成了文本、图像、音频和视频等多个来源的数据。 载体数据库作为这种方法的支柱,允许对来自不同模式的载体进行组合分析。 这带来了整体搜索体验,用户可以根据单个查询从各种来源检索信息,从而获得更丰富的见解和更全面的结果。
结论
人工智能世界正在快速变化。 它触及许多行业,带来了好处,也带来了新问题。 生成人工智能的快速进步凸显了矢量数据库在管理和分析多维数据方面的重要作用。
这些专门的存储系统擅长处理来自图像、文本或声音等各种数据形式的高维向量,是现代人工智能应用程序有效运行的关键,特别是在相似性搜索领域。