写点什么

矢量数据库:企业数据与大语言模型的链接器

  • 2023-08-02
    北京
  • 本文字数:1976 字

    阅读完需:约 6 分钟

矢量数据库:企业数据与大语言模型的链接器

随着 ChatGPT 的推出,通用人工智能的时代缓缓拉开序幕。我们第一次看到市场在追求人工智能开发者,而不是以往的开发者寻找市场。每一个企业都有大量的数据:私有的用户数据、自己积累的行业数据、产品数据、生产线数据、市场数据等等。这些数据都不在基础大语言模型的记忆里,如何有效地将这些数据利用起来,是政府和企业在迈向通用人工智能的发展道路上面临的重要课题。


我们可以将私有数据作为微调语料来让大语言模型记住新知识,这种方法虽然可以让大模型更贴近企业应用场景、更高效使用私有数据,但往往难度较大,另外企业数据涵盖了文本、图像、视频、时序、知识库等模态,接入单纯的大语言模型学习效果较差。


我们今天来聊聊另一种更常见的方案,通过矢量数据库提取相关数据,注入到用户 prompt context(提示语境)里,给大语言模型提供充分的背景知识进行有效推理。如图一所示。


图一 基于数据提取的大语言模型应用架构


矢量数据库允许任何对象以矢量的形式表达成一组固定维度的数字,可以是一段技术文档,也可以是一幅产品配图。当用户的提示包含了相似语义的信息,我们就可以将提示编码成同样维度的矢量,通过矢量数据库查寻 K-NearestNeighbor(近邻搜索)来获得相关的对象。Approximate Nearest Neighbor(近似近邻搜索)作为矢量数据库的核心技术之一,在过去的十年里获得了长足进步。它可以通过损失一定的准确度在高维空间里快速搜索近邻矢量,比如 NGT 算法可以在接近一千维的矢量空间达到万次查询,而准确度不低于 99%。如图二所示,不同的算法展现了不同的妥协效果。


图二 查询QPS和返回准确度(召回)之间的妥协。数据集为fashion-mnist采用了784维矢量,测试基于单个CPU的统一环境,测试时间为2023年4月。


这种语义搜索的方法起源于大语言模型时代之前,起初是为了降低企业搜索的工程复杂度,提升搜索结果的相关性,因为矢量本身和神经网络高度契合,也成为大语言模型应用的标准配置。甚至出现如 Memorizing Transformer 和 KNN-LM 这样的架构将近邻搜索算法和大语言模型结合来成功构造快速 external memory(外部记忆)。


但是这样的架构依然存在一个重要的问题:从用户的提示生成矢量,通过近邻搜索找到有关数据,这两方面的矢量相似度高并不一定代表语义的相关性也高,因为两方的矢量可能并不在同一语义空间。如果企业数据的语义空间和大语言模型有比较大的区别,图一所示的架构就可能无法有效地关联重要数据而降低了可用性。


这种语义空间差别在处理多模态数据时尤其明显,比如从文本到图像的对齐(如图三),从文本到知识图谱的对齐(如图四)。同时,图像、视频、知识图谱、文档等等都蕴含大量的信息,压缩到单一矢量大大损失颗粒度,从而降低了近邻搜索的有效性。


如果将这些对象碎片化处理,再由大语言模型进行整合,除了复杂的碎片化工程,这种方法大大提高了提示语境的长度要求。尽管大量的研究工作已经从计算效率上解决了语境长度的瓶颈,比如 Linear Transformer,Reformer,到最近的 LongNet,理论上 1B 的 Token 已经是可行的,但实际的效果却显示当前的大语言模型并不能很好地利用长语境来获得相关信息(如图五)。归根结底,将大量背景信息有效高效地投射到文本语义空间从而让后端的大语言模型可以更好发挥依然是目前应用开发的一大难点。

 

图三 图像文本通过交叉注意力机制对齐。借用BLIP2架构图


图四 知识图谱和文本通过交叉注意力机制对齐。借用动态知识图谱融合模型


图五 相关的文档在提示语境中的位置会极大影响大语言模型的能力。来自于最近的研究。


语义空间的投射可以看作是一个 alignment(对齐)任务。在粗颗粒度上,单一矢量的空间对齐可以通过学习投射矩阵来实现(如图六所示)。这个投射空间小,可以用较少的标注数据训练,从而大大提升搜索结果的相关性,也已经成为业界广泛使用的技术。


而细粒度的对齐工作依然是目前技术突破的焦点,从 Perceiver IO,CLIP 到 BLIP2,我们也渐渐看到交叉注意力机制的通用对齐能力(如图三、四),特别是大规模的无监督学习半监督学习大大提升了对齐的泛化能力。把这些对齐算法和矢量数据库结合起来提供快速高效的细粒度对齐将会极大提升大语言模型应用的用户体验,也是值得我们期待的方向。


图六 粗粒度对齐


总体而言,通过矢量数据库将企业内部数据和大语言模型结合起来拥有广泛的应用场景,但技术挑战也仍然很大,我们今天讨论的这些技术点仅仅是诸多挑战中的一两个环节,还有很多没有触碰,后面有机会和大家继续探讨。


