milvus 通俗易懂原理

一文了解Milvus2.4新特性和多向量搜索体验 比如:先提取人员A的脸部照片向量、声纹向量,然后在 Milvus 中,把人员A的脸部照片向量在众多人员的脸部向量中进行搜索,并且把人员A的声纹向量在众多人员的声纹向量中搜索,最后根据设定的两个模态向量的权重,对两个向量搜索结果重新排序,这样得到的结果,要比单向量搜索的更加准确。多向量搜索的时候,我使用的还是同一张图片,并且我是用同一张图片在两个向量中搜索的,权重设置的是,第一张照片的向量占60%,第二张照片的向量占40%。说明多向量搜索,能弥补单向量搜索的不足,让搜索的结果准确度更高。 阅读详情

向量值如何生成的

Milvus 是一个开源的向量数据库,专门用于处理高维向量的存储、搜索和分析。向量值本身通常来自于某些机器学习或深度学习模型的输出,尤其是在自然语言处理(NLP)、计算机视觉(CV)、推荐系统等应用中。具体来说,向量值的生成过程通常包括以下几个步骤:

  1. 数据表示与特征提取文本数据:

对于文本数据,向量通常是通过词嵌入(Word Embedding)或句子嵌入(Sentence Embedding)生成的。例如,利用像 Word2Vec、GloVe 或 BERT 这样的预训练模型,可以将文本(单词、句子、段落)转换成高维向量(embedding)。这些向量能够捕捉到文本的语义信息。

图像数据:对于图像数据,向量通常是通过深度神经网络(如卷积神经网络,CNN)进行特征提取。例如,使用 ResNet、VGG、EfficientNet 等预训练模型,可以将图像转换为一个固定长度的高维向量,表示图像的特征。

音频数据:对于音频数据,通常使用 MFCC(梅尔频率倒谱系数)、VGGish 等方法将音频信号转化为向量表示。视频数据:视频数据通常通过处理每一帧图像或提取时序特征来生成向量,这些向量可以反映视频中的动态信息。

  1. 特征向量生成经过特征提取后,得到的向量(通常是一个浮动的高维数字数组)就代表了数据在某个特征空间中的位置。通过深度学习模型(如卷积神经网络、循环神经网络、Transformer等)训练出的向量通常能较好地捕捉数据的语义信息。比如,对于文本数据,使用 BERT 这类大型语言模型生成的句子向量可以反映出句子中单词之间的语义关系。

  2. 向量的存储与索引Milvus 会接收这些高维向量并将其存储在数据库中,提供高效的向量搜索。Milvus 使用了特定的向量索引结构(如 IVF、HNSW、Annoy 等)来加速高维向量之间的相似性搜索。

  3. 向量搜索一旦向量存储在 Milvus 中,你可以使用 相似性搜索 来查找相似向量。Milvus 提供多种搜索算法,可以通过向量之间的距离度量(如 欧氏距离、余弦相似度、曼哈顿距离 等)来找到最相似的向量。

总结:Milvus 中的“向量值”通常是通过各种机器学习和深度学习模型从原始数据(如文本、图像、音频等)中提取出来的。这些向量表示了数据的特征,可以用于相似度搜索、聚类、推荐等任务。具体的生成方式取决于输入数据的类型和应用场景。

如何查询一个相似性

在 Milvus 或其他向量数据库中进行向量搜索时,核心思想是利用向量之间的相似度度量来找到最相似的向量。具体而言,当你提供一个查询向量(比如一个待搜索的值),Milvus 会计算这个查询向量与数据库中存储的每个向量之间的相似度,然后返回与查询向量最相似的那些向量。

这个过程可以分为以下几个关键步骤:

  1. 向量表示和相似度度量

向量表示:首先,数据(如文本、图像、音频等)被转化为向量。每个数据点都有一个高维向量表示,它是数据在某种特征空间中的位置。查询时,你会提供一个查询向量,表示你要查找的内容。

相似度度量:Milvus 通过计算查询向量和存储向量之间的相似度来判断它们的相似程度。常见的相似度度量方法有:
欧氏距离(Euclidean Distance):用于计算两向量之间的直线距离。距离越小,相似度越高。
余弦相似度(Cosine Similarity):用于衡量两个向量的夹角,值越大(接近1),表示两个向量越相似。
曼哈顿距离(Manhattan Distance):计算向量在各个维度上的绝对差的总和。
通常,余弦相似度和欧氏距离是最常用的相似度度量方法,尤其在处理文本和高维数据时。

  1. 向量索引结构

