优班图搭建网站,网页界面设计中一般使用的分辨率的显示密度是多少dpi,咸阳网,网站设计公司收费标准最近#xff0c;检索增强生成#xff08;RAG#xff09;技术在AI界引起了广泛关注。作为一种将知识库与生成模型结合的新型架构#xff0c;RAG大大提升了AI应用的实际表现。而在构建RAG系统时#xff0c;Milvus作为业界领先的开源向量数据库#xff0c;扮演着关键角色。本… 最近检索增强生成RAG技术在AI界引起了广泛关注。作为一种将知识库与生成模型结合的新型架构RAG大大提升了AI应用的实际表现。而在构建RAG系统时Milvus作为业界领先的开源向量数据库扮演着关键角色。本文将通过在Dify平台上使用Milvus带领大家构建一个高效的RAG系统探索向量数据库的实际应用场景。 01. Milvus基本原理介绍 1.1 为什么要用向量数据库 在AI应用场景下比如图像识别、自然语言处理等数据往往是非结构化的。传统的关系型数据库很难处理这些高维度的非结构化数据。因此向量数据库应运而生专门设计用于存储和管理这种数据并可以实现高效的相似度检索。 向量数据库通过将复杂的数据如图片、文本转化为向量的形式进行存储每个向量代表数据中的不同特征方便快速检索相似内容。比如在推荐系统中可以通过用户行为向量检索出相似用户的行为进行个性化推荐。 1.2 为什么要用Milvus Milvus 是目前领先的开源向量数据库之一设计之初就针对大规模非结构化数据的存储与检索进行了优化。它具备如下优势 高性能Milvus基于诸如FAISS、Annoy和HNSW等先进的向量搜索库能够处理亿级甚至更大规模的向量数据适合需要高效检索的应用场景。 可扩展性Milvus采用了存储和计算分离的架构支持水平扩展能够灵活适应从小型应用到大型分布式系统的需求。 广泛的应用场景Milvus可以应用于各种AI场景如图像、视频检索文本检索推荐系统等具有广泛的行业适用性 通过使用Milvus我们能够大大提升在大规模向量检索场景下的处理效率从而让AI应用变得更加智能、高效。 1.3 Milvus架构概述 Milvus 建立在流行的矢量搜索库包括 Faiss、HNSW、DiskANN、SCANN 等之上旨在对包含数百万、数十亿甚至数万亿矢量的密集矢量数据集进行相似性搜索。 Milvus 采用共享存储架构存储和计算分离计算节点可水平扩展。Milvus 遵循数据平面和控制平面分解的原则包括接入层、协调器服务、工作节点和存储。在扩展或灾难恢复方面这些层是相互独立的。 1.4 Milvus 的应用场景 Milvus 的应用场景非常广泛包括但不限于 图像和视频检索。我们可以使用 Milvus 存储图像和视频的向量数据然后使用这些向量数据进行检索。 文本检索。我们可以使用 Milvus 存储文本的向量数据然后使用这些向量数据进行检索。 推荐系统。我们可以使用 Milvus 存储用户和物品的向量数据然后使用这些向量数据进行推荐。 自然语言处理。我们可以使用 Milvus 存储文本的向量数据然后使用这些向量数据进行自然语言处理。 02. Dify 平台的介绍 Dify 是一款开源的大语言模型(LLM) 应用开发平台。它融合了后端即服务Backend as Service和 LLMOps 的理念使开发者可以快速搭建生产级的生成式 AI 应用。即使你是非技术人员也能参与到 AI 应用的定义和数据运营过程中。 03. Milvus 与 Dify 平台的部署实践 在部署过程中我发现Milvus提供了三种部署模式分别适合不同的使用场景。接下来我会分别介绍这三种模式并通过简单的示范带你快速上手。 模式一Milvus Lite 是一个可以轻松集成到您的应用程序中的 Python 库。作为 Milvus 的轻量级版本它非常适合在 Jupyter Notebook 中快速原型设计或在资源有限的边缘设备上运行。 3.1.1 设置 Milvus Lite pip install -U pymilvus 3.1.2 连接Miluvs Lite 在pymilvus中指定本地文件名作为 MilvusClient 的 uri 参数将使用 Milvus Lite。 运行下面代码后将在当前文件夹中生成一个名为milvus_demo.db的数据库文件。 from pymilvus import MilvusClient
client MilvusClient(./milvus_demo.db) 模式二Milvus Standalone 3.2.1 首先我们需要获取Milvus的部署文件只需在终端运行以下命令 wget https://github.com/milvus-io/milvus/releases/download/v2.4.5/milvus-standalone-docker-compose.yml -O docker-compose.yml 3.2.2 然后执行以下命令Milvus就可以启动啦 sudo docker compose up -d 3.2.3 等一会儿就会看到Milvus已经在后台运行 docker ps -a 模式三Milvus Distributed 如果你的需求是处理大规模数据比如亿级别的向量检索那么Milvus Distributed正是为你量身定制。它可以部署在Kubernetes集群中适合云原生架构的大规模场景。 简单部署示范 1.配置好Kubernetes集群。 2.使用Helm或Operator进行Milvus的分布式部署。 Milvus在Dify上的实战 说明请确保系统已安装docker和docker-compose 将dify项目Clone到本地 git clone https://github.com/langgenius/dify.git 拷贝env并修改指定使用Milvus cp .env.example .env 执行docker-compose启动dify docker-compose -f docker-compose.yaml up -d 访问dify平台并登录 使用Milvus构建RAG 说明部署前已准备好模型此文档中对如何部署本地模型不做赘述 准备数据集创建知识库上传测试文档 验证向量检索是否成功 可以看到dify日志里显示是成功的 Milvus数据库中也有数据了 尝试验证RAG效果 04. 未来展望 想象一下未来我们可以用Milvus处理数以亿计的图像或文本并在几秒内完成检索。而且Milvus不断进化未来的版本可能在数据安全性、可视化、性能扩展等方面做得更加出色。 作者介绍 Milvus 北辰使者尹珉 推荐阅读