更多技术交流、求职机会,欢迎关注字节跳动数据平台微信公众号,回复【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在 query 执行及数据读取层都进行了相应优化,并由 HaMergeTree 以及 HaUniqueMergeTree 两种引擎的可靠方案为向量检索提供稳定性保障。其次,新写入数据以及服务重启会存在冷读的问题,导致性能波动。为此,ByteHouse 引入 preload 机制,索引构建后自动载入缓存,同时支持对过期索引自动淘汰,避免多余的资源占用。最后,由于索引构建会消耗较多的资源,为了降低构建操作对正常查询的性能影响,ByteHouse引入资源控制策略,允许用户基于使用场景动态控制索引构建使用的资源,极大减少了原有链路的开销。
基于开源软件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上线向量检索能力的更多相关文章

  1. 高性能、快响应!火山引擎 ByteHouse 物化视图功能及入门介绍

    更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,回复[1]进入官方交流群 物化视图是指将视图的计算结果存储在数据库中的一种技术.当用户执行查询时,数据库会直接从已经预计算好的结果中获取数据 ...

  2. 火山引擎MARS-APM Plus x 飞书 |降低线上OOM,提高App性能稳定性

    通过使用火山引擎MARS-APM Plus的memory graph功能,飞书研发团队有效分析定位问题线上case多达30例,线上OOM率降低到了0.8‰,降幅达到60%.大幅提升了用户体验,为飞书的 ...

  3. 火山引擎 DataLeap 的 Data Catalog 系统公有云实践

      Data Catalog 通过汇总技术和业务元数据,解决大数据生产者组织梳理数据.数据消费者找数和理解数的业务场景.本篇内容源自于火山引擎大数据研发治理套件 DataLeap 中的 Data Ca ...

  4. 如何又快又好实现 Catalog 系统搜索能力?火山引擎 DataLeap 这样做

      摘要 DataLeap 是火山引擎数智平台 VeDI 旗下的大数据研发治理套件产品,帮助用户快速完成数据集成.开发.运维.治理.资产.安全等全套数据中台建设,降低工作成本和数据维护成本.挖掘数据价 ...

  5. 火山引擎 DataLeap:揭秘字节跳动数据血缘架构演进之路

    更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,回复[1]进入官方交流群 DataLeap 是火山引擎数智平台 VeDI 旗下的大数据研发治理套件产品,帮助用户快速完成数据集成.开发.运维 ...

  6. 还原火山引擎 A/B 测试产品——DataTester 私有化部署实践经验

      作为一款面向ToB市场的产品--火山引擎A/B测试(DataTester)为了满足客户对数据安全.合规问题等需求,探索私有化部署是产品无法绕开的一条路.   在面向ToB客户私有化的实际落地中,火 ...

  7. JuiceFS 在火山引擎边缘计算的应用实践

    火山引擎边缘云是以云计算基础技术和边缘异构算力结合网络为基础,构建在边缘大规模基础设施之上的云计算服务,形成以边缘位置的计算.网络.存储.安全.智能为核心能力的新一代分布式云计算解决方案. 01- 边 ...

  8. 火山引擎 A/B 测试产品——DataTester 私有化架构分享

    作为一款面向 ToB 市场的产品--火山引擎A/B测试(DataTester)为了满足客户对数据安全.合规问题等需求,探索私有化部署是产品无法绕开的一条路. 在面向 ToB 客户私有化的实际落地中,火 ...

  9. 火山引擎DataLeap数据调度实例的 DAG 优化方案

    更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,并进入官方交流群 实例 DAG 介绍 DataLeap 是火山引擎自研的一站式大数据中台解决方案,集数据集成.开发.运维.治理.资产管理能力 ...

  10. 火山引擎 DataLeap:3 个关键步骤,复制字节跳动一站式数据治理经验

    更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,并进入官方交流群 DataLeap 是火山引擎数智平台 VeDI 旗下的大数据研发治理套件产品,帮助用户快速完成数据集成.开发.运维.治理. ...

随机推荐

  1. 数据结构-线性表-双向链表(c++)

    与单循环链表类似,但析构函数需要注意 析构函数: 因为while循环的条件是p->next!=front,所以不能直接delete front: template<class T> ...

  2. JUC并发编程学习(十一)四大函数式接口(必备)

    四大函数式接口(必备) 程序员:泛型.反射.注解.枚举 新时代程序员:lambda表达式.链式编程.函数式接口.Stream流式计算 函数式接口:只有一个方法的接口 @FunctionalInterf ...

  3. 来世再不选Java!

    危机感 距离上一次找工作面试已经过去快2年了,那时候正值疫情肆虐,虽然还未感受到"寒潮来临"的苗头,但最终还是成功通过了几轮面试,顺利签约.在目前公司待了2年了,在大环境的影响下, ...

  4. 这些新项目一定不要错过「GitHub 热点速览」

    本周 GitHub 热点上榜的项目有不少的新面孔,比如搞电子商务的 eShop,还有处理表数据的 onetable.还有用来方便处理数据同步问题的 loro,以及网易新开源的 tts 项目 Emoti ...

  5. STM32外设:最小系统、低功耗模式

    最小系统 启动引脚 BOOT0.BOOT1:用于设置系统的启动方式 下载引脚 JTAG的IO:JTMS.JTCK.JTDI.JTDO.NJTRST SW的IO:SWDIO.SWCLK 硬件设计 NUC ...

  6. Spring Cache + Caffeine的整合与使用

    前言 对于一些项目里需要对数据库里的某些数据一直重复请求的,且这些数据基本是固定的,在这种情况下,可以借助简单使用本地缓存来缓存这些数据.这些介绍一下Spring Cache和Caffeine的使用. ...

  7. 文档理解的新时代:LayOutLM模型的全方位解读

    一.引言 在现代文档处理和信息提取领域,机器学习模型的作用日益凸显.特别是在自然语言处理(NLP)技术快速发展的背景下,如何让机器更加精准地理解和处理复杂文档成为了一个挑战.文档不仅包含文本信息,还包 ...

  8. flask中使用pyjwt

    **pyjwt使用教程: ** https://pyjwt.readthedocs.io/en/stable/ 使用案例 import datetime from flask import Flask ...

  9. python 实现一个简单的计算器

    python 实现一个简单的计算器 本文主要整合下tkinter ,实现下简单的计算器. 代码如下: #!/usr/bin/python3 # -*- coding: UTF-8 -*- " ...

  10. 盘点前端的那些Ajax请求:从ES5到React

    说起前端开发,Ajax请求是绕不开的技术点.然而,程序语言更新换代越来越快,Ajax请求的方式也是各有不同. 在使用ES5开发的时候,我们还在使用最原始的XMLHttpRequest对象: // cr ...