由于高维数据的计算复杂度较高,直接对所有向量进行一对一比较(即暴力搜索)会非常低效。为此,Milvus 使用了几种高效的向量索引结构,以加速相似度计算和检索。常见的索引结构有:

倒排文件(IVF, Inverted File):将向量分成若干个簇,并将每个簇索引起来。当查询向量到来时,Milvus 只需要搜索与查询向量相似的簇,从而避免了对整个数据库的全面搜索。IVF 适用于大规模数据集,能够提高查询速度。
HNSW(Hierarchical Navigable Small World):一种图索引方法,通过构建小世界网络来加速相似向量的查找。HNSW 在高维空间中也能提供高效的近似邻近搜索。
Annoy(Approximate Nearest Neighbor Search):一种基于树结构的近似搜索算法,适用于在大规模数据集上进行快速的相似性搜索。
PQ(Product Quantization):将向量分解为子向量,通过量化方法来减少存储空间,并加速相似度搜索。
这些索引方法能够大幅度降低计算复杂度,使得即便是在数百万或数十亿个向量的数据库中,Milvus 也能快速响应相似度搜索请求。

  1. 近似搜索 vs 精确搜索

在大规模向量搜索中,直接进行精确的最近邻搜索会非常耗时,尤其是高维空间(如数百维或更高)的情况下。Milvus 提供了近似最近邻搜索(ANN),即在搜索时通过某些算法(如HNSW、IVF)进行近似计算,以换取更高的速度。虽然这种方法不是100%精确的,但在大多数应用中,这种近似误差是可以接受的,并且相较于精确搜索,能大大提高效率。

精确搜索:会计算查询向量与所有向量的相似度,找到最匹配的向量。这种方法计算量大,适合数据量不大的情况。
近似搜索:通过近似算法(如图结构、聚类等)来减少需要检查的向量数目,通常能提供足够高质量的搜索结果,但可能会错过一些最相似的向量。
4. 搜索流程

搜索过程的一般流程如下:

生成查询向量:首先,系统会将查询的数据(如文本、图像)转化为向量表示,称为查询向量。

索引选择和查找:Milvus 会根据存储的向量的索引类型(如HNSW、IVF等)选择合适的索引结构,定位出可能与查询向量相似的子集。

计算相似度:通过计算查询向量与候选向量之间的相似度,找到最相似的向量。Milvus 会根据设置的参数(如返回的近邻数)返回前 K 个最相似的向量。

返回结果:返回相似度最高的向量及其对应的原始数据。

  1. 示例:搜索文本相似度

假设你有一组文本数据,并已经通过 BERT 或其他模型将每个文本转换成了一个向量(例如 768 维的向量)。当你输入一个查询文本时,系统会将该文本转换成一个向量,并利用之前提到的索引结构(如 HNSW 或 IVF)找到与查询向量相似的文本。通过计算这些向量之间的相似度(如余弦相似度),系统会返回与查询最相似的文本及其相关信息。

总结

向量搜索的核心在于通过计算查询向量与数据库中存储向量之间的相似度,来找到最相关的数据。Milvus 通过高效的索引方法和相似度度量来加速这一过程,使得在大规模数据集上,向量相似度搜索既高效又准确。同时,Milvus 支持精确搜索和近似搜索,提供了灵活的选择来平衡搜索精度和性能。

一篇文章带你学会向量数据库Milvus(一) 向量数据库是一种专用系统,旨在通过向量嵌入和数值表示来管理和检索非结构化数据,这些数据项捕获图像、音频、视频和文本内容等数据项的本质。与使用精确搜索操作处理结构化数据的传统关系数据库不同,向量数据库在使用近似最近邻 (ANN) 算法等技术进行语义相似性搜索方面表现出色。此功能对于开发跨各个领域的应用程序(包括推荐系统、聊天机器人和多媒体内容搜索工具)以及解决 AI 和 ChatGPT 等大型语言模型带来的挑战至关重要,例如理解上下文和细微差别以及 AI 幻觉。像Milvus。 阅读详情

相关推荐

向量搜索数据库milvus的详细讲解

向量搜索数据库milvus的详细讲解

leaning_java的博客 1万+

