首页 > 其他分享 >性能持续突破!火山引擎ByteHouse上线向量检索能力

性能持续突破!火山引擎ByteHouse上线向量检索能力

时间:2024-01-10 11:35:13浏览次数:37  
标签:检索 数据库 ByteHouse 索引 链路 向量

更多技术交流、求职机会,欢迎关注字节跳动数据平台微信公众号,回复【1】进入官方交流群


随着LLM技术应用及落地,数据库需要提高向量分析以及AI支持能力,向量数据库及向量检索等能力“异军突起”,迎来业界持续不断关注。简单来说,向量检索技术以及向量数据库能为 LLM 提供外置的记忆单元,通过提供与问题及历史答案相关联的内容,协助 LLM 返回更准确的答案。


不仅仅是LLM,向量检索与OLAP引擎也早有渊源。作为一种用于数据分析的软件,OLAP能够快速、高效处理大量数据,并提供多维度的分析功能,而向量检索则能帮助OLAP引擎进一步提升对非结构化数据的分析和检索能力。


近期,火山引擎云原生数据仓库ByteHouse推出高性能向量检索功能,通过支持多种向量检索算法以及高效的执行链路,可以支撑级大规模向量检索场景,并达到毫秒级的查询延迟。


ByteHouse团队早已关注并研究向量检索技术。据ByteHouse技术专家介绍,“当前向量数据库的发展主要是两种思路,一种是建设一个专用的向量数据库,基于Vector-centric 的思路来设计向量数据及索引的存储与资源管理策略,查询定式简单,支持数据类型有限;另一种是基于现有数据库扩展向量检索能力,在已有数据管理机制以及查询执行链路中去添加向量索引维护与查询执行逻辑。目前,两种思路互相借鉴,向完备数据库功能支持+高性能向量检索的方式发展。”


ByteHouse来源于ClickHouse,但ClickHouse存在向量索引重复读取,相似度计算冗余等问题,对于延迟要求低、并发需求高的向量检索场景可用性较弱。


基于以上的分析,ByteHouse 在向量检索能力上进行全面创新。 首先,基于 vector-centric 的思路,ByteHouse 重新构建了高效的向量检索执行链路,结合索引缓存、存储层过滤等机制,使得性能实现进一步突破。另外,为了应对不同使用场景,ByteHouse 支持了 HNSW、Flat、IVFFlat、IVFPQ 等多种常见向量索引算法。此外,新引入的向量索引支持当前的二级索引相关语义,新的执行链路也对现有距离函数进行了适配,以降低用户使用门槛和学习成本,用户可以直接用 ClickHouse 的现有语义来使用高性能的向量检索功能。

性能持续突破!火山引擎ByteHouse上线向量检索能力_数据库

ByteHouse向量检索相关组件


在建设高性能向量检索能力过程中,ByteHouse主要克服以下三大难点:


首先,列存结构读放大问题。为了减少不必要的数据读取操作,ByteHouse在 query 执行及数据读取层都进行了相应优化,并由 HaMergeTree 以及 HaUniqueMergeTree 两种引擎的可靠方案为向量检索提供稳定性保障。其次,新写入数据以及服务重启会存在冷读的问题,导致性能波动。为此,ByteHouse 引入 preload 机制,索引构建后自动载入缓存,同时支持对过期索引自动淘汰,避免多余的资源占用。最后,由于索引构建会消耗较多的资源,为了降低构建操作对正常查询的性能影响,ByteHouse引入资源控制策略,允许用户基于使用场景动态控制索引构建使用的资源,极大减少了原有链路的开销。

性能持续突破!火山引擎ByteHouse上线向量检索能力_数仓_02

基于开源软件VectorDBBench ,与 milvus 2.3.0 进行测评

(测试环境:1 node, 80 cores, 376 GB Memory)


在最终性能效果上,ByteHouse团队基于业界最新的 VectorDBBench 测试工具进行测试,在 cohere 1M 标准测试数据集上,recall 98 的情况下,可以达到与专用向量数据库相近的性能。在 recall 95 以上的情况下,QPS 可以达到 2600 以上,p99 时延在 15ms 左右,具备业界领先优势。


性能优化一直是ByteHouse核心探索方向之一,以满足不断增长的数据处理和分析需求。不仅仅是向量检索技术,通过持续的研发和创新,ByteHouse还在查询分析、数据导入等多个方面极致优化,取得了显著的性能提升,在降本增效基础上,持续帮助企业更好地在数据驱动下实现加速决策效率。


