您当前的位置:首页 > 电脑百科 > 数据库 > 百科

火山引擎向量数据库:抖音大规模实践

时间:2023-09-28 11:15:58  来源:InfoQ  作者:

作者 | 火山引擎 VikingDB

AI 时代,如何用好大模型是当前各行各业瞩目的焦点。向量数据库作为大模型“记忆体”,不仅能够为其提供数据存储,而且能通过数据检索、分析让大模型进行知识增强,成为生成式 AI 应用开发新范式的重要组成部分。

用图片搜索图片或者文本搜索文本时,在数据库中存储和对比的并不是图片和视频片段,而是通过深度学习等算法将其提取出来的“特征”,“特征”提取的过程称为 Embedding,提取出的“特征”用数学中的向量来表示。向量化的目的是为了通过向量相似来进行非结构化数据的检索,向量化后的数据才能够被 AI 模型更好的理解使用。向量数据库就是用于生产、存储、索引和分析来自机器学习模型产生的海量向量数据的数据库系统。其典型应用场景比如:基于大语言模型的智能客服、基于企业知识库的问答以及 Chatdoc 等工具应用。

火山引擎向量数据库技术演进之路

存算分离的分布式架构搭建

抖音集团内部,早期的向量化检索引擎是围绕搜索、推荐、广告业务来构建的,由于这些业务天然具有极大的数据规模,因此从一开始,就需要思考如何在向量索引中支持百亿数据的检索需求,比如图虫拥有几亿图片素材,数量规模早已超出单机内存的极限,举个例子,对于 1 亿条 128 维的 Float 向量,不考虑任何辅助结构,就需要 100000000*128*4 bytes 也就是约 48GB 的服务器内存。

研发团队设计了一套存算分离的分布式系统架构,来进行向量数据的分片和分布式编排,通过向量存储、批式构建和实时在线检索,解决一份向量多个索引、支持多个场景的问题,同时,还能够节省索引构建资源,加快索引构建,使在线检索服务稳定性得到明显提升。对于用户来讲,在抖音上搜索内容则会又快又准。

火山引擎向量数据库:抖音大规模实践

计算内核性能优化

构建一个企业级的向量检索应用,数据量可能超过亿级,延迟在 10ms 内,要求用起来更快、更稳,所以在计算框架搭建好之后,也必须关注其内核,如何提供高性能的向量化检索服务以满足业务的苛刻需求。由于向量化检索是典型的计算密集、数据密集场景,其优化方向主要围绕提升吞吐、降低服务成本、提升稳定性开展。通过一系列性能优化工作,如降低内存占用、优化索引性能、CPU 指令集计算优化、优化过滤和重排序等业务相关的计算过程,这套架构可以很好解决各类业务场景的离线和在线检索计算需求,相同检索精度下的吞吐和时延相比开源基线有了 3 倍以上的改善,且满足大规模线上业务的稳定性要求,因此被抖音集团大量业务采用。

但因为每个索引搭建一套集群的成本较高,且存在配置复杂等问题,研发团队又对框架进一步迭代,进行云原生改造,实现组件多租户化,提供自动化调度能力,以降低错误率,加快交付。

向量标量混合检索能力

向量数据库用于业务场景时,向量数据通常与结构化数据配合使用,例如,在将文档表示为向量的同时,还需要存储文档所属的部门,以方便在检索时进行权限过滤。这类需求可以抽象为使用与向量相关的结构化数据进行过滤,业界通常有两种解决方案:一是后过滤,将排名 top 的 K 个结果扩大一定倍数,检索出更多的向量,然后用结构化数据做过滤,留下 topK 个,这种方法适用于结构化过滤掉的比例较低,向量召回结果比例较高的场景;二是先过滤,先使用 DSL 过滤数据集,然后在结果集中进行向量排序,适用于 DSL 过滤结果较少的场景。

随着数据量的增加,这两种检索链路的性能各有适用的场景,但如何在执行时自动找到最适合的执行路径呢?为此,技术团队又研发了 DSL 定向引擎,支持在检索过程中同时进行向量检索和 DSL 过滤(结构化过滤),具有高性能、逻辑完备、可按需终止和执行计划优化等特点。在混合查询性能对比行业评测中,该向量数据库的无过滤吞吐、1% 过滤吞吐和 99% 过滤吞吐多项性能均排名第一。