一文带你入门向量数据库milvus:含docker安装、milvus安装使用、attu 可视化,完整指南启动 Milvus 进行了向量相似度搜索

一文带你入门向量数据库milvus:含docker安装、milvus安装使用、attu 可视化,完整指南启动 Milvus 进行了向量相似度搜索

丨汀、的博客 4万+

救命!全网最通俗易懂Milvus部署教程,小白10分钟无痛上手(附Python完整代码)

摘要: 本文提供最简Milvus向量数据库部署教程,采用Docker单机模式+Python实战,10分钟快速上手。

qq_54929838的博客 836

开源的向量数据库Milvus

Milvus是一款开源的向量数据库,专为处理向量搜索任务而设计,尤其擅长处理大规模向量数据的相似度检索。

xuweilin的博客 5412

RAG与LLM原理及实践(11)--- Milvus hybrid search 源码分析及思想

这种漂移本质上和改动权重的效果是类似的,换句话说,因为相似度可能的不统一计算,会使得即使权重weights 分配准确,但最后得到的结果可能不符合预期。如果你能指明你要query 的是哪个partition当然是最好的,因为那样会使得search的scope 比较小,但是不知道也没关系,这个是optional的。output_fileds 就是查询后需要返回的哪几个字段,比如在上一篇文章实现的代码中,我们最终是需要返回 image 的path,供显示。通常这是在对返回query 效率有严格限制的条件下使用。

talentyiyy的专栏 791

【Agent从入门到实践】25 主流向量数据库速览:Pinecone、Chroma、Milvus,本地/云端选型建议

各位小伙伴,上一节咱们搞懂了“向量”和“相似度检索”,知道了向量数据库是Agent的“语义搜索引擎”。但真要落地开发,一打开列表:Pinecone、Chroma、Milvus、Weaviate、Qdrant……瞬间头大——到底选哪个?别慌!今天咱们就用大白话+实战对比,把3个最主流的向量数据库(Pinecone、Chroma、Milvus)讲透:它们是什么、适合谁、怎么用、怎么选。最后给你一份本地/云端选型决策表,看完直接落地,不踩坑!Chroma小而美,开发调试神器,个人/小项目首选;

人工智能AI技术 1526

如何从0-1构建一个RAG知识库?包含原理讲解和RAG优化(图文并茂、通俗易懂)— Milvus + spring-ai-alibaba

嵌入(Embedding)是一种将文本、图像等数据转换为向量的技术,便于统一处理和比较。向量数据库专门存储和检索高维向量,通过计算相似度快速匹配结果。召回率衡量检索系统找回相关数据的能力,需与精确率平衡。RAG(检索增强生成)技术结合外部知识库检索和大语言模型,提升回答的准确性和可靠性。这些技术广泛应用于推荐系统、语义搜索等场景。

日常记录分享,希望对大家有帮助,如有问题望大家批评指正 1070

SAP高级外币评估_FINS_FXV_S4 2022 OP

摘要:S/4HANA 2022 On-Premise中的高级外币评估(FINS_FXV)取代了经典外币估值(FAGL_FCV),提供更优化的财务结算功能。主要创新包括:增量发布逻辑、简化账户配置、行项目级估值可见性等。该功能支持IFRS9等会计准则,通过会计原则(Accounting Principle)进行配置,需完成财务报表版本定义、语义标记分配等必要设置。系统演示展示了从汇率维护(FB60/MIRO)、测试运行到最终过账(FB03)的完整流程,能自动计算并过账汇率差异。高级外币评估简化了期末结算操作,

yanzibing99的博客 1258

RAG性能瓶颈在于检索,Milvus学会直接起飞

干研发22年,踩过无数RAG检索翻车大坑。之前做AI日记Agent记忆模块,全程把Milvus从0到生产撸了一遍,今天掏干货,不讲晦涩理论,全是落地真心话。表结构设计:字段类型、动态/强Schema、Partition分区优化向量索引选型:FLAT、IVF、HNSW、DISKANN分规模匹配基础数据操作:插入、更新、精确查询、删除业务逻辑检索能力:基础语义搜索、标量过滤、范围分页、稠密稀疏混合检索重排稳定性保障:内存加载释放、四种数据一致性级别配置。

人工智能AI技术 201

[图解]SysML与EA实战:住宅安全系统接口块设计全解析