参考资料:

https://github.com/erikbern/ann-benchmarks

https://arxiv.org/pdf/1911.00172.pdf

https://arxiv.org/pdf/2307.02486.pdf

https://arxiv.org/pdf/2006.16236.pdf

https://arxiv.org/pdf/2307.02486.pdf

https://arxiv.org/pdf/2301.12597.pdf

https://arxiv.org/pdf/2307.03172.pdf

https://arxiv.org/pdf/2307.03172.pdf

https://arxiv.org/pdf/2307.03172.pdf

https://finetunerplus.jina.ai/

https://github.com/krasserm/perceiver-io

https://arxiv.org/pdf/2103.00020.pdf

https://arxiv.org/pdf/2301.12597.pdf

作者介绍


缪旭,九章云极 DataCanvas 公司首席 AI 科学家。二十余年人工智能研究和管理经验,深耕人工智能的技术实现和应用,发表多篇学术文章,并拥有多项授权发明,专注将可推理可解释的人工智能、大模型、大规模实时机器学习、知识图谱等前沿 AI 技术加速应用于各行各业。

2023-08-02 17:006898

评论

发布
暂无评论
发现更多内容

人人自媒体的时代,程序员该如何利用好自己的优势?我记住了这些神器...

浅羽技术

工具 自媒体 写作技巧 三周年连更

得帆云DeMDM,业内首家基于低代码技术构建的主数据管理平台

得帆信息

低代码 数据治理 数据清洗 主数据管理 主数据管理平台

面对“失业焦虑”我们可以尝试自媒体分享| 社区征文

浅羽技术

三周年征文

BSN-DDC基础网络详解(八):部署自定义智能合约

BSN研习社

华秋干货分享:SMT钢网文件的DFA(可焊性)设计

华秋电子

300+页!卷王级别Java面试宝典-阿里服务端开发与面试知识手册!

Java你猿哥

Java spring JVM 面经 SSM框架

BAT必刷!GitHub顶级“2023并发编程全优笔记”晋升公司架构组!

Java你猿哥

Java 多线程 面经 SSM框架 多线程并发

近两年功能增加最多!Kubernetes 1.27 正式发布

Daocloud 道客

Kubernetes 云原生

低成本,全流程!基于PaddleDepth和Paddle3D的三维视觉技术应用方案

飞桨PaddlePaddle

人工智能 飞桨 PaddlePaddle 三维视觉

中移链系统合约管控功能介绍

BSN研习社

厚礼蟹!阿里最新SpringBoot核心笔记,一夜爆火于Github。

Java你猿哥

Java Spring Boot JAVA开发 SSM框架

GitHub上疯传数万次!蚂蚁内部绝密分布式高可用算法笔记太香了

Java 分布式 高可用 算法

文盘Rust -- 用Tokio实现简易任务池

京东科技开发者

rust runtime tokio 企业号 4 月 PK 榜

被裁后,狂刷大牛分享的607页JUC源码分析笔记,立马拿蚂蚁offer

Java 高并发 JUC JCF 集合框架

业内首份!医疗数据安全政策汇编发布(附下载)

极盾科技

数据安全

欧洲 KubeCon 2023 前瞻|相约全球顶级云原生开源盛会

Daocloud 道客

云原生 HPC cncf 调度器 #Kubernetes#

狂追ChatGPT:开源社区的“平替”热潮

OneFlow

BSN-DDC应用合约解读汇总(2023年一季度)

BSN研习社

爆肝一月!527页文档详解SpringCloud微服务和分布式系统实践

小小怪下士

Java 分布式 微服务 后端 SpringCloud

Spring自定义参数解析器设计

京东科技开发者

spring 自定义参数解析器 参数解析器 企业号 4 月 PK 榜

SpringBoot 多Module Proguard混淆(Gradle)

Java你猿哥

spring Spring Boot proguard

如何在ABAP里用函数式编程思想打印出非波拉契Fibonacci(数列)

汪子熙

SAP abap Netweaver 思爱普 三周年连更

应用部署引起上游服务抖动问题分析及优化实践方案

京东科技开发者

应用部署 jsf 企业号 4 月 PK 榜 上游服务抖动

还傻傻分不清MySQL回表查询与索引覆盖?

架构精进之路

MySQL 数据库 三周年连更

【问题解决】解决 swagger2 默认地址失效

Java你猿哥

Java JAVA开发 swagger2 java项目

高可靠多层板制造服务再获认可!华秋荣获创想三维优秀质量奖

华秋电子

后端开挂!一个接口实现CRUD操作,这款工具绝了!

Java你猿哥

Java 接口 后端 crud

2023年MQTT Broker技术选型时需要考虑的7个因素

EMQ映云科技

云原生 物联网 IoT mqtt 企业号 4 月 PK 榜

华为19级大佬10年心血终成百页负载均衡高并发网关设计实战文档

Java 负载均衡 高并发 网关设计

RocketMQ入门:(整合springboot)单机部署&集群部署

Java你猿哥

Java RocketMQ Spring Boot 架构师

矢量数据库:企业数据与大语言模型的链接器_AI 工程化_缪旭_InfoQ精选文章