自ChatGPT爆火,国内头部平台型公司一拥而上,先后发布AGI或垂类LLM,但鲜有大模型基础设施,比如向量数据库。
7月4日,腾讯云弥补了这一不足,推出能被广泛应用于大模型训练、推理和知识库补充等场景的腾讯云向量数据库Tencent Cloud VectorDB,这是国内首个从接入层、计算层、到存储层提供全生命周期AI化的向量数据库。
什么是向量数据库?腾讯的目的是什么?对B端应用方,这有什么好处?
国内首个全生命周期VectorDB
ChatGPT让LLM成为AI赛道焦点,向量数据库也由此成为热门话题。向量数据库就可为LLM插上一个廉价但有效的“外接大脑”。
这话怎么说?
首先,向量通常用于在多维空间中表示数据值/点的位置、特征或属性;而向量数据是一种数学表达,即用一组有序的数值(通常是浮点数),表达一个对象或数据值/点。
举个例子,在计算机视觉中,可以通过数值(即像素值)表达图像,这组数值构成一个向量。每个数值对应图像某个像素的颜色强度。比如,一幅8x8的灰度图像,即一个包含了64个数值的向量。
其次,向量并非专用于AGI,一开始被用于推荐类AI。由于向量能被用于在多维空间中的数据点的特性,因此被用于推荐类AI的个性化推荐。在推荐系统中,无论是用户,还是物品,都能用向量表示。
比如,某个用户对服饰颜色、款式、材质、用途等有个性化偏好,这些偏好可用数值向量概括。通过计算用户向量与物品向量之间的相似度,实现个性化推荐。
在AI世界中,向量被用于表达物理世界的万物,而LLM的兴起,对向量数据的存储和计算需求,得以大规模释放。
在2022年12月前,向量在各种AI推荐系统中已经得到深度应用。正因为如此,向量数据才会散落在数量庞大的推荐系统文件中,没有形成专门的向量数据库。
向量数据结构虽然较为简单,但因为应用场景极多,比如机器视觉、文本和图像处理、神经网络、自然语言处理等多模型AGI领域,故算法也相应种类繁多。
在多系统中调取/检索向量数据,耗费的GPU和CPU资源量级极为庞大,因而成本高而效率低下。腾讯云数据库副总经理罗云说,“当我们使用向量数据库Workload(工作量)越来越大,插件式数据库就会面临挑战。”
从2019年开始,有些通用/插件数据库,就开始增加对向量数据库的支持,比如ElasticSearch、Redis和PostgreSQL。
腾讯云此次发布的向量数据库,最早也是始于2019年。那会儿腾讯云推出一个叫做“OLAMA”的分布式向量数据库存储技术引擎,成为腾讯云向量数据库底座之一。OLAMA目前可支持十亿级别的单行向量数据索引、查询 QPS达到百万、响应延迟为20毫秒。
从2019年开始,腾讯云持续地丰富OLAMA引擎的AI能力,比如添加了好几种向量索引算法,像Embedding算法和Segment算法,还包括NLP(自然语言)检索能力等等。
向量数据算法的作用是什么?
简单地说,怎么能更快速、更准确、更低成本和更低时延找到向量,以及如此找到那些更相似的向量,这是向量数据算法的目的,也是此次腾讯推出的向量数据库改进算法能力的体现。
腾讯PCG大数据平台部搜索推荐Senior Tech Lead郑伟说,“除了快速高效低时延,腾讯云向量数据库另外一项大的改进,就是在做到低成本的同时,OLAMA引擎的稳定性还得到了大幅提升。”
第三,在应用性方面,腾讯云向量数据库做了大量改进,“怎样能更自动化、更智能地对外提供服务。”郑伟说,“在大模型出来后,怎么样能更好地贴合大模型做更多扩展,比如用户只要敲敲键盘,就能通过用我们的向量数据库,得到各种账单、各种数据和各种报表等。”
降本增效,提供记忆能力
腾讯云推出专业向量数据库,源自需求端的强力推动。
据罗云透露,“基本上每天不止1-2客户前来咨询向量数据库什么时候能给他们使用。”
向量数据库有三个阶段需求:第一个阶段,类型必须是向量数据库。罗云说,由于腾讯云从2019年就开始持续迭代向量数据库存检引擎,到现在,这步已直接跨越;第二个阶段,要解决成本问题。比如单QPS(每秒查询推理响应速度:Query Per Second)成本,需求方一次查询需要花多少钱。
第三个阶段,就是B端用向量数据库的易用性,这需要腾讯云具有丰富的行业的AI应用经验。向量数据库,用于向量提供存储和检索,需求方要把非结构化数据(如一段文本变成向量),要把文本分段,分段之后要找到合理模型做Embedding(向量)。
在ML(机器学习)和NLP中,Embedding是一个N维的实值向量,几乎可用于表达/描述任何形式,如文本、声音或视频等。实值的Embedding能描述单词语义,主要是因为Embedding向量能根据单词在语言上下文(Context)中出现的形式达成学习。
腾讯云向量数据库已在QQ浏览器、腾讯视频、腾讯游戏、QQ音乐、搜狗输入法等30+业务场景中得到应用。当前,腾讯云团队还处于满足需求的第三个阶段,重点是“围绕AI化提升产品整体的应用性”,罗云说。
为什么LLM要用到向量搜索技术?
如果给定一个对象,在一个集合中找到与之最相似的对象的过程,就是向量搜索。文本或图片等内容,都能通过将其转换为向量的表示方式,进而将文本或图片的相似度问题转换为向量的相似度问题。
这里有个问题,就是LLM场景模型的上下文有个长度限制。比如,ChatGPT 3.5上下文长度限制是4k tokens。超出Context长度,ChatGPT就会“失忆”,影响交互结果(或称Context Learning)的准确性。
但是,向量搜索拥有的能力之一,就是将超出上下文长度限制的文本划分成较短的组(Chunks),再将不同的组转换为Embedding。这就相当于向量搜索拥有记忆能力。LLM用向量数据库,就类似于有了一个外部大脑。通过Embedding,能找到与提示(Prompt)最相关的信息。
从这个角度上说,向量数据库承担了LLM的Context Learning的记忆任务,从而提高了GPT的交互准确性。
此外,由于基于以Transform架构为基础的LLM的AI训练耗时长,成本高,因此就很难将最新的素材(数据)加入LLM,这被称为LLM的时效限制。若终端用户又急需LLM数据做即时更新,这时向量数据库的作用就很显著。
LLM的空间限制也很明显,比如B端用户的私域数据,不方便提供给LLM训练平台做高频集训。这时,B端用户就能将私域数据放在向量数据库中,需要推理时,就临时取调给LLM。这样做的好处是数据安全,而且训练效率高、成本低。
为什么能实现这一点?
因为向量数据库专门用于存储和查询向量数据,业界称之为大模型的“海马体”。
腾讯云向量数据库最高支持10亿级向量检索规模,延迟控制在毫秒级,相比传统单机插件式数据库检索规模提升10倍,同时具备百万级每秒查询(QPS)的峰值能力。
将腾讯云向量数据库用于大模型预训练数据的分类、去重和清洗相比传统方式,能提升10倍效率。如将向量数据库作为外部知识库用于模型推理,则可降低2-4个数量级的成本。