首页 > 数据库 >Milvus向量数据库入门实践

Milvus向量数据库入门实践

时间:2024-05-21 23:30:51浏览次数:22  
标签:结构化 入门 数据库 索引 Milvus 数据 向量

Milvus是一个开源的向量数据库,可以处理万亿级向量相似性搜索和分析。

 


非结构化数据呈爆炸式增长。而我们可以通过机器学习模型,将非结构化数据转化为 embedding 向量,随后处理分析这些数据。在此过程中,向量数据库应运而生。向量数据库是一套全托管的非结构化数据处理解决方案,可用于存储、索引、检索 embedding 向量。

什么是向量(Vector)?

向量是一系列数值,它们表达了浮点在多个维度上的位置。

用更通俗的语言来说,向量是一个数字列表,比如:[0.34, 2.35, 8.34, 8, 9, ...]。这些数字指出了空间内的一个位置,就像在电子表格中行号和列号指出特定单元格的位置一样(例如,“B7”)。


什么是向量数据库(Vector Database)?
向量数据库是一种以数学表示形式存储数据的数据库。向量数据库使机器学习模型更容易记住之前的输入,允许利用机器学习来支持搜索、推荐和文本生成等用例。数据可以基于相似度度量而非精确匹配来识别,使得计算机模型能够在上下文中理解数据。

当一个人访问一家鞋店时,销售员可能会推荐与个人偏好相似的鞋子。同样地,当在电子商务商店购物时,商店可能会在“客户还购买了...”这样的标题下推荐相似的商品。向量数据库使得机器学习模型能够识别类似的对象,就像销售员能够找到相似的鞋子,电子商务商店可以推荐相关产品一样。事实上,电子商务商店可能就是使用这样的机器学习模型来进行推荐的。

向量数据库主要用于图像检索、音频检索、文本检索等领域,其主要特点是能够高效地存储和检索大规模的向量数据。向量数据库用专门的数据结构和算法来处理向量之间的相似性计算和查询。通过构建索引结构,向量数据库可以快速找到最相似的向量,以满足各种应用场景中的查询需求。

Milvus向量数据库是在2019年创建的,其唯一目标是存储、索引和管理由深度神经网络和其他机器学习(ML)模型生成的大规模嵌入向量。

作为一个专门设计用于处理输入向量查询的数据库,它能够处理万亿级别的向量索引。与现有的关系型数据库主要处理遵循预定义模式的结构化数据不同,Milvus从底层设计用于处理从非结构化数据转换而来的嵌入向量。

本专栏介绍Milvus向量数据库的一些基础操作和入门开发实践,包括向量数据库的入门介绍、安装启动、PyMilvus库、Attu图形化管理工具、Zilliz Cloud云环境、开发入门实践等等。

 


专栏大纲

传统关系型数据库更适合用来应对结构化的数据,关系型数据库采用表格的形式来组织和存储数据,使用行和列的结构来表示实体和属性之间的关系。数据以结构化的方式存储,需要定义表的结构和字段类型。

 


向量数据库专门用于存储和查询向量数据。它将向量作为数据的核心组成部分,提供了专门的向量字段类型和索引结构来支持高效的向量相似性搜索。

大模型和神经网络,更多面对的是海量的非结构化数据,比如文本、音频、视频、关系等。它们有一种专门的处理方式:“向量化”。想要按这种方式组织数据,需要一个专门的数据库——向量数据库(Vector Database)。把复杂的非结构化数据通过向量化(embedding),处理统一成多维空间里的坐标值,通过计算向量之间的相似度或距离,快速定位最相关的近似值。

当前市面上的向量数据库也随着AI的火热如雨后春笋般出现。Milvus 向量数据库专为向量查询与检索设计,能够为万亿级向量数据建立索引。与现有的主要用作处理结构化数据的关系型数据库不同,Milvus 在底层设计上就是为了处理由各种非结构化数据转换而来的向量而生。

 


Milvus拥有最高的GitHub星级评级和强大的社区支持,有数量众多的企业信任这个向量数据库来满足业务需求。Milvus 是一款云原生的开源向量数据库,专为向量相似性搜索和 AI 应用赋能。

 


Milvus 于 2019 年开源,可用于存储、索引和管理由深度神经网络学习与其他机器学习模型生成的海量向量。Zilliz 将 Milvus 作为孵化项目贡献给 LF AI & Data 基金会。Milvus 项目于 2021 年 6 月正式毕业,现已成为向量数据库业内领导者。