本文详细解析了使用SysML和EA工具进行住宅安全系统接口块设计的全流程。从系统上下文图入门到接口块实战技巧,涵盖块定义图与内部块图的视角转换,以及多图协同建模方法论。特别分享EA工具的高效操作指南和常见问题避坑建议,帮助工程师掌握精确信号定义、端口方向设置等关键技能,提升安防系统设计效率。

weixin_29234509的博客 331

手把手教你用ObjectCRX进行Caxa二次开发:从零开始的环境搭建教程

本文是一份面向零基础初学者的Caxa二次开发实战指南,重点讲解如何使用ObjectCRX框架从零开始搭建开发环境。内容涵盖Visual Studio 2015版本锁定、ObjectCRX向导集成、项目创建、典型错误解决,并最终实现一个可在Caxa中运行的HelloWorld程序,帮助开发者快速入门并避开常见陷阱。

w3x4y的博客 507

48-向量数据库选型-Chroma-vs-Milvus-vs-Qdrant实测对比

本文对四大主流向量数据库进行系统性实测对比——Chroma(轻量入门)、Milvus(分布式生产级)、Qdrant(高性能Rust引擎)、Weaviate(GraphQL原生)。通过百万级数据插入速度、Top-K召回精度、内存占用、Python SDK易用性和部署复杂度五个维度给出量化数据与选型决策树。文中配以Mermaid架构图展示各数据库的核心组件,适合在做RAG技术选型的AI开发者快速决策。

weixin_44081096的博客 356

字符集的选择

字符集的选择 一:背景介绍 DICOM特定字符集(0008,0005) 此标签获得不同的值就代表使用不同的语言进行解码。 以下为多家CT厂商的(0008,0005)取值: 字符集: unicode是字符集,ASCII、GB2312、GBK、GB18030既是字符集也是编码方式,UTF-8只是编码方式。 二:中文字符集介绍 世界通用字符集——UTF 中文字符集——GB2312、GBK、GB18030 字符集的详细介绍 一:UTF-8 程序是把一个字节一个字节的来读取,然后再根据字节中开头的bit

qq_41972968的博客 1516

104-实战论文搜索引擎-ArXiv爬取-Milvus存储-RAG问答-Gradio前端

本文是向量数据库板块的收官实战,把前九篇学过的零件——Embedding、分块、ANN索引、Milvus、RAG——组装成一个完整可用的论文搜索引擎:10万篇ArXiv论文入库,输入自然语言问题,秒级返回相关段落并附出处。文章按真实开发顺序展开六步流水线:ArXiv数据获取(官方API批量拉取元数据+摘要,速率限制与断点续传)、分块策略(按摘要+章节结构的语义分块,Chunk Size选择依据)。

weixin_44081096的博客 310

yolov5部署之七步完成tensorRT模型推理加速

目录前言step 1. 下载yolov5源码以及tensorrtx源码,并将yolov5s.pt转为.wts模型step 2. 确定并下载自己准备使用的CUDA版本。step 3. 根据自己的CUDA版本下载对应版本的cuDNN以及TensorRTstep 4. 根据自己使用的VS版本下载对应版本的OpenCVstep 5. 安装CUDAstep 6. 安装cuDNN、TensorRT以及验证TensorRT是否安装成功 前言     前段时间研究了Pytorch的环境配置,之后便从github上下载了yo

Christo的博客 4万+

MATLAB计算各种复合干热指数,如SDHI、DHMI等

MATLAB编程实现各种复合干热指数

WW、forever的博客 5079

97-Milvus从零到生产-Standalone-vs-Cluster-索引选择-分片监控扩容

本文系统讲解Milvus从开发环境到生产部署的完整路径,是把向量检索从Demo搬进生产线的实操指南。文章从部署形态的第一道选择题切入——Standalone单机版与Cluster集群版的适用边界(数据量、QPS、可用性要求三维判断);深入集合(Collection)设计的核心决策:Schema字段规划、动态字段开不开、主键策略,以及"一次设计失误全量重建"的代价分析;详解索引选择落地——HNSW/IVF_FLAT/IVF_PQ在Milvus中的参数配置。

weixin_44081096的博客 222

从零梳理项目架构:一份通俗易懂的分层学习笔记

对于多数AI开发者而言,架构认知是最薄弱的底层短板。本文隶属于《AI开发者的计算机通识笔记》专栏,以通俗商场类比拆解项目11层完整技术架构,大白话讲解各层级组件核心能力,聚焦AI应用落地场景,区分小型、中型项目的技术选型标准,帮助零基础AI开发者快速建立完整架构认知,规避过度架构、技术堆砌的新手问题,夯实AI项目开发的计算机通识基础。

