From 74f8eada47b10f469e7fc17f4d9caa8b81c043de Mon Sep 17 00:00:00 2001 From: Aska Date: Sun, 6 Sep 2026 11:19:17 +0800 Subject: [PATCH] =?UTF-8?q?docs(README):=20Embedding=20=E6=8E=A8=E8=8D=90?= =?UTF-8?q?=E6=9B=B4=E6=96=B0=E4=B8=BA=20Qwen3-Embedding-0.6B=EF=BC=88Q8?= =?UTF-8?q?=5F0=20639MB=20=E9=A6=96=E9=80=89=EF=BC=8CModelScope=20?= =?UTF-8?q?=E5=9B=BD=E5=86=85=E5=8F=AF=E4=B8=8B/GGUF=EF=BC=8Cdim=201024=20?= =?UTF-8?q?=E6=B3=A8=E6=84=8F=E6=B8=85=E5=90=91=E9=87=8F=E8=A1=A8=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index 84bb716..e69dbba 100644 --- a/README.md +++ b/README.md @@ -60,31 +60,32 @@ go build -ldflags="-s -w" -trimpath -o cyrene ./cmd/cyrene/ ## Embedding 模型推荐 > 用于长记忆/知识库**语义向量检索**(默认不配 = 内置 n-gram 向量,dim=256,离线但质量一般)。 -> 配了 `EMBEDDING_API_URL/MODEL` 后走**真语义**。维度 = 模型 dim,与向量索引一致的;**切换模型会改维度,需清空旧向量数据**。 +> 配了 `EMBEDDING_API_URL/MODEL` 后走**真语义**。维度 = 模型 dim,与向量索引一致;**切换模型会改维度,需清空旧向量数据**。 | 模型 | dim | 大小 | 推理内存 | 质量 | 建议 | |------|-----|------|---------|------|------| -| **bge-m3** | 1024 | ~2.2GB(fp16) / ~1.2GB(Q4) | ~2–3GB | ★★★★★(跨语言最强) | ⭐ **首选**(内存充足/GPU 时) | -| **bge-small-zh-v1.5** | 512 | ~30–100MB | ~几十MB | ★★★★ | ✅ **资源受限环境推荐**(轻且稳) | +| **Qwen3-Embedding-0.6B** | 1024 | Q8_0 **639MB** / f16 1.2GB | ~0.7–1GB | ★★★★★(多语言、2025 新、MTEB 榜前列) | ⭐ **首选**(ModelScope 国内可下 + GGUF;Q8_0 639MB 契合低内存) | +| **bge-m3** | 1024 | ~2.2GB(fp16) / ~1.2GB(Q4) | ~2–3GB | ★★★★★(跨语言标杆) | 内存 / GPU 充裕时可用 | +| **bge-small-zh-v1.5** | 512 | ~30–100MB | ~几十MB | ★★★★ | 极轻量备选 | | nomic-embed-text | 768 | ~270MB | ~400–600MB | ★★★☆ | 可 | | mxbai-embed-large | 768 | ~350–670MB | ~0.8–1GB | ★★★★ | 可 | -> **说明**:bge-m3 质量最好、跨语言,**推荐内存/GPU 较充足的部署**;**资源受限环境**(低内存 / 无 GPU)建议用轻量的 **bge-small-zh-v1.5**(快、稳,中文/多语言够用)——按部署资源取舍质量与性能。 +> **首选说明**:**Qwen3-Embedding-0.6B**(阿里通义 2025-06 开源,覆盖 100+ 语言,MTEB 多语言榜前列)——**有 GGUF**、**ModelScope(魔搭)国内直连可下**(HuggingFace 在国内已不可访问);`Q8_0` 仅 **639MB**,即使内存紧张(如 ~3GB 可用、无独立显存的 UMA GPU)也能跑,且质量≈f16。比 bge-m3 更新、比 bge-small 强。若内存非常宽裕再考虑 bge-m3。 -`.env` 示例(本地 Ollama): +`.env` 示例(本地 Ollama / llama.cpp): ```bash EMBEDDING_API_URL=http://localhost:11434/v1 -EMBEDDING_MODEL=bge-small-zh-v1.5 +EMBEDDING_MODEL=Qwen3-Embedding-0.6B # EMBEDDING_API_KEY= ``` -**llama.cpp 能替代 Ollama 吗?** —— 能。llama.cpp 的 `llama-server`(服务模式)同样暴露 **OpenAI 兼容 `/v1/embeddings`**,用单二进制 + 一个 GGUF 嵌入模型即可: +**llama.cpp 能替代 Ollama 吗?** —— 能,且更省内存。llama.cpp 的 `llama-server`(服务模式)同样暴露 **OpenAI 兼容 `/v1/embeddings`**,用单二进制 + 一个 GGUF: ```bash -./llama-server -m bge-small-zh-v1.5-Q4.gguf --embedding --port 11434 -# 然后 EMBEDDING_API_URL=http://localhost:11434/v1 照用 +./llama-server -m Qwen3-Embedding-0.6B-Q8_0.gguf --embedding -ngl 99 --port 11434 +# 然后 EMBEDDING_API_URL=http://localhost:11434/v1 照用(dim=1024;切换前清一次向量表) ``` - **Ollama**:模型管理方便(`pull`)、开箱即用,但常驻偏重。 -- **llama.cpp**:单文件更轻(内存更省,适合资源受限 / 单机部署)、可离线自制 GGUF;但模型要自己下/转(无 registry)。 +- **llama.cpp**:单文件更轻(内存更省,适合资源受限 / 单机部署)、可离线自制 GGUF;但模型要自己下/转(无 registry)。注意:**llama.cpp 只认 GGUF**,`model.safetensors` 是 transformers/HF 用的,不能直接喂 llama.cpp。 - 二者对上层代码**等价**(都是 OpenAI 兼容 embedding 端点);资源受限时 llama.cpp 更省内存,追求易用则选 Ollama。 ---