点击跳转火山引擎ByteHouse了解更多

标签:检索,数据库,ByteHouse,索引,链路,向量
From: https://blog.51cto.com/bytedata/9175655

相关文章

  • 性能持续突破!火山引擎ByteHouse上线向量检索能力
    更多技术交流、求职机会,欢迎关注字节跳动数据平台微信公众号,回复【1】进入官方交流群 随着LLM技术应用及落地,数据库需要提高向量分析以及AI支持能力,向量数据库及向量检索等能力“异军突起”,迎来业界持续不断关注。简单来说,向量检索技术以及向量数据库能为LLM提供外置......
  • 神经网络之谜:特征值与特征向量在深度学习中的作用
    1.背景介绍深度学习是当今最热门的人工智能领域之一,它的核心技术是神经网络。神经网络的基本结构是由多个节点组成的,这些节点被称为神经元或神经网络。这些神经元通过连接和权重来学习和表示数据中的模式。在深度学习中,这些模式通常被表示为特征值和特征向量。这两个概念在深度学习......
  • 支持向量机:理论与实践
    1.背景介绍支持向量机(SupportVectorMachine,SVM)是一种常用的监督学习方法,主要应用于分类和回归问题。SVM的核心思想是通过寻找数据集中的支持向量(即边界附近的数据点),从而构建出一个可以分离大多数样本的模型。这种方法在处理高维数据和小样本量的问题时表现卓越,因此在计算机视觉......
  • SVM在图像检索中的应用:提高检索准确性与效率的关键技术
    1.背景介绍图像检索是一种计算机视觉技术,主要用于根据用户提供的查询图像,从图像库中找到与查询图像最相似的图像。图像检索在许多应用中发挥着重要作用,例如医疗诊断、商品推荐、人脸识别等。随着大数据时代的到来,图像库的规模不断扩大,这使得传统的图像检索方法在准确性和效率方面面......
  • 对话式搜索:基于OpenSearch向量检索版+大模型的实践
    随着人工智能技术的不断发展,对话式搜索已成为一种便捷、高效的信息获取方式。基于OpenSearch向量检索版和大模型的对话式搜索,更是将这一技术推向了新的高度。本文将为你揭示这一技术的奥秘,并指导你如何搭建自己的对话式搜索系统。一、技术原理OpenSearch向量检索版:OpenSearch是一种......
  • 检索增强生成RAG
    检索增强生成(Retrieval-AugmentedGeneration,RAG)是一种结合了检索(搜索)和生成(如自动文本生成)的技术。它通常用于自然语言处理(NLP)任务,如问答、文本摘要或聊天机器人的构建。RAG的优势RAG通过首先从一个大型文档集合中检索相关信息,然后基于这些信息生成响应来工作。这种方法的......
  • 已知两向量A, B ,求出A->B的旋转角
    一、已知两向量A,B,求出A->B的旋转角publicstaticfloatSignedAngleBetween(Vector3a,Vector3b,Vector3n){floatangle=Vector3.Angle(a,b);floatsign=Mathf.Sign(Vector3.Dot(n,Vector3.Cross(a,b)));floatsigned_angle=angle*s......
  • 数据结构——顺序线性表(向量)
    参考文章:数据结构(顺序表——线性表)_创建顺序线性表sl,调用initlist()函数对sl初始化-CSDN博客以下是作为个人笔记,自己学习用。线性表是具有相同特性的数据元素的一个有限序列,在线性表中每个数据元素由逻辑序号唯一确定。线性表的特性:1.有穷性:表中元素个数是有限的。2.一致性:表中所......
  • [简道云] 表单开发-如何检索出差日期并禁止重复日期提交
    应用场景技术员申请出差,处理项目维护业务,但是部分员工,填报时经常记错日期,交叉登记出差日期,引发后续报销费用重复情况。已存在的表单功能登记出差开始日期,结束日期自动列出所选择范围的全部日期自动计算所选择范围的出差天数需要处理的问题新增一个字段,实现检索已录入的出差人员,出差......
  • 支持向量机(SVM)是做什么的?
    支持向量机(SupportVectorMachine,SVM)是一种用于分类问题的监督算法。主要用于二分类和多分类问题。其基本思想是找到一个超平面,能够将不同类别的样本点尽可能地分开,并使得离超平面最近的样本点尽可能远离超平面,从而实现较好的分类效果。SVM的关键是找到一个最优的超平面,这个超平面......