火山引擎向量数据库:抖音大规模实践

帮助大模型知识库更快落地

大模型应用场景的不断拓宽,催生了向量数据的存储、检索需求。将企业自身数据转化为向量数据时遇到不少困难,如何帮助业务选择开箱即用的向量化模型,也影响到大模型应用的落地速度。技术团队在知识库、生成式 AI 素材管理等场景,开始尝试提供预设的向量化方法以供业务选择。大多数业务只需要选择一个适合自身数据的向量化方法,即可用原始数据直接写入向量数据库,并用相同的模型将请求数据转换为请求向量进行查询。

向量数据库技术全景

经过长期的内部探索和优化,抖音采用的向量数据库产品结构如下图所示:基于云基础设施,提供经过深度打磨和优化的各个引擎,提供从多模态数据写入,到向量生成,再到在线检索,以及上线后的弹性调度和监控的一整套全链路解决方案

火山引擎向量数据库:抖音大规模实践

火山引擎向量数据库的

场景化落地实践

经过抖音集团内部的技术实践,向量数据库目前已经覆盖 50+ 的业务线,基本支撑了内部所有的向量检索场景,比如抖音、头条、懂车帝、图虫、火山引擎 Oncall 智能问答和剪映等,主要的业务场景包括智能搜索、AIGC 跨模态检索、推荐和去重、智能问答、相关排序、聚类分析和数据挖掘等,并且多个场景库规模达百亿级别。

下面以图虫和火山引擎 Oncall 智能问答为例,展示向量数据库的应用实践。

智能搜索场景——图虫的以图搜图

火山引擎向量数据库:抖音大规模实践

图虫提供了以图搜图的能力,致力于为用户提供正版素材内容及数字资产管理解决方案。目前,图虫创意在库图片量 4.6 亿、高清视频超 2000 万条,每天有大量用户来搜索、查询图片和视频。亿级海量数据对向量检索服务能力提出更高要求,业务如何灵活的设置分片,当数据量大幅增加时又如何避免重新部署集群,加快索引构建、节约资源。

解决方案是提供端到端的图片搜索能力,流程是先将图片源数据上传到向量数据库,把图片数据进行向量化、存储并形成向量索引,然后,用户将要搜索的图片上传,上传后向量化,向量化的图片与向量数据库进行向量检索比对查询,获取相似度最高的结果,返回给用户。

企业知识库场景——火山引擎 Oncall 智能问答

火山引擎 Oncall 智能问答能够辅助一线客服、提供客户问题回复参考。火山引擎官网每天会收到大量的客户售后进线,高峰时段人均要并行受理多个问题,需要能够快速排查并且给出客户反馈。对于工程师来讲,面对众多技术门槛较高的产品,要进行快速理解和判断,难度较大。

解决方案就是,将火山知识库文档和数据通过向量特征提取,然后存储到向量数据库中,应用LLM 大语言模型与向量化的知识库检索和比对知识,构建火山引擎 Oncall 智能问答,可以让聊天机器人的回答更具专业性和时效性,构建专属 Chatbot。未来,火山引擎 Oncall 的 FAQ 知识将持续沉淀,知识库持续完善,同时还能提供大模型训练数据,处理大量客户咨询问题,实现机器人自动生成回复结果。

火山引擎向量数据库技术经过抖音等业务的实践打磨,已经对外开放,赋能千行百业,加速 AI 大模型落地应用。随着用户需求和应用场景的多样化,向量数据库会提供更加丰富完善的功能,包括向量算法的优化和创新、提升多模态数据的处理能力,提供多种多模态向量化能力模型、跨模态检索等能力,进一步优化向量数据库的通用性和易用性等。如今,向量数据库已经成为整个大模型生态的基础设施,支撑着大模型在业界的推广和应用。火山引擎向量数据库将持续创新,提供更加灵活和多样化的功能,满足不同用户的需求。



