为AI而生的数据库:Milvus详解及实战

本文介绍了向量数据库,它是为AI处理复杂数据而生,能赋能大模型、实现多模态搜索。重点介绍了Milvus数据库,包括其特点、关键概念、架构、组件和应用场景,还说明了部署及使用方法,如安装、可视化工具使用和Python操作,向量数据库将推动AI创新。
该文章已生成可运行项目,

1 向量数据库

1.1 向量数据库的由来

在当今数字化时代,人工智能AI正迅速改变着我们的生活和工作方式。从智能助手到自动驾驶汽车,AI正在成为各行各业的创新引擎。然而,这种AI的崛起也带来了一个关键的挑战:如何有效地处理和分析越来越丰富和复杂的数据。在这个背景下,向量数据库技术应运而生,为AI提供了强大的加速引擎。

AI时代的数据挑战:随着AI应用范围的扩大,大量的数据涌入各个行业。图像、文本、音频等多种数据形式都成为了AI的输入。这些数据的特点是多模态、高维、复杂和关联性强。传统的关系型数据库虽然在一些场景中仍然有用,但在处理这种多模态、高维数据时显得力不从心。因此,需要一种更适合AI应用需求的数据库技术,这就是向量数据库。

AI的加速引擎:向量数据库是一种专门为存储和检索向量数据而设计的数据库。它的核心思想是将数据映射到向量空间中,从而使得数据的相似性计算、聚类、分类和检索变得更加高效和精确。

向量数据库是专门用来存储和查询向量的数据库,其存储的向量来自于对文本、语音、图像、视频等的向量化。同传统数据库相比,向量数据库不仅能够完成基本的CRUD(添加、读取查询、更新、删除)等操作,还能够对向量数据进行更快速的相似性搜索

1.2 向量数据库对大模型的赋能

向量数据库拓展了大模型的边界,这种拓张包含两个方面,时间边界和空间边界:

时间边界的扩展:向量数据库能够使得大模型LLM拥有“长期记忆”。

目前的大模型(无论是NLP领域的GPT系列还是CV领域的ResNET系列)都是预先训练Pretrain的大模型,有着非常明晰的训练截止日Cut-off Date,这导致这些模型对于训练截止日之后发生的事情一无所知。而随着向量数据库的引入,其内部存储的最新的信息向量能够极大地拓展大模型的应用边界,向量数据库可以使得大模型保持准实时性,提高大模型的适用性,并使得大模型能够动态调整。因此向量数据库使得大模型具有了长期记忆。

假设一个预训练的新闻摘要模型在2021年底完成了训练,到了2023年,许多新闻事件和趋势已经发生了变化。为了使大模型能够处理这些新信息,可以使用向量数据库来存储和查询2023年的新闻文章向量。

在推荐系统中,预训练的大模型可能无法识别新用户和新产品的特征,通过向量数据库,可以实时更新用户和产品的特征向量,从而使大模型能够根据最新的信息为用户提供更精准的推荐。

此外,向量数据库还可以支持实时监测和分析。例如,在金融领域,预训练的股票预测模型可能无法获取训练截止日期之后的股票价格信息。通过将最新的股票价格向量存储在向量数据库中,大模型可以实时分析和预测未来股票价格走势。还有就是在客服领域,向量数据库将使得大模型可以追溯到对话的开始。

空间边界的扩展:向量数据库能够协助解决目前企业界最担忧的大模型泄露隐私的问题。

用户给出的Prompt可能会包含一些敏感信息。根据媒体报道,员工A用ChatGPT帮自己查一段代码的bug,而这段源代码与半导体设备测量数据有关;员工B想用ChatGPT帮自己优化一段代码,就直接将与产量和良品率记录设备相关的一段代码输入了其中。

这些行为直接导致了三星关键数据的泄露,而ChatGPT本身其实也出现过隐私泄露事件,使得有一小部分的对话历史/支付数据会被其他用户查看,这些数据都极为敏感,而通过本地部署,向量数据库能够在很大程度上解决这个问题。

向量数据库本地部署后可以存储企业有关的大量隐私数据,在本地部署或者专有云部署大模型后,通过特别的Agent大模型可以在有保护的情况下访问向量数据库的隐私数据,进而可以在不向外网暴露公司的隐私的情况下,使得公司的业务得到大模型的助力。

1.3 向量数据库实现多模态搜索

向量数据库自带多模态功能,这意味着它能够通过机器学习方法处理和理解来自不同源的多种模态信息,如文本、图像、音频和视频等,数据向量化过程使得这些不同模态数据的内部隐藏信息得以暴露,进而为多模态应用提供支持。

 一个典型的应用场景是多语言搜索,向量数据库支持跨语言的信息检索,用户可以使用英语、法语、中文等多种语言搜索图书库,而无需事先对书名进行多语言翻译处理。这得益于向量表示能够捕捉到语义相似性,使得来自不同语言的查询和内容能够相互匹配。

1.4 向量数据排名

2 Milvus数据库介绍

2.1 Milvus概述

Milvus 是一款云原生向量数据库,它具备高可用、高性能、易拓展的特点,用于海量向量数据的实时召回。

Milvus官网地址:Milvus

Milvus 基于FAISS、Annoy、HNSW 等向量搜索库构建,核心是解决稠密向量相似度检索的问题。在向量检索库的基础上,Milvus 支持数据分区分片、数据持久化、增量数据摄取、标量向量混合查询、time travel 等功能,同时大幅优化了向量检索的性能,可满足任何向量检索场景的应用需求。通常,建议用户使用 Kubernetes 部署 Milvus,以获得最佳可用性和弹性。

Milvus 采用共享存储架构,​存储计算完全分离​,计算节点支持横向扩展。从架构上来看,Milvus 遵循数据流和控制流分离,整体分为了四个层次,分别为接入层(access layer)、协调服务(coordinator service)、执行节点(worker node)和存储层(storage)。各个层次相互独立,独立扩展和容灾。

Milvus 向量数据库能够帮助用户轻松应对海量非结构化数据(图片/视频/语音/文本)检索。单节点 Milvus 可以在秒内完成十亿级的向量搜索,分布式架构亦能满足用户的水平扩展需求。

milvus特点总结如下:

  • 高性能:性能高超,可对海量数据集进行向量相似度检索。
  • 高可用、高可靠:Milvus 支持在云上扩展,其容灾能力能够保证服务高可用。
  • 混合查询:Milvus 支持在向量相似度检索过程中进行标量字段过滤,实现混合查询。
  • 开发者友好:支持多语言、多工具的 Milvus 生态系统。

2.2 Milvus关键概念

非结构化数据:非结构化数据指的是数据结构不规则,没有统一的预定义数据模型,不方便用数据库二维逻辑表来表现的数据。非结构化数据包括图片、视频、音频、自然语言等,占所有数据总量的 80%。非结构化数据的处理可以通过各种人工智能(AI)或机器学习(ML)模型转化为向量数据后进行处理。

特征向量:向量又称为embedding vector,是指由 embedding 技术从离散变量(如图片、视频、音频、自然语言等各种非结构化数据)转变而来的连续向量。在数学表示上,向量是一个由浮点数或者二值型数据组成的 n 维数组。

通过现代的向量转化技术,比如各种人工智能(AI)或者机器学习(ML)模型,可以将非结构化数据抽象为 n 维特征向量空间的向量。这样就可以采用最近邻算法(A

本文章已经生成可运行项目
评论 19
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

源启智能

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值