agentscope-ai / agentscope-ai/QwenPaw
[Feature]: 记忆搜索支持专用 Reranker 模型实现两阶段检索
- Lingua principale
- Python
- Stelle
- 34.9k
- Fork
- 3.1k
- Merge medio
- 1g 15h
- PR unite (30g)
- 225
Descrizione
## 背景
QwenPaw 当前的 `memory_search` 仅使用 embedding 模型做**单阶段检索**:
```
用户查询 → embedding 向量化 → Chroma 相似度检索 → 返回 Top-N
```
这种方式在记忆库较小时工作良好,但随着记忆积累,仅靠 embedding 相似度的召回精度会下降。
## 问题
1. **无精排环节**:embedding 粗筛后直接返回,缺少对候选结果的二次精细排序
2. **reME 的 LLM-based rerank 未启用**:reME service 模式有 `enable_llm_rerank`(调用 LLM 文本重排),但 QwenPaw 用的 `remelight` 模式不支持
3. **无法利用本地专用 Reranker**:Ollama 0.30.x 已原生支持 `/v1/rerank` 端点,本地有 `dengcao/Qwen3-Reranker-4B` 等专用模型可用但无法接入
## 提议方案
### 两阶段检索流程
```
用户查询 → embedding 模型向量化 → Chroma 粗筛 Top-20
↓
Reranker 模型精排 → 返回 Top-5
```
### agent.json 配置示例
```json
{
"reme_light_memory_config": {
"reranker_model_config": {
"enabled": true,
"backend": "openai",
"api_key": "ollama",
"base_url": "http://localhost:11434/v1",
"model_name": "dengcao/Qwen3-Reranker-4B",
"top_n": 5,
"candidate_multiplier": 4
}
}
}
```
- `backend`:兼容 OpenAI-compatible 的 `/v1/rerank` 端点(Ollama、vLLM 等均支持)
- `candidate_multiplier`:embedding 阶段取 `top_n * candidate_multiplier` 条候选,再交给 reranker 精排
### 技术要点
- Ollama 的 `/v1/rerank` API 格式:
```bash
POST /v1/rerank
{
"model": "dengcao/Qwen3-Reranker-4B",
"query": "用户查询",
"documents": ["候选文档1", "候选文档2", ...],
"top_n": 5
}
```
- Reranker 模型通常很小(0.6B~4B),显存开销远小于 embedding 模型
- 应与 embedding 模型共用 `OLLAMA_KEEP_ALIVE` 配置
## 收益
- **检索精度提升**:embedding 粗筛 + reranker 精排是业界 RAG 标准实践
- **本地可控**:配合已有的 `qwen3-embedding` + Ollama 生态,完全离线零成本
- **向后兼容**:`enabled: false` 时退化为当前行为,不影响现有用户
## 参考
- reME 已有 LLM-based rerank:`config/service.yaml` 中的 `RerankMemory()` 步骤
- Ollama rerank 端点文档:`/v1/rerank`
- 本地已验证可用模型:`dengcao/Qwen3-Reranker-0.6B` (~400MB)、`dengcao/Qwen3-Reranker-4B` (~2.5GB)
---
**环境信息**
- QwenPaw:Desktop 版(已安装为 Windows 应用)
- Ollama:0.30.11
- Embedding:`qwen3-embedding:latest` (8B, Q4_K_M, 4096 dims)
- 显存:3×GPU(16+12+12 GB)
Guida per i contributori
Apri la guida per i contributori
Valutazione
Questa issue non è ancora stata valutata.