桂林北站地址,订阅号栏目里做微网站,商丘网红打卡地,浙江住房和城乡建设网站拓数派大模型数据计算系统#xff08;PieDataComputingSystem#xff0c;缩写#xff1a;πDataCS#xff09;在10月24日程序员节「大模型数据计算系统」2023拓数派年度技术论坛正式发布。πDataCS 以云原生技术重构数据存储和计算#xff0c;「一份存储#xff0c;多引擎…拓数派大模型数据计算系统PieDataComputingSystem缩写πDataCS在10月24日程序员节「大模型数据计算系统」2023拓数派年度技术论坛正式发布。πDataCS 以云原生技术重构数据存储和计算「一份存储多引擎数据计算」让 AI 模型更大更快全面升级大数据系统至大模型时代。除云原生虚拟数仓 PieCloudDBπDataCS 支持的第二款计算引擎云原生向量计算引擎 PieCloudVector 也正式发布。PieCloudVector 支持海量向量数据存储、向量数据高效查询助力多模态大模型 AI 应用。
AI 将引领下一波全球 GDP 的增长。根据麦肯锡2023年6月报告生成式 AI基于大模型每年会为全球 GDP 贡献约2.6至4.4万亿美元相当于英国2021年 GDP 总值3.1万亿美元。高盛也在其2023年4月报告中指出生成式 AI 可以为全球 GDP 贡献7%的增长。大模型的迅速崛起让生成式 AI 基于大模型的应用也在不断创新而应用对大规模向量数据的处理、相似性搜索等需求的增加也促进了向量数据库的进一步发展。
拓数派自研的向量云原生计算引擎 PieCloudVector作为 πDataCS 第二款计算引擎是大模型时代的分析型数据库升维目标是助力多模态大模型 AI 应用进一步实现海量向量数据存储与高效查询。 PieCloudVector 支持和配合大模型的 Embeddings帮助基础模型在场景 AI 的快速适配和二次开发。
1 大模型与向量
随着数据的爆炸式增长和计算能力的提升大模型成为了处理复杂问题和分析海量数据的重要工具。大模型指的是拥有庞大参数规模、高复杂度和强大学习能力的机器学习模型。 这些模型通常由数百万甚至数十亿个参数组成通过对大规模数据进行训练来获取知识和推理能力。大模型的出现使得在各种领域中的任务如自然语言处理、图像识别、语音识别和推荐系统等取得了显著的突破。 特征的向量化表示
在数学和计算机科学中向量是具有大小和方向的量。向量用一组浮点数表示一组“特征”这个特征是从真实物体猫、花等的二进制表示文本、图片、音频、视频等中提取出来的如上图所示一般由大模型提取。通过将真实物体转化为向量表示可以在向量空间中进行计算和比较例如计算相似度、聚类分析、分类任务等。向量表示也为构建推荐系统、情感分析、信息检索等任务提供了基础。
2 什么是向量数据库
向量数据库是一种专门用于存储和管理向量数据的数据库系统可以对向量提供高效的存储、索引和查询功能。 计算向量的余弦相似度
在向量搜索中可以使用不同的距离度量如欧式距离、余弦相似度、曼哈顿距离等来计算两个向量之间的距离。距离越近表示这两个向量越相似。如下图“派派”与“树獭”的距离度量则可通过余弦相似度来计算来判断其相似程度。
传统数据库更擅长精确匹配在浮点数的存储和处理能力都较为欠缺无法高效地处理向量数据。为了能够高效存储和查询向量数据向量数据库应运而生。
向量数据库能够满足存储和处理向量数据的特定需求能够高效的将存储向量和原始实体文字/图像/语音并将它们关联起来。从而得以提供高效的相似度搜索、大规模数据管理、复杂向量计算和实时推荐等功能帮助用户更好地利用和分析向量数据助力大模型应用。
拓数派认为一款优秀的向量数据库除了应当具备高效的向量存储和相似性搜索功能还需满足事务的 ACID 保证和用户权限控制 在确保对向量数据的插入、更新和删除操作能够正确执行保证并发访问时数据的一致性的同时为用户提供稳定、可靠且安全的服务适用于各种数据管理和应用场景。这也是 PieCloudVector 的设计思路。
3 云原生向量计算引擎 PieCloudVector
拓数派团队在对比了 pgvectorpgembedding 等多种开源实现和性能后并没有选择这类开源实现方式而是完全独立自研了 PieCloudVector 以使其满足用户的使用场景。PieCloudVector 具备高效存储和检索向量数据、相似性搜索、向量索引、向量聚类和分类、高性能并行计算、强大可扩展性和容错性等特性。
3.1 PieCloudVector 架构
在架构的设计上拓数派团队利用其在打造 πDataCS 的第一款计算引擎云原生虚拟数仓 PieCloudDB 时在 eMPPelastic MPP与分布式架构领域积累的经验与优势打造了向量计算引擎 PieCloudVector 的 eMPP 分布式架构。如下图所示PieCloudVector 每个 Executor 对应一个 PieCloudVector 实例从而实现高性能、可伸缩性和可靠性的向量存储和相似性搜索服务。而被转化的向量表示将被存储在 πDataCS 统一的存储引擎「简墨」中。 PieCloudVector 的 eMPP 分布式架构
用户只需一个客户端即可使用任何语言进行相似搜索。有了 PieCloudVector 的帮助用户不仅可以存储、管理原始数据所对应的向量也可调用 PieCloudVector 相关工具进行模糊搜索与全局搜索相比牺牲部分精度实现毫秒级搜索进一步提升查询效率。
3.2 PieCloudVector 功能
PieCloudVector 可以提供精确搜索和模糊搜索两种搜索模式。 目前PieCloudVector 为用户提供以下功能
支持近似向量搜索 KNN-ANN支持主流的 ANN 算法如 IVFFlat 和 HNSW 等支持向量压缩(PQ)并行分布式SIMD/GPU 加速支持 Langchain 框架
接下来我们将对其中前两个功能进行详细介绍
3.2.1 近似搜索 KNN-ANN
K-Nearest NeighborK 最近邻KNN是向量搜索的基本问题之一。该问题在已有的 N 个向量中找出与给定向量距离最近的 K 个向量。通过 K 最近邻算法可以实现像相似图片检索、相关新闻推荐、用户画像匹配等应用。它允许根据向量之间的距离或相似度快速找到与给定向量最相似的向量从而提供了高效的相似性搜索和推荐服务。
但随着数据量的逐渐增大精确查询需要将输入的向量与每一条记录进行比对计算成本将成倍增长。为了解决这个问题PieCloudDB 建立向量索引来提前获取数据间的大致关系加速查询效率。PieCloudVector 引入Approximate Nearest Neighbor近似最近邻ANN算法来建立向量索引。通过 ANNPieCloudVector 能够节省全局搜索的时间牺牲部分精度以加速查询速度进一步提升查询效率实现毫秒级查询速度做到模糊查询。
PieCloudVector 在建立向量索引时提供多种 ANN 算法 包括最为流行的 IVFFlatInverted File with Flat算法 HNSWHierarchical Navigable Small World算法用户可根据数据的特性来选择
IVFFlat 算法左图 基于倒排文件的向量索引算法。它将向量数据提前进行分组并为每个组建立一个倒排索引。在模糊查询时IVFFlat 算法会检索与目标向量相近的组中包含的数据从而加快搜索速度并降低内存消耗。然而由于使用了分组IVFFlat 算法的精确度一般相对较低。HNSW 算法右图 基于层级导航的向量索引算法。它通过在数据之间建立“关系网”来构建索引结构。这个过程需要耗费一定的时间和内存资源。但是HNSW 算法的精确度通常优于 IVFFlat 算法。它能够更好地捕捉数据之间的局部结构和相似性并支持高效的近似搜索。 3.2.2 向量压缩
向量相似性搜索在处理大规模数据时需要大量的内存来支撑。例如对于包含1百万个稠密向量的索引来说通常需要几 GB 的内存来存储。高维数据使内存使用问题更加严重因为随着维度的增加向量表示空间变得极其庞大需要更多的内存来存储。
为了解决这个内存压力问题向量压缩Product QuantizationPQ是一种常见方法。 它能够将高维向量压缩从而显著减少内存的占用。通过将每个向量分割成若干子空间并对每个子空间进行量化PQ 可以将原始的高维向量转换为多个低维码本codebook从而降低内存需求。
使用 PQ 后存储索引所需的内存可以减少高达97% 使 PieCloudVector 在处理大规模数据集时更有效地管理内存并加快相似性搜索的速度。此外PQ 还能提升最近邻搜索的速度通常能够使搜索速度提高 5.5倍。另外将PQ 与倒排文件Inverted FileIVF结合形成的 IVFPQ 复合索引在不影响搜索准确性的情况下进一步提升搜索速度16.5倍。与未使用量化索引相比总体搜索速度可提高92倍。 向量压缩Product Quantization
4 PieCloudVector 典型应用场景
根据向量的实际使用流程PieCloudVector 的应用场景大致可以分为四层分别对应实际使用向量的过程中不同的场景。
4.1 准备数据与切分图像、文本、音频等
在这一层涉及到数据的准备和切分。例如在图像、文本、音频等形式。需要对原始数据进行预处理、清洗和特征提取以得到适合后续处理的向量表示。这一步骤通常是为了将原始数据转化为可供创建嵌入embeddings的输入。
4.2 创建 Embeddings
在这一层将通过适当的算法或模型将数据转化为向量表示。这向量表示反映了数据的特征和语义信息。例如可以使用卷积神经网络CNN、循环神经网络RNN、Transformer 等模型来生成图像、文本或音频的嵌入表示。
4.3 存储向量
在这一层将创建的向量表示存储起来以便后续的向量搜索。PieCloudVector 支持分布式向量存储可弹性扩展存储资源并通过向量压缩减少内存的占用。
4.4 向量搜索Vector Search
在这一层基于已存储的向量进行相似性搜索。PieCloudVector 提供高效的向量搜索功能通过 KNN、ANN 等向量搜索算法支持 L2 distance, Inner Product以及 Cosine Distance 向量距离度量方式能够快速找到与给定查询向量最相似的向量。这种向量搜索功能广泛应用于相似图片检索、相关新闻推荐、用户画像匹配等场景。
下图是 PieCloudVector 在一款知识库系统的应用流程架构共包括从文本切分到应用程序返回答案给用户六个步骤。该知识库系统利用 PieCloudVector 来支持知识库系统中的语义搜索和答案检索功能。它将文本转化为向量表示并通过向量相似性搜索来找到相关的答案。这种架构能够高效地处理大规模的文本数据集并提供准确的答案回复给用户。 知识库系统的应用流程架构
在未来PieCloudVector 将继续不断迭代和发展为大模型提供独特的记忆和支持。随着生成式 AI 和大模型的不断演进PieCloudVector 将更加深入地融合向量数据库的优势并与其他技术和算法进行紧密集成。
PieCloudVector 将持续改进其存储、索引和查询能力以应对越来越复杂和庞大的向量数据。 它将探索新的量化算法、近似搜索方法和并行计算策略以提高查询效率和准确性。
同时PieCloudVector 将致力于与不同领域的应用场景相结合并将逐步扩展支持多模态数据的处理和分析能力提供更全面、灵活的解决方案。
参考资料
大模型数据计算系统——理论大模型数据计算系统——实现The Economic Potential of Generative AI: The Next Productivity FrontierGenerative AI Cloud Raise Global GDP by 7%