暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

大模型需要搭配一款什么样的向量数据库!

365

1

:“百度的向量数据库叫什么名字?”

大模型答:“很高兴为你服务,百度的向量数据库 VectorDB 别称 “莫愁”,属于百度数据库团队自研的数据库产品。” 

大模型为什么知道百度向量数据库的名字呢,这一问一答中究竟经历了什么呢?

其实要实现大模型和企业的私有化数据和知识管理起来,就需要用到向量数据库。问题转为向量数据,然后在向量存储模块中找到关联的内容,把问题和找到的内容一起发给大模型理解,大模型返回答案给用户。这就是常见的大模型+私有知识库最基本的用法。

大家知道,大语言模型存在知识更新不及时、会产生幻觉、无法具备特定行业或私有知识,以及难以实现安全回答等问题。通过引入向量存储模块作为大语言模型的长期记忆体,通过向量存储模块中数据的反馈和干预,能够以较低的成本解决上述问题。但是随着企业级应用日益复杂,对向量存储模块带来很大的调整,包括

  • 数据类型支持

    • 更广泛的应用意味着更多种类数据

  • 对安全的诉求

    • 需要兼容复杂访问人群的多租户权限隔离。

    • 企业内不同职能部门对知识库有不同访问权限。

    • 敏感知识库访问需要审计,安全访问的审计和日志管理。

  • 配套企业级能力

    • 方便接入的数据导入导出功能。

    • 防止数据丢失的备份恢复机制。

    • 异地多活能力。

因此企业需要的不是一个简单的向量存储模块,企业需要的是专业的向量数据库。

向量数据库 = 向量检索 + 数据库!

向量数据库的功能,大致可以拆分为 2 部分,向量数据的检索,以及向量数据的存储和管理。更高的 QPS,更低的延迟就意味着能够提供更准的信息,更快地回复,更少的资源占用,承担更大规模的业务。

想要提高向量数据库的性能,主要也就是针对以上 2 部分着手,更新的向量检索算法,更好的数据库存储架构和管理机制。其中各类优异的向量检索算法,能够通过各类插件被快速应用。想要进一步提升业务性能,则只有回到架构和核心层面,提供优异的数据库产品。

同时,随着大模型在业务应用范围不断扩大,向量数据库将从创新型的业务逐步深入融合到企业的业务,对向量数据库的企业级能力要求也会越来越全面,比如权限管理、数据加密、备份与恢复、异地多活等。数据的规模将会越来越大,类型也会越来越复杂,也会对现在主要以单体数据库为支撑架构也将面临挑战。

要满足用户对高性价比,强扩展能力,各种企业级能力的综合诉求,当前开源的产品是无法解决的,因此需要我们从零开始,全面设计一款专用的向量数据库,帮助用户能够应对向量数据库的业务场景挑战。

百度智能云在 2 月底推出了专有的向量数据库产品 VDB。在此次发布的 1.0 版本中,为了满足客户诉求,解决上述问题,我们全新设计了底层基础设施和内核,性能更好,资源占用更低,并提供百亿级别的扩展性(分布式)。整个底座的每个环节进行了充分的优化,因此产品的1.0版本即具备相当的优势,主要体现在以下方面:

  • 架构&内核

    • 高可用分布式架构:莫愁的分布式框架基于强大的bRaft协议库构建,通过了TLA+形式化验证,通过了混沌测试,支持快速故障切换,支持高可靠和高可用,支持弹性伸缩,支持百亿级规模;

    • 高性能基础设施:莫愁完全基于现代C++语言编写,基于bRPC和bthread协程等百度高质量高性能编程框架构建,充分应用GCC编译器优化和CPU指令集优化,深入优化向量检索算法,在HNSW算法下的向量检索性能大幅超过同类开源产品;我们产品 QPS 在不同线程下都是最好,平均时延最低,性能提升 40~60%。

    • 专门的列存引擎:对于一行具有多个向量字段的场景,不同的向量字段的数据能够进行有效地隔离,各自进行存储和索引,能够更精细地管理各自的资源开销;对于标量字段,可通过列式压缩进一步降低存储开销;


  • 功能

    • 丰富的检索方式:支持纯标量检索、纯向量检索、向量和标量混合检索,支持MPP方式的向量检索,向量/混合检索过程支持丰富的标量过滤条件,过滤条件的语法符合标准SQL的WHERE子句语法,基于这些丰富的检索方式,客户可以方便地引入更多的场景;

    • 丰富的数据类型:除了支持浮点向量类型,还支持多种常见的标量类型、日期/时间、字符串、二进制和中文编码类型等。支持任意类型混合,基于这些丰富的类型,客户可以很方便地设计出更加紧凑的业务数据库表模型,从而简化业务架构;

    • 友好易用的API和SDK:产品API和SDK历经多轮优化,概念清晰,友好易用;


  • 生态

    • 结合百度AI 原生生态:积极融入百度智能云AppBuilder以及业界知名AI应用开发框架,助力生态构建,助力提升AI原生应用的开发的效率和便利性。


      2

如果您正在进行如下几类应用或业务的开发,可以尝试引入VectorDB产品。

1、基于大模型的知识处理

预先对各种形式的文本知识(如网页、Wiki、文本/pdf/word文件、其他数据源等)进行适当的抽取和分割,然后向量化,随后将原始文本数据和向量化数据及其它信息一并入库到向量数据库。推理时,可以将问题进行向量化,在向量数据中通过向量相似性检索来获取相关内容,或者通过问题的关键字/词进行全文检索来获得相关内容,或者两种方法兼而有之,通过各类RAG技术来获取到相关内容,最后将这些相关内容与Prompt一并送入大模型,从而获得最终的回答,这也是经典的MVP(Model-VectorDB-Prompt)应用范式。更进一步地,已经产生的问题和答案,还可以作为历史记录或者回答Cache进一步存储到向量数据库中。常见的此类应用包括基于语义的内容检索、AI聊天系统、智能客服和智能运维等。

2、基于特征的相似性检索

对图片、图形、音视频片段、行为模式、用户画像、商品画像等各类对象进行特征化,将特征向量及相关信息一并入库到向量数据库。当应用需要检索与某个对象相似或相关的对象时,例如推荐相似的商品,可以通过目标对象的特征向量从向量数据库中做向量检索从而获得相似度最高的一些对象。常见的此类应用包括商品推荐、人脸识别、以图搜图等。

3、NoSQL类数据库应用

VectorDB既是一款专业的向量数据库产品,同时也支持非常丰富的标量类型,以及相应的标量索引和查询能力,支持强Schema特性,支持增删改查,支持压缩等,可以将其当作一款NoSQL数据库来使用。

下面我们基于百度向量数据库简单说明如何应用于语义检索的场景。


3

快速使用向量数据库

步骤 1:调用千帆 Embedding-V1 模型接口将文本数据转换为向量数据,详情请参考Embedding-V1。

# 步骤一,获取access_token,替换下列示例中的API Key与Secret Key

curl 'https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=[API Key]&client_secret=[Secret Key]'


# 步骤二,调用本文API,使用步骤一获取的access_token,替换下列示例中的”调用接口获取的access_token“

curl -X POST https://aip.baidubce.com/rpc/2.0/ai_custom/v1/wenxinworkshop/embeddings/embedding-v1?access_token=[步骤一调用接口获取的access_token] -d '{

"input": ["西游记简介,第一章..."]

}'

文章转载自数据库和 AI 技术,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论