Milvus中那些年重要的基本概念

news2024/11/14 22:00:02

        Milvus是一款开源的云原生向量数据库,专为海量向量数据的存储、检索和管理而设计。它支持实时的向量相似度搜索,适用于各种AI和机器学习应用场景。以下是Milvus的一些基本概念:

非结构化数据

        非结构化数据是指那些不遵循特定数据模型或格式、无法在传统关系型数据库中轻松存储的数据。这类数据包括文本、图像、音频和视频等,它们通常是自由形式的,包含丰富的信息,但也更加复杂。

        在Milvus中,非结构化数据通过特征提取转换为向量形式,即每个数据点被转换为数值向量,这些向量能够在多维空间中表示原始数据的特征。例如,一张图片可以通过深度学习模型转换为一个特征向量,该向量捕捉了图片的关键特征,如颜色、形状和纹理。

        Milvus作为一个向量数据库,专门用于存储和检索这些向量。它利用先进的索引策略,如倒排索引(Inverted Index)和HNSW(Hierarchical Navigable Small World),来快速检索相似的向量,从而找到与查询条件最匹配的非结构化数据。

        简而言之,Milvus将非结构化数据的复杂性转化为向量空间中的简单性,使得这些数据可以通过向量相似度进行高效的搜索和分析。这对于实现基于内容的检索(CBIR)、推荐系统、自然语言处理等应用至关重要。

特征向量(Embedding Vector)

       Milvus是一款开源的向量数据库,支持TB级向量的增删改操作和近实时查询,集成了多种向量索引库,提供了一整套简单直观的API。 特征向量是将非结构化数据转换成的连续向量,通常由浮点数或二进制数数组组成。这些向量可以用于计算数据之间的相似度。

  1. 向量定义:向量是具有一定大小和方向的量,可以理解为一串数字的集合,类似于一行多列的矩阵。例如:[2,0,1,9,0,6,3,0]。
  2. 特征向量:特征向量包含事物的重要特征,常见的特征向量如RGB色彩,其中每种颜色通过红、绿、蓝三种颜色的比例得到。
  3. 优势:特征向量能够高效准确地描述多媒体内容,对于机器学习和模式识别领域至关重要。
  4. 应用领域:广泛应用于图像识别、语音识别、垃圾邮件过滤等多个领域。

向量相似度检索

在Milvus中,向量相似度检索是一项核心功能,它允许用户在海量向量数据中快速找到与查询向量最相似的数据。以下是详细描述:

  1. 加载集合:在进行搜索之前,需要将包含向量数据的集合(Collection)加载到内存中。这是因为Milvus中的所有搜索和查询操作都在内存中执行。
  2. 准备搜索参数:根据搜索场景,定义搜索参数。例如,可以指定使用欧几里得距离(L2)来计算向量之间的距离,并从索引中检索最近的向量。
  3. 执行搜索:使用定义好的搜索参数,Milvus将计算查询向量与集合中向量之间的距离,并返回最相似的结果。搜索可以是简单的向量搜索,也可以是混合搜索,后者结合了标量字段过滤。
  4. 搜索结果:Milvus返回的搜索结果包括最相似的向量的ID和它们的相似度分数。用户可以根据这些信息进一步处理或分析数据。

Collection(集合)

        在Milvus中,Collection(集合)是存储和管理向量数据的基本单位,类似于关系型数据库中的表(table)。以下是关于Milvus中Collection的详细描述:

  • Collection的结构:每个Collection由多个字段(Field)组成,这些字段可以包含向量字段(用于存储向量数据)和标量字段(如数字、文本等用于存储描述性数据或元数据)。

  • 创建Collection:创建一个Collection时,需要定义其结构,包括字段的名称、类型和其他属性。例如,可以创建一个包含书籍ID、书名、单词数量和书籍简介向量的Collection。在创建新Collection时,Milvus会创建一个默认分区 _default

  • Collection的操作:用户可以对Collection执行各种操作,如插入数据、建立索引、搜索和删除等。

  • 分区和分片:为了提高数据管理的灵活性和搜索的效率,Collection可以被划分为多个分区(Partition)。此外,Collection还可以配置分片(Shard),以支持大规模分布式部署。

  • 索引和搜索:为了加速向量数据的检索,Milvus允许用户在Collection上创建索引。创建索引后,可以使用向量相似度搜索功能来快速找到与查询向量最相似的数据。

  • 扩展性:Milvus的设计支持高扩展性,可以容纳数千个Collection,满足大数据量和多租户场景下的需求。

  • 示例代码:以下是一个使用Python SDK创建Collection的示例代码:

from pymilvus import CollectionSchema, FieldSchema, DataType