2502_92964924的博客 568

YOLOv9改进策略 | Conv篇 | 2024最新ECCV最新大感受野的小波卷积WTConv助力YOLOv9有效涨点

本文给大家带来的改进机制是一种新的卷积层,称为WTConv(小波卷积层),它利用小波变换(WT)来解决卷积神经网络(CNN)在实现大感受野时遇到的过度参数化问题。WTConv的主要目的是通过对输入数据的不同频率带进行处理,使CNN能够更有效地捕捉局部和全局特征,WTConv成功解决了CNN在感受野扩展中的参数膨胀问题,提供了一种更为高效、鲁棒且易于集成的卷积层解决方案,我将其用于二次创新YOLOv9中的RepNCSPELAN4机制可以减少一定的参数量和计算量,达到一个可观的轻量化作用。

Snu77的博客 1539

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

LangChain的应用开发(二)

本文介绍了多模态聊天机器人和RAG技术的核心概念与应用。在多模态领域,系统支持语音、图片和视频处理,需通过URL或base64格式传输多媒体内容。RAG技术部分重点阐述了Embedding模型的发展历程,从静态Word2Vec到动态BERT等模型,以及向量数据库在语义搜索中的应用。文章详细比较了Chroma、FAISS和Milvus等向量数据库的特点,并展示了BGE-Large模型在中文RAG中的实践案例。最后介绍了RAG(检索增强生成)技术如何通过结合大语言模型和外部知识库提升回答质量。全文涵盖了从基础理

weixin_46300935的博客 1505

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

向量数据库基础:给智能体提供长期精准记忆

长期记忆。你肯定遇到过这种尴尬:跟ChatGPT聊了半小时,它转头就忘了你刚才说的偏好;智能客服问了三遍你的问题,每次都像第一次对话;自研Agent跑业务流程,跑着跑着就“断片儿”,前面的上下文全白给。传统大模型的上下文窗口再大,也是临时记忆,关了就没;想存长期、精准、可检索的记忆,必须靠向量数据库。今天这篇文章,我用22年AI开发踩坑的经验,用最通俗、带段子的方式,把向量数据库到底是什么、为什么能给智能体续命、2026年主流选型、实战落地怎么用讲透,全程无废话,小白也能直接看懂、直接用。

人工智能AI技术 545

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

企业级RAG系统实战(1):向量数据库选型与多路召回

本篇将重点升级企业级RAG系统第一步:向量数据库选型与多路召回。通过通俗易懂的讲解,让你理解为什么需要向量数据库,以及如何通过多路召回提升检索质量。

python1234567_的博客 523

学长带你吃透 AI 时代 “外挂”:向量数据库与 RAG,一文就够

各位同学、技术伙伴们,大家好!今天学长用通俗易懂的方式,带大家搞懂 AI 圈超火的向量数据库和RAG。ChatGPT 火遍全网后,咱们传统数据库为啥不够用了?大模型怎么才能记住私有数据、告别胡说八道?看完这篇,你就能彻底明白。

逸尘谈PM 348

GME多模态向量-Qwen2-VL-2B入门指南:理解Embedding维度、归一化与余弦相似度

本文介绍了如何在星图GPU平台上自动化部署GME多模态向量-Qwen2-VL-2B镜像,实现多模态内容的向量化处理与相似性检索。该镜像能够将文本、图像转换为统一的数字表示,广泛应用于电商商品搜索、媒体库管理和智能问答系统等场景,提升内容匹配效率与准确性。

weixin_35391606的博客 801

美团“问小团”同款架构:C# + ASP.NET Core 搭建本地生活 AI 搜索

先别急着调大模型,咱们得把“物理世界数字化”做到位。set;set;set;} // 经纬度,计算配送/到店距离set;} // 人均消费,精准匹配预算set;} = new();// 标签:["包间", "宠物友好", "拍照出片"]set;} // 实时状态:营业中、休息、已打烊set;} // 综合评分,聚合真实用户评价set;// 关联 Milvus 向量 ID这里的关键是Tags和Status。

人工智能AI技术 724
上一篇: Docker存储方式区别理解
下一篇: docker-compose 命令
爱学习 爱分享
博客等级 码龄9年 184粉丝 88原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值