Embedding 和 Reranker 模型

目录

[1. 理论](#1. 理论)

[1.1 Embedding 模型:文字的「数字身份证」](#1.1 Embedding 模型:文字的「数字身份证」)

[1.2 Reranker 模型:结果的「智能排序员」](#1.2 Reranker 模型:结果的「智能排序员」)

[1.3 Embedding 和 Reranker 的关系](#1.3 Embedding 和 Reranker 的关系)

[2. 部署](#2. 部署)

[2.1 vllm](#2.1 vllm)

[2.2 sglang](#2.2 sglang)


主要是rag用的比较多,先把内容换成向量然后使用排序模型提高召回率

1. 理论

1.1 Embedding 模型:文字的「数字身份证」

作用:把文字(词、句子)转换成计算机能理解的「数字坐标」,就像给每个文字画一张地图上的定位点。

使用场景

  1. 搜索:比如搜「猫」,Embedding 会找到「猫咪」「小猫」甚至「橘猫」等相近词(就像地图上离得近的点)。
  2. 推荐系统:推荐和你看过的电影「类型相似」的影片(比如科幻→科幻,而不是爱情片)。
  3. 聚类分析:把用户评论自动分成「好评」「差评」两类(相近的评论聚在一起)。

比喻

想象你去图书馆找「关于狗的书」,Embedding 就像图书管理员,快速把所有和「狗」相关的书(比如训犬、宠物护理)都搬到你的面前,但顺序可能杂乱。


1.2 Reranker 模型:结果的「智能排序员」

作用:对初步筛选的结果重新排序,把最相关的内容排到最前面。

使用场景

  1. 问答系统:从 100 条答案中,挑出最直接回答「如何做蛋炒饭」的那几条。
  2. 搜索引擎:搜「苹果」,把「水果苹果」排在前面,而不是「苹果手机」(根据上下文调整)。
  3. 推荐系统:在 20 部科幻片中,把评分最高、最近热门的排到推荐列表顶部。

比喻

接着图书馆的例子,Reranker 就像另一个细心的管理员,把搬过来的书按「评分高低」「出版时间」「借阅次数」重新整理,让你第一眼看到最符合需求的书。


1.3 Embedding 和 Reranker 的关系

  1. 分工合作
    • Embedding 先「大海捞针」(快速找到相关结果)。
    • Reranker 再「精益求精」(对结果精细排序)。
  2. 结合使用
    • 比如电商搜索:Embedding 找到所有「运动鞋」,Reranker 按「价格、销量、品牌」排序。
    • 智能客服:Embedding 匹配用户问题到知识库,Reranker 选出最准确的回答。

类比

就像选餐厅:Embedding 帮你找到「附近所有川菜馆」,Reranker 再按「评分、人均价格、距离」排出前 5 名

2. 部署

ollama没什么说的,直接搜索run就可以了

https://ollama.com/search?c=embedding

2.1 vllm

启动示例

bash 复制代码
#Embedding
vllm serve /mnt/Qwen3-Embedding-8B/ \
--tensor-parallel-size 2 \
--pipeline-parallel-size 1 \
--trust-remote-code \
--enable-chunked-prefill \
--host 0.0.0.0
bash 复制代码
#Reranker
vllm serve /mnt/Qwen3-Reranker-0.6B/ --hf_overrides '{"architectures": ["Qwen3ForSequenceClassification"],"classifier_from_token": ["no", "yes"],"is_original_qwen3_reranker": true}'

https://docs.vllm.ai/en/latest/models/supported_models/?h=reranker#cross-encoder-reranker

Benchmark 示例

bash 复制代码
#vllm必须是0.11.0以上版本
vllm bench serve \
  --model /mnt/Qwen3-Embedding-8B/ \
  --backend openai-embeddings \
  --endpoint /v1/embeddings \
  --dataset-name sharegpt \
  --num_prompts 1000 \
  --host 127.0.0.1 --port 8000 \
  --dataset-path /root/ShareGPT_V3_unfiltered_cleaned_split.json

https://docs.vllm.ai/en/latest/benchmarking/cli/?h=reranker#text-embeddings

2.2 sglang

Embedding 支持的模型列表

https://docs.sglang.io/supported_models/embedding_models.html#supported-models

bash 复制代码
python3 -m sglang.launch_server \
  --model-path Qwen/Qwen3-Embedding-4B \
  --is-embedding \
  --host 0.0.0.0 \
  --port 30000

Reranker 支持的模型列表

https://docs.sglang.io/supported_models/rerank_models.html

bash 复制代码
python3 -m sglang.launch_server \
  --model-path BAAI/bge-reranker-v2-m3 \
  --host 0.0.0.0 \
  --disable-radix-cache \
  --chunked-prefill-size -1 \
  --attention-backend triton \
  --is-embedding \
  --port 30000

llm可以参考

vllm https://likaiyuan00.github.io/2025/09/23/vllm/

sglang https://likaiyuan00.github.io/2025/09/23/sglang/

相关推荐
罗西的思考11 分钟前
AI Agent框架探秘:拆解 OpenHands(10)--- Runtime
人工智能·算法·机器学习
冬奇Lab1 小时前
OpenClaw 源码精读(2):Channel & Routing——一条消息如何找到它的 Agent?
人工智能·开源·源码阅读
冬奇Lab1 小时前
一天一个开源项目(第38篇):Claude Code Telegram - 用 Telegram 远程用 Claude Code,随时随地聊项目
人工智能·开源·资讯
格砸2 小时前
从入门到辞职|从ChatGPT到OpenClaw,跟上智能时代的进化
前端·人工智能·后端
可观测性用观测云2 小时前
可观测性 4.0:教系统如何思考
人工智能
sunny8653 小时前
Claude Code 跨会话上下文恢复:从 8 次纠正到 0 次的工程实践
人工智能·开源·github
小笼包包仔3 小时前
OpenClaw 多Agent软件开发最佳实践指南
人工智能
smallyoung3 小时前
AgenticRAG:智能体驱动的检索增强生成
人工智能
_skyming_3 小时前
OpenCode 如何做到结果不做自动质量评估,为什么结果还不错?
人工智能
南山安4 小时前
手写 Cursor 核心原理:从 Node.js 进程到智能 Agent
人工智能·agent·设计