book_id = FieldSchema(
  name="book_id",
  dtype=DataType.INT64,
  is_primary=True,
)

book_name = FieldSchema(
  name="book_name",
  dtype=DataType.VARCHAR,
  max_length=200,
)

word_count = FieldSchema(
  name="word_count",
  dtype=DataType.INT64,
)

book_intro = FieldSchema(
  name="book_intro",
  dtype=DataType.FLOAT_VECTOR,
  dim=2
)

schema = CollectionSchema(
  fields=[book_id, book_name, word_count, book_intro],
  description="Test book search"
)

collection_name = "book"

         这个示例展示了如何定义一个Collection的模式,包括主键字段、标量字段和向量字段。在实际应用中,向量字段通常具有更高的维度。Milvus的Collection是处理和检索向量数据的强大工具,它为各种AI和ML应用提供了灵活、高效的数据管理和搜索能力。

        Milvus的架构设计上,采用了存储与计算分离的模式,所有组件都是无状态的,以增强系统的弹性和灵活性。它包括接入层、协调服务、执行节点和存储层,每个层次都可以独立扩展和容灾。

        Milvus的应用场景非常广泛,包括但不限于图像搜索、推荐系统、自然语言处理和生物信息学等领域。如果您想了解更多关于Milvus的信息,可以访问其官方文档或社区资源。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1666278.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

npm无法安装node-sass 的问题

安装 node-sass 的问题呈现:4.9.0版本无法下载 Downloading binary from https://github.com/sass/node-sass/releases/download/v4.9.0/win32-x64-72_binding.node Cannot download "https://github.com/sass/node-sass/releases/download/v4.9.0/win32-x64-…

Linux服务器常用巡检命令,查看日志

查看日志 3.1 通过journalctl命令查看系统日志 命令&#xff1a;journalctl 3.2 通过tail查看系统日志 查看日志文件多少行代码&#xff1a;tail -n [行数] [日志文件] 4. 服务状态 4.1 查看指定服务的状态 命令&#xff1a;systemctl status <service> 比如查看防火墙…

React 第三十四章 React 渲染流程

现代前端框架都可以总结为一个公式&#xff1a;UI f&#xff08;state&#xff09; 上面的公式还可以进行一个拆分&#xff1a; 根据自变量&#xff08;state&#xff09;的变化计算出 UI 的变化根据 UI 变化执行具体的宿主环境的 API 对应的公式&#xff1a; const state…

Axure PR 10 制作顶部下拉三级菜单和侧边三级菜单教程和源码

在线预览地址&#xff1a;Untitled Document 2.侧边三级下拉菜单 在线预览地址&#xff1a;Untitled Document 文件包和教程下载地址&#xff1a;https://pan.quark.cn/s/77e55945bfa4 程序员必备资源网站&#xff1a;天梦星服务平台 (tmxkj.top)

事件代理 浅谈

事件代理是一种将事件处理委托给父元素或祖先元素来管理的技术。当子元素触发特定事件时&#xff0c;该事件不会直接在子元素上进行处理&#xff0c;而是会冒泡到父元素或祖先元素&#xff0c;并在那里进行处理。这样做的好处是可以减少事件处理函数的数量&#xff0c;提高性能…

PyCharm 集成 Git

目录 1、配置 Git 忽略文件 2、定位Git 3、使用pycharm本地提交 3.1、初始化本地库 3.2、添加到暂存区 3.3、提交到本地库 3.4、切换版本 4、分支操作 4.1、创建分支 4.2、切换分支 4.3、合并分支 5、解决冲突 1、配置 Git 忽略文件 作用&#xff1a;与项目的实际…

浅谈运维数据安全

在数字化日益深入的今天&#xff0c;运维数据安全已经成为企业信息安全体系中的核心要素。运维工作涉及到企业信息系统的各个方面&#xff0c;从硬件维护到软件升级&#xff0c;从网络配置到数据备份&#xff0c;无一不需要严谨的数据安全保障措施。本文将从运维数据安全的重要…

Ubuntu 22.04: VS Code 配置 C++ 编译及 CMake

一、VS Code 安装以及 C 编译环境配置 1. 在 Ubuntu 中安装 VS Code 笔者直接在 Ubuntu Software 中心安装 VS Code。也可以从VS Code官网下载 deb&#xff0c;解压 dpkg -i 安装。 2. VS Code 中配置 g/gcc 1) 安装 C/C 扩展 &#xff08;CtrlShiftX&#xff09; 2&#x…

HR人才测评,表达能力与岗位胜任力素质测评