Tags:向量数据库   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,不构成投资建议。投资者据此操作,风险自担。如有任何标注错误或版权侵犯请与我们联系,我们将及时更正、删除。
▌相关推荐
向量数据库落地实践
本文基于京东内部向量数据库vearch进行实践。Vearch 是对大规模深度学习向量进行高性能相似搜索的弹性分布式系统。详见: https://github.com/vearch/zh_docs/blob/v3.3.X/do...【详细内容】
2024-04-03  Search: 向量数据库  点击:(4)  评论:(0)  加入收藏
简易百科之什么是向量数据库
随着大数据时代的到来,数据存储和处理成为了一个重要的问题。传统的关系型数据库已经无法满足一些场景的需求,例如大规模高维数据的处理和分析。在这样的背景下,向量数据库应运...【详细内容】
2024-01-15  Search: 向量数据库  点击:(166)  评论:(0)  加入收藏
腾讯云把向量数据库“卷”到哪一步了?
“不是我不明白,这世界变化快”,崔健在20世纪写下的这句歌词,放在刚刚过去的2023年,也同样适用。技术风向的变化之快,让不少人感到惊讶,向量数据库这一年的潮起潮落,就是一个典型的...【详细内容】
2024-01-14  Search: 向量数据库  点击:(65)  评论:(0)  加入收藏
纯向量数据库和向量插件都有局限,那未来发展有其他方向吗?
作者 | 张颖峰导读:向量数据库的争议差不多一年了,但我们一直缺少一篇能透彻讲解向量数据库相关问题的文章,这导致在这个领域的讨论一直没有得到充分的澄清。在这篇文章中,我们将...【详细内容】
2024-01-11  Search: 向量数据库  点击:(13)  评论:(0)  加入收藏
探秘向量数据库:从原理到商业应用的旅程
当我们谈及数据库技术,大部分人的第一反应可能是传统的关系型数据库,如MySQL、Oracle或SQL Server。这些数据库技术凭借其成熟稳定的关系型数据模型,已经在企业级应用中占据了...【详细内容】
2023-12-28  Search: 向量数据库  点击:(111)  评论:(0)  加入收藏
一文了解托管在亚马逊云科技的向量数据库MyScale
MyScale是一款完全托管于亚马逊云科技,支持SQL的高效向量数据库。MyScale的优势在于,它在提供与专用向量数据库相匹敌甚至优于的性能的同时,还支持完整的SQL语法。以下内容,将阐...【详细内容】
2023-12-28  Search: 向量数据库  点击:(97)  评论:(0)  加入收藏
如何评估向量数据库
导语:没有通用的“最 佳”向量数据库——选择取决于您的需求。评估可扩展性、功能性、性能以及与用例的兼容性至关重要。在当今数据驱动的世界里,非结构化数据的指...【详细内容】
2023-12-26  Search: 向量数据库  点击:(109)  评论:(0)  加入收藏
解读向量数据库
不论是RAG,还是Agent,几乎每个LLM 驱动的应用程序都可能会用到向量数据库。那么,向量数据库是什么?与传统数据库有何不同? 又如何选择向量数据库呢? 本文是老码农关于向量数据库的...【详细内容】
2023-11-27  Search: 向量数据库  点击:(133)  评论:(0)  加入收藏
初识向量数据库与pgvector实践
随着大语言模型的兴起,向量数据库正愈发受到人们的关注。作为对向量数据库的一名小白,近期简单对这一新技术方向做了些了解,特分享给大家。 1. 大火的向量数据库 1).什么是向...【详细内容】
2023-11-17  Search: 向量数据库  点击:(208)  评论:(0)  加入收藏
国内首个向量数据库标准发布
科技日报北京11月15日电 (记者都芃)15日,中国信通院联合腾讯云计算(北京)有限责任公司、中移(苏州)软件技术有限公司等多家企业共同编制的、国内首个向量数据库标准正式发布,...【详细内容】
2023-11-16  Search: 向量数据库  点击:(211)  评论:(0)  加入收藏
▌简易百科推荐
向量数据库落地实践
本文基于京东内部向量数据库vearch进行实践。Vearch 是对大规模深度学习向量进行高性能相似搜索的弹性分布式系统。详见: https://github.com/vearch/zh_docs/blob/v3.3.X/do...【详细内容】
2024-04-03  京东云开发者    Tags:向量数据库   点击:(4)  评论:(0)  加入收藏
原来 SQL 函数是可以内联的!
介绍在某些情况下,SQL 函数(即指定LANGUAGE SQL)会将其函数体内联到调用它的查询中,而不是直接调用。这可以带来显著的性能提升,因为函数体可以暴露给调用查询的规划器,从而规划器...【详细内容】
2024-04-03  红石PG  微信公众号  Tags:SQL 函数   点击:(3)  评论:(0)  加入收藏
如何正确选择NoSQL数据库
译者 | 陈峻审校 | 重楼Allied Market Research最近发布的一份报告指出,业界对于NoSQL数据库的需求正在持续上升。2022年,全球NoSQL市场的销售额已达73亿美元,预计到2032年将达...【详细内容】
2024-03-28    51CTO  Tags:NoSQL   点击:(13)  评论:(0)  加入收藏
为什么数据库连接池不采用 IO 多路复用?
这是一个非常好的问题。IO多路复用被视为是非常好的性能助力器。但是一般我们在使用DB时,还是经常性采用c3p0,tomcat connection pool等技术来与DB连接,哪怕整个程序已经变成以...【详细内容】
2024-03-27  dbaplus社群    Tags:数据库连接池   点击:(12)  评论:(0)  加入收藏
八个常见的数据可视化错误以及如何避免它们
在当今以数据驱动为主导的世界里,清晰且具有洞察力的数据可视化至关重要。然而,在创建数据可视化时很容易犯错误,这可能导致对数据的错误解读。本文将探讨一些常见的糟糕数据可...【详细内容】
2024-03-26  DeepHub IMBA  微信公众号  Tags:数据可视化   点击:(6)  评论:(0)  加入收藏
到底有没有必要分库分表,如何考量的
关于是否需要进行分库分表,可以根据以下考量因素来决定: 数据量和负载:如果数据量巨大且负载压力较大,单一库单一表可能无法满足性能需求,考虑分库分表。 数据增长:预估数据增长...【详细内容】
2024-03-20  码上遇见你  微信公众号  Tags:分库分表   点击:(13)  评论:(0)  加入收藏
在 SQL 中写了 in 和 not in,技术总监说要炒了我……
WHY?IN 和 NOT IN 是比较常用的关键字,为什么要尽量避免呢?1、效率低项目中遇到这么个情况:t1表 和 t2表 都是150w条数据,600M的样子,都不算大。但是这样一句查询 ↓select *...【详细内容】
2024-03-18  dbaplus社群    Tags:SQL   点击:(5)  评论:(0)  加入收藏
应对慢SQL的致胜法宝:7大实例剖析+优化原则
大促备战,最大的隐患项之一就是慢SQL,对于服务平稳运行带来的破坏性最大,也是日常工作中经常带来整个应用抖动的最大隐患,在日常开发中如何避免出现慢SQL,出现了慢SQL应该按照什...【详细内容】
2024-03-14  京东云开发者    Tags:慢SQL   点击:(4)  评论:(0)  加入收藏
过去一年,我看到了数据库领域的十大发展趋势
作者 | 朱洁策划 | 李冬梅过去一年,行业信心跌至冰点2022 年中,红衫的一篇《适应与忍耐》的报告,对公司经营提出了预警,让各个公司保持现金流,重整团队,想办法增加盈利。这篇报告...【详细内容】
2024-03-12    InfoQ  Tags:数据库   点击:(26)  评论:(0)  加入收藏
SQL优化的七个方法,你会哪个?
一、插入数据优化 普通插入:在平时我们执行insert语句的时候,可能都是一条一条数据插入进去的,就像下面这样。INSERT INTO `department` VALUES(1, '研发部(RD)', &#39...【详细内容】
2024-03-07  程序员恰恰  微信公众号  Tags:SQL优化   点击:(19)  评论:(0)  加入收藏
站内最新
站内热门
站内头条