PyMilvus集成Embedding模型实战指南
Milvus向量数据库的PythonSDKPyMilvus近期更新,集成了Embedding与重排模型。开发者可直接调用稠密或稀疏向量模型进行数据向量化,并利用重排模型优化搜索结果,显著简化了检索增强生成等AI应用的开发流程。更新支持在轻量版MilvusLite中运行,提升了开发效率。
在人工智能与数据处理领域,高效处理非结构化数据始终是一项核心挑战。Milvus 作为专为 AI 应用打造的开源向量数据库,为机器学习、深度学习等项目提供了成熟的大规模向量检索方案,深受广大 AI 开发者青睐。它能够轻松管理文本、图像、音视频等数据转化而来的向量,是构建智能应用必不可少的基础设施。

近期,Milvus 的 Python SDK——PyMilvus 迎来一次重要更新:其新集成的模型模块现已支持直接调用 Embedding 模型与重排(Reranker)模型。这意味着开发者无需在多个工具间来回切换,便能在 Milvus 内部轻松完成数据向量化及搜索结果优化。对于构建检索增强生成(RAG)这类应用而言,整个流程被极大简化,变得更加高效便捷。
接下来,我们先快速回顾一下稠密向量和稀疏向量这两种主流的 Embedding 模型,以及 Reranker 的核心作用,然后通过实际示例,看看如何在轻量版 Milvus——Milvus Lite 中直接运行这些模型。
01. 稠密向量 vs 稀疏向量
在深入实操之前,有必要先厘清 Embedding 向量的两大基本类型。理解它们的特性,将帮助你根据具体场景选择最合适的模型。
- 稠密向量:这种向量的维度通常很高,但绝大多数维度上的值都不为零。它擅长捕捉和表征文本的深层语义信息,非常适合进行语义相似性搜索。
- 稀疏向量:同样拥有高维度,然而绝大部分维度的值都为零。它的优势在于精准的关键词匹配与检索,尤其在处理领域专有名词或新词(域外知识)时表现尤为突出。
Milvus 的强大之处在于同时原生支持这两种向量,并提供了混合搜索能力。用户可以在同一个 Collection 中定义多个不同类型的向量字段,在一次查询中同时利用语义和关键词信息。简单来说,用不同模型或方法处理同一份数据,可以得到代表不同特征的向量,而 Milvus 能让它们协同工作,发挥出 1+1>2 的效果。
02. 如何在 Milvus 中使用 Embedding 和 Reranker 模型
理论清晰之后,我们通过三个具体示例,看看如何实际调用这些集成的模型来生成向量并执行搜索。
示例 1: 使用默认 Embedding function 生成稠密向量
要使用这些新功能,首先需要在安装 pymilvus 时带上模型包:
pip install 'pymilvus[model]'
这个命令会同时安装 Milvus Lite。没错,这个轻量版本现在也完整包含了模型包。模型包里预置了多种主流模型,包括 OpenAI 的模型、Sentence Transformers、BGE-M3、以及 BM25、SPLADE 等稀疏模型,还有 Jina AI 的预训练模型。
第一个示例,我们使用默认的 Embedding 函数和轻量级的 Sentence Transformer 模型 all-MiniLM-L6-v2。这个模型大小约 70MB,会在第一次使用时自动下载,非常便捷。
from pymilvus import model
# 这将下载“all-MiniLM-L6-v2”模型
ef = model.DefaultEmbeddingFunction()
# 待转换为向量的文本数据
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.”,
]
embeddings = ef.encode_documents(docs)
print(“Embeddings:”, embeddings)
# 打印向量的维度和形状
print(“Dim:”, ef.dim, embeddings[0].shape)
运行后,你会得到类似下面的输出,可以看到生成的稠密向量维度为 384:
Embeddings: [array([-3.09392996e-02, -1.80662833e-02, 1.34775648e-02, ... , 9.04406682e-02, -5.36676683e-02], dtype=float32)] Dim: 384 (384,)
示例 2: 使用 BM25 模型生成稀疏向量
BM25 是一种经典的关键词评分算法,它通过统计词频来判断查询与文档的相关性,特别适合需要精确关键词匹配的场景。下面展示如何用 BM25EmbeddingFunction 为文档和查询生成稀疏向量。
使用 BM25 时,一个关键步骤是计算文档集合的逆文档频率(IDF),这代表了词语在语料库中的普遍程度。
from pymilvus.model.sparse import BM25EmbeddingFunction
# 1. 准备一个小的文档库
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.”,
]
query = “Where was Turing born?”
bm25_ef = BM25EmbeddingFunction()
# 2. 拟合文档库,获取BM25模型参数
bm25_ef.fit(docs)
# 3. 保存拟合的参数,方便后续快速加载使用
bm25_ef.sa ve(“bm25_params.json”)
# 4. 加载已保存的参数
new_bm25_ef = BM25EmbeddingFunction()
new_bm25_ef.load(“bm25_params.json”)
docs_embeddings = new_bm25_ef.encode_documents(docs)
query_embeddings = new_bm25_ef.encode_queries([query])
print(“Dim:”, new_bm25_ef.dim, list(docs_embeddings)[0].shape)
示例 3: 使用 Reranker 优化搜索结果
搜索系统首先追求的是速度,需要快速返回一批可能相关的结果。传统方法会用 BM25 进行关键词重排,而现在更常见的做法是直接按 Embedding 的余弦相似度排序。但这两种方法都有局限:前者可能忽略语义,后者则可能无法精准捕捉查询与文档间的细微意图关联。
因此,专业级的搜索系统往往会引入 Reranker(重排模型)。这种高级 AI 模型能够对初步的搜索结果进行“再审”,深度评估文档与查询意图之间的匹配度,而不仅仅是表面词的相似性。它能显著提升最终排序结果的质量,让最相关的结果优先呈现。
下面以 Jina AI 的 Reranker 为例:
from pymilvus.model.reranker import JinaRerankFunction
jina_api_key = “”
rf = JinaRerankFunction(“jina-reranker-v1-base-en”, jina_api_key)
query = “What event in 1956 marked the official birth of artificial intelligence as a discipline?”
documents = [
“In 1950, Alan Turing published his seminal paper, ‘Computing Machinery and Intelligence,’ proposing the Turing Test...",
“The Dartmouth Conference in 1956 is considered the birthplace of artificial intelligence as a field...",
“In 1951, British mathematician and computer scientist Alan Turing also developed the first program designed to play chess...",
“The invention of the Logic Theorist by Allen Newell, Herbert A. Simon, and Cliff Shaw in 1955 marked the creation...”
]
results = rf(query, documents)
for result in results:
print(f“Index: {result.index}”)
print(f“Score: {result.score:.6f}”)
print(f“Text: {result.text}n”)
从输出可以清晰地看到,Reranker 成功地将最相关的结果(关于 1956 年达特茅斯会议)排在了首位,并且给出了很高的相关性分数:
Index: 1 Score: 0.937096 Text: The Dartmouth Conference in 1956 is considered the birthplace of artificial intelligence as a field; here, John McCarthy and others coined the term ‘artificial intelligence’ and laid out its basic goals. Index: 3 Score: 0.354210 Text: The invention of the Logic Theorist by Allen Newell, Herbert A. Simon, and Cliff Shaw in 1955 marked the creation of the first true AI program... Index: 0 Score: 0.349866 Text: In 1950, Alan Turing published his seminal paper, ‘Computing Machinery and Intelligence,’... Index: 2 Score: 0.272896 Text: In 1951, British mathematician and computer scientist Alan Turing also developed the first program designed to play chess...
通过这三个示例不难发现,PyMilvus 将模型集成到数据库 SDK 中的做法,确实让 AI 应用的开发链路更加顺畅。开发者可以专注于业务逻辑本身,而无需在数据预处理、模型调用和向量存储之间反复调试对接。这无疑是提升开发效率的关键一步,也为构建更智能的 RAG 应用提供了坚实底座。
你是一名 AI 行业编辑,请围绕下面这条热点输出一份资讯解读:
热点:PyMilvus集成Embedding模型实战指南要求:
1. 先用一句话解释这条热点在讲什么
2. 再总结它为什么重要
3. 说明会影响哪些 AI 产品或内容方向
4. 最后给出 3 个适合资讯站使用的标题
游乐网为非赢利性网站,所展示的游戏/软件/文章内容均来自于互联网或第三方用户上传分享,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系youleyoucom@outlook.com。
相关热点TP-LINK深圳总部要求全体员工将劳动合同转签至注册资金仅3000万元的全资子公司思码逻辑,因保障缩水风险引发员工强烈抵制。内部投票显示近九成参与员工拒绝签字。与此同时,部分员工社保状态异常,面临断缴风险,叠加此前超140人的裁员以及企业主体迁出等变动,导致内部人心动荡。这家曾占据全球路由器市场4
本田中国5月销量数据出炉,单月总交付量仅为28279辆,同比大幅下滑48 7%,销量近乎腰斩。与2020年前后的市场巅峰期相比,如今整体体量仅剩约两成。这已是本田中国连续第27个月同比下滑,跌幅仍在加深。颓势根源在于电动化战略预判失误,产品梯队崩塌,新能源车型销量惨淡,同时双合资体系内耗严重,部分工
台积电CEO近日在股东会上谈及芯片涨价策略,明确表示不会效仿存储芯片厂商短期价格暴涨数倍的做法,强调公司注重长期稳健经营。然而,供应链消息显示,台积电已计划于2026年下半年上调3纳米制程报价最高15%,2027年可能进一步上涨。CEO指出,AI应用正转向“代理式行动模式”,算力需求激增,全球芯片供
近日,方程豹品牌旗下全新硬派SUV车型“钛9”的路试谍照曝光。新车采用经典的“方盒子”造型,线条平直硬朗,车身立柱垂直,分体式灯组和贯穿式日行灯设计颇具辨识度。侧面配备大轮毂和高离地间隙,车门带有固定踏板,车尾预留外挂备胎位置,整体风格硬派。动力方面,预计将搭载2 0T发动机加双电机的混动系统,综合
- 日榜
- 周榜
- 月榜
热点快看