Milvus在机器学习和数据科学领域获得了很高的声誉,在向量索引和查询方面拥有出色的能力。利用功能强大的算法,Milvus提供闪电般的处理和数据检索速度以及GPU支持,即使在处理非常庞大的数据集时也是如此。Milvus还可以与PyTorch和TensorFlow等其他流行的框架集成,从而允许将其添加到现有的机器学习工作流中。

本专栏介绍Milvus向量数据库的一些基础操作和入门开发实践,包括向量数据库的入门介绍、安装启动、PyMilvus库、Attu图形化管理工具、Zilliz Cloud云环境、开发入门实践等等。

标签:结构化,入门,数据库,索引,Milvus,数据,向量
From: https://www.cnblogs.com/rickie/p/18205177

相关文章

  • ES(Elasticsearch)入门-深入索引操作
    1.创建索引使用PUT请求。结构PUT/${index_name}//索引名称{"settings":{...索引相关的配置项目,如何:分配个数副分片个数等},"mappings":{...数据的结构}}-----------------------------------实例---------------------------......
  • 【Unreal】虚幻GAS系统快速入门
    【USparkle专栏】如果你深怀绝技,爱“搞点研究”,乐于分享也博采众长,我们期待你的加入,让智慧的火花碰撞交织,让知识的传递生生不息!前言最近在用UE做单机ARPG的战斗系统,研究了一下GAS。本文主要介绍GAS各个模块的用途,以及特定功能的多种实现方法。为了让大部分人能快速上手,不会涉......
  • TypeScript入门介绍
    目录TypeScript入门介绍什么是TypeScript?发展历史优缺点应用场景开发工具环境依赖编程IDEvs调试构建工具/工程化步骤汇总第一个项目TypeScript入门介绍什么是TypeScript?1.1TypeScript是由微软开发的一种开源的编程语言。它是JavaScript的一个超集,通过为JavaScript提供......
  • 蟒蛇书(Python编程:从入门到实践)第17章使用API 17.1.4处理API响应报错Caused by ProxyEr
    书上提供的原始代码:importrequests#执行API调用并存储响应url='https://api.github.com/search/repositories?q=language:python&sort=stars'headers={'Accept':'application/vnd.github.v3+json'}r=requests.get(url,headers=headers)prin......
  • Calico 入门教程
    什么是Calico?Calico是一种网络和安全解决方案,使Kubernetes工作负载和非Kubernetes/遗留工作负载能够无缝、安全地通信。组件和功能在Kubernetes中,进出pod的网络流量默认为default-allow。如果您不使用网络策略锁定网络连接,则所有Pod都可以与其他Pod自由通信。Ca......
  • Web入门
    SQL注入数据库基础*关系型数据库:#Access#MSSQL--1433*非关系型数据库:#MySQL--3306#Oracle--1521等对MySQL数据库的操作1.显示数据库 showdatabases;2.显示数据库版本 selectversion(); 3.使用数据库 useXXX;4.显示当前正在使用的数据......
  • jQuery2-动画技术入门指南-全-
    jQuery2动画技术入门指南(全)原文:zh.annas-archive.org/md5/71BE345FA56C4A075E859338F3DCA6DA译者:飞龙协议:CCBY-NC-SA4.0序言jQuery是一个跨浏览器的JavaScript库,旨在简化HTML的客户端脚本编写,并且是当今最流行的JavaScript库。利用jQuery提供的功能,开发人员能......
  • RabbitMQ在Java中的完美实现:从入门到精通
    哈喽,大家好,我是木头左!一、RabbitMQ简介RabbitMQ是一个开源的AMQP实现,服务器端用Erlang语言编写,支持多种客户端,如:Python、Ruby、.NET、Java、JMS、C、PHP、ActionScript、XMPP、STOMP等,支持AJAX。用于在分布式系统中存储转发消息,在易用性、扩展性、高可用性等方面表现不俗。本......
  • stm32 bootloader的app中断向量偏移设置,HAL库
    如何设置Hal库的中断向量偏移看前几篇的stm32f103c8t6HAL库更改中断向量表(app部分)-这一切足够了-博客园(cnblogs.com)我这里bootloader的APP开始地址就是0x08006000,中断向量偏移0x00006000设置完成之后编译mdk,将生成的bin文件使用ymodem写入0x08006000中这里设置一个IO......
  • stm32f103c8t6使用bootloader进行ymodem下载和app程序测试,部分总结(暂未测试中断向量偏
    bootloader程序部分(功能测试)print_boot_message();/*USERCODEEND2*//*Infiniteloop*//*USERCODEBEGINWHILE*/uint8_tkey_get_state;while(1){/*USERCODEENDWHILE*//*USERCODEBEGIN3*/key_get_state=g......