大语言模型学习--向量数据库Milvus实践

Milvus是目前比较流行的开源向量数据库,其官网地址

Milvus 是什么? | Milvus 文档

1.Milvus简介

Milvus 是一种高性能、高扩展性的向量数据库。Milvus 提供强大的数据建模功能,能够将非结构化或多模式数据组织成结构化的 Collections。它支持多种数据类型,适用于不同的属性模型,包括常见的数字和字符类型、各种向量类型、数组、集合和 JSON。

Milvus 提供三种部署模式

  • Milvus Lite 是一个 Python 库,可以轻松集成到您的应用程序中。作为 Milvus 的轻量级版本,它非常适合在 Jupyter Notebooks 中进行快速原型开发,或在资源有限的边缘设备上运行。
  • Milvus Standalone 是单机服务器部署,所有组件都捆绑在一个 Docker 镜像中,方便部署。
  • Milvus Distributed 可部署在 Kubernetes 集群上,采用云原生架构,专为十亿规模甚至更大的场景而设计。该架构可确保关键组件的冗余。

Milvus 的云原生和高度解耦的系统架构

2.Milvus实践

推荐一个在线python运行环境(再也不用本地windows安装linux虚拟机了)

玻尔 | 全球科学家的 AI for Science 空间站

下面使用Milvus Lite本地实践一下,Milvus Lite,它是pymilvus 中包含的一个 python 库,可以嵌入到客户端应用程序中。

安装Milvus

复制代码
pip install -U pymilvus

设置向量数据库

复制代码
from pymilvus import MilvusClient
client = MilvusClient("milvus_demo.db")

创建Collections

复制代码
if client.has_collection(collection_name="demo_collection"):
    client.drop_collection(collection_name="demo_collection")
client.create_collection(
    collection_name="demo_collection",
    dimension=768,  # The vectors we will use in this demo has 768 dimensions
)

用向量表示文本

复制代码
import random

docs = [
    "Artificial intelligence was founded as an academic discipline in 1956.",
    "Alan Turing was the first person to conduct substantial research in AI.",
    "Born in Maida Vale, London, Turing was raised in southern England.",
]
vectors = [[random.uniform(-1, 1) for _ in range(768)] for _ in docs]
data = [
    {"id": i, "vector": vectors[i], "text": docs[i], "subject": "history"}
    for i in range(len(vectors))
]

print("Data has", len(data), "entities, each with fields: ", data[0].keys())
print("Vector dim:", len(data[0]["vector"]))

插入数据

复制代码
res = client.insert(collection_name="demo_collection", data=data)

print(res)

向量搜索

复制代码
# query_vectors = embedding_fn.encode_queries(["Who is Alan Turing?"])
# If you don't have the embedding function you can use a fake vector to finish the demo:
query_vectors = [ [ random.uniform(-1, 1) for _ in range(768) ] ]
res = client.search(
    collection_name="demo_collection",  # target collection
    data=query_vectors,  # query vectors
    limit=2,  # number of returned entities
    output_fields=["text", "subject"],  # specifies fields to be returned
)
print(res)

其他一些操作可以参考官网文档

管理数据库 | Milvus 文档

相关推荐
寻道模式1 小时前
【开发心得】大模型背后的“隐形毒药”
大模型·标签·数据·注入·投毒
北京地铁1号线1 小时前
为大模型创建一个简单的skill:在12306网站查询车次(仅作查询,不提供购票功能,仅作学习使用)
自然语言处理·大模型·agent·技能·skill
前沿在线3 小时前
破解 AI 推理效率困局,详解华为 OceanStor M900 AI记忆存储新基建
人工智能·ai·大模型
MicrosoftReactor4 小时前
技术速递|从 Jev 到你的笔记本电脑:使用 Mobius 在 ONNX 中构建“System One”决策模型
人工智能·ai·大模型·onnx
七牛云行业应用5 小时前
Dots 完整教程:从安装入口、跑第一个任务到给 Codex 派活(2026 年 10 月)
人工智能·大模型·agent
小易老师AI实战18 小时前
RLHF深度详解(超通俗+原理+工程+对比):大模型对齐的核心基石
人工智能·大模型·sft·rlhf·ppo·人类反馈强化学习·llm 对齐
蟕初的梦想1 天前
Claude Haiku 5.5 效能实测与场景应用指南
数据库·人工智能·大模型
论文复现现场1 天前
金融大模型微调需要几张 RTX 4090?QLoRA 配置、工期估算与断点续训
大数据·金融·大模型·分布式训练·模型微调·qlora·rtx4090
VIP_CQCRE1 天前
Visual Studio 接入 AI 助手:LMLocal × Ace Data Cloud 配置指南
大模型·api·ai编程·visual studio·acedatacloud