什么是表达能力&#xff1f; 表达能力指的就是在语言能力基础之上发展形成的一种语用能力&#xff0c;可以结合自己所掌握的语言来实现交际的目的&#xff0c;能正确且灵活的把语言材料组合成为语言并且表达出想要表达的内容。 在百度百科中有如此定义&#xff0c;表达能力…

go-zero整合asynq实现分布式定时任务

本教程基于go-zero微服务入门教程&#xff0c;项目工程结构同上一个教程。 go-zero微服务入门教程&#xff08;点击进入&#xff09; 本教程主要实现go-zero整合asynq实现分布式定时任务。 本文源码&#xff1a;https://gitee.com/songfayuan/go-zero-demo &#xff08;教程源…

超详细的胎教级Stable Diffusion使用教程(五)

这套课程分为五节课&#xff0c;会系统性的介绍sd的全部功能和实操案例&#xff0c;让你打下坚实牢靠的基础 一、为什么要学Stable Diffusion&#xff0c;它究竟有多强大&#xff1f; 二、三分钟教你装好Stable Diffusion 三、小白快速上手Stable Diffusion 四、Stable dif…

【DevOps】Linux 安全:iptables 组成、命令及应用场景详解

导读&#xff1a;全面掌握 iptables&#xff1a;从基础到实践 在 Linux 系统中&#xff0c;iptables 是一个非常强大的工具&#xff0c;它不仅是系统管理员用来构建和管理网络防火墙的首选工具&#xff0c;而且也是一个功能丰富的网络流量处理系统。无论是进行包过滤、监控网络…

大数据测试

1、前言 大数据测试是对大数据应用程序的测试过程&#xff0c;以确保大数据应用程序的所有功能按预期工作。大数据测试的目标是确保大数据系统在保持性能和安全性的同时&#xff0c;平稳无差错地运行。 大数据是无法使用传统计算技术处理的大型数据集的集合。这些数据集的测试涉…

用大于meilisearch-java-0.7.0.jar的报错的解决

Elasticsearch 做为老牌搜索引擎&#xff0c;功能基本满足&#xff0c;但复杂&#xff0c;重量级&#xff0c;适合大数据量。 MeiliSearch 设计目标针对数据在 500GB 左右的搜索需求&#xff0c;极快&#xff0c;单文件&#xff0c;超轻量。 所以&#xff0c;对于中小型项目来说…

OBS插件--复合模糊

复合模糊 复合是一款滤镜插件&#xff0c;支持多种模糊类型和多种蒙版效果。支持模糊源的部分显示区域&#xff0c;可以反选区域进行模糊&#xff0c;这个功能对于场景部分区域需要遮盖非常实用。 下面截图演示下操作步骤&#xff1a; 首先&#xff0c;打开 OBS直播助手 在…

德国Dürr杜尔机器人维修技巧分析

在工业生产中&#xff0c;杜尔工业机器人因其高效、精准和稳定性而备受青睐。然而&#xff0c;即便是最精良的设备&#xff0c;也难免会出现Drr机械手故障。 一、传感器故障 1. 视觉传感器故障&#xff1a;可能导致机器人无法正确识别目标物&#xff0c;影响工作效率。解决方法…

5.神经网络-激活函数

目录 1. 激活函数不是阶跃函数 1.1 激活函数和阶跃函数都是非线性函数 1.2 激活函数不是阶跃函数 2. sigmoid 函数 2.1 sigmoid 函数表达式 2.2 sigmoid 函数 Python 实现 2.4 sigmoid 函数图 3. ReLU 函数 3.1 ReLU 函数表达式 3.2 ReLU 函数 Python 实现 3.4 ReLU…

现代制造之数控机床篇

现代制造 有现代技术支撑的制造业&#xff0c;即无论是制造还是服务行业&#xff0c;添了现代两个字不过是因为有了现代科学技术的支撑&#xff0c;如发达的通信方式&#xff0c;不断发展的互联网&#xff0c;信息化程度加强了&#xff0c;因此可以为这两个行业增加了不少优势…

Rust的协程机制:原理与简单示例

在现代编程中&#xff0c;协程&#xff08;Coroutine&#xff09;已经成为实现高效并发的重要工具。Rust&#xff0c;作为一种内存安全的系统编程语言&#xff0c;也采用了协程作为其并发模型的一部分。本文将深入探讨Rust协程机制的实现原理&#xff0c;并通过一个简单的示例来…

文献阅读——LPPLS(2)

A study on the bursting point of Bitcoin based on the BSADF and LPPLS methods 文献来源[2] Yao, Can-Zhong, and Hong-Yu Li. “A study on the bursting point of Bitcoin based on the BSADF and LPPLS methods.” The North American Journal of Economics and Financ…