一,什么是向量数据库?
向量数据库是指专门用来存储和管理向量数据的库。是现在流程的大模型应用中很好的辅助工具。
传统数据库是只那些一个ID对应一个表单之类的文本数据,比如一个餐厅的菜单数据库,这类数据统称为结构化数据。文本、图像、音频、视频等非结构化的数据,这些是现在使用的最多的“大数据”。大模型就是学习的这些不规则,非结构化的大模型数据。大模型通过向量来认识这些数据。向量是一串数字,可以通过嵌入emmbedding的方式把各种非结构化的数据表达出来。就像是翻译,可以把数字,图片,文字,音频全部转换为一串串数字,包含数据里的所有信息,而AI大型模都能看懂这些信息,并用它们进行训练和推理。
在机器学习和数学科学里,向量是一组数字,它们组成了多维数值空间,向量的每个维度代表该空间的一个不同的特征或属性,比如说图像中不同像素点的颜色值。或者本文中每个词出现的频率等。通过定义不同的特性和属性,就可以把原始数据表示成多个维度的向量。这种表示方式的好处就是类似的内容转化成向量之后他们都会离得比较近,这样就可以用余弦相似性和欧式距离这些方法来量化向量的相似性。推荐算法技术就是根据对用户的历史数据建立向量,在数据库中找到离这个向量最近的向量。像购物场景的搜同款,找类似图片等都是类似原理。
二、向量数据库在AI大模型中作用
向量数据库技术补充了大语言模型普及中的短板,具体在以下3个方面的体现:
私域知识:把向量数据库作为大模型的外挂数据库,即使大模型没有学过相关的知识,也可以直接从向量数据库里检索相应的内容。这种方法无需重新训练,比常见的大模型微调成本更低,速度更快。也能通过更新数据库的方式来保证AI大模型的实时更新。
本地存储:把数据存在本地,而不需要喂给大模型训练,当你有很多的敏感数据,不想让大模型知道,就可以通过向量数据库来完成,这可以从根本上协助解决大模型隐私泄露的问题。
长期记忆:相对于大模型的短期记忆来说,大模型都有上下文窗口,窗口大小由Token数量决定。只能记住这个窗口中间的东西,有了向量数据库就可以保存所有的聊天记录。很适用于聊天机器人,多用户使用的场景。把每个人用户的聊天内容都存储在向量数据库中,不会丢失上下文信息。
三、构建向量数据库涉及的技术
使用构建好的向量数据库的流程如下:
-》用户输入内容
-》通过嵌入模型计算出文本对应的向量数据
-》将向量数据与数据库的数据做相似度检索,找到相似的向量
-》将检索结果返回给用户
所以词嵌入模型和向量检索算法是向量技术库的重要技术点。词嵌入模型算法是指如何将非规范数据映射到一个向量空间的处;向量检索算法,即如何在海量向量里找到跟目标向量最相似的 K 个,又叫 topK。
衡量向量数据库的好坏可以从如下几个维度进行:
检索规模:可以查询的知识范围,相当于脑容量
易用性:是否容易部署使用
稳定性:查一次,和查多次是不是相同的结果。日常运行会不会崩掉
四、结语
大模型是目前AI技术的一个重要方向,随着大家对大模型应用场景的畅想,从大模型的数据训练,模型推理部署等都还有很多技术需要广大科研人员和工程师的努力,毫无疑问,适配于大模型应用的向量数据库技术应该会很快发展起来。