xVITA-Rerank-300M-zhTW-GGUF
云碩科技(xCloudinfo)自研繁體中文重排序模型(cross-encoder reranker)的 GGUF 量化版, 供 llama.cpp 部署使用。RAG 檢索第二段:嵌入模型撈出候選段落,本模型逐一細讀 (查詢, 段落)配對重新打分,把真正相關的段落拉到第一名。
搭配的嵌入模型:xVITA-Embed-300M-zhTW-GGUF。 完整精度權重(safetensors)為私有發行,如有微調或研究合作需求請聯繫云碩科技。
檔案
| 檔案 | 大小 | 說明 |
|---|---|---|
xVITA-Rerank-300M-zhTW-f16.gguf |
593 MB | 完整精度,與原版排序完全一致 |
xVITA-Rerank-300M-zhTW-Q8_0.gguf |
318 MB | 推薦。排序品質與 f16 相同 |
xVITA-Rerank-300M-zhTW-Q4_K_M.gguf |
230 MB | 最省資源;排序保持但分數校準有偏移(見下) |
量化驗證(誠實揭露)
每一階量化都與原版 safetensors 用同一組測試(20 題 × 6 候選含干擾洗牌)比對過:
| 版本 | 正解排名一致 | 分數校準偏差(sigmoid 後最大) |
|---|---|---|
| f16 | 20/20(完整排序也 20/20) | 0.026 |
| Q8_0 | 20/20 | 0.106 |
| Q4_K_M | 20/20 | 0.672 |
三版的正解排名全部保持;排序差異僅發生在分數趨近零的干擾項互換位置。 Q4_K_M 的絕對分數不可靠(校準偏移大),只可用於取排序, 不要拿它的分數當過濾閾值;需要分數閾值請用 Q8_0 或 f16。
使用方式(llama.cpp)
llama-server -m xVITA-Rerank-300M-zhTW-Q8_0.gguf \
--rerank --pooling rank --ctx-size 2048 --port 8100
curl http://localhost:8100/v1/rerank -H "Content-Type: application/json" -d '{
"query": "依據海商法,船舶的定義範圍為何?",
"documents": [
"勞動基準法第三十條規定勞工每日正常工作時間不得超過八小時。",
"海商法第一條:本法稱船舶者,謂在海上航行,或在與海相通之水面或水中航行之船舶。"
],
"top_n": 2
}'
回傳的 relevance_score 為原始 logit;需要 0~1 機率請自行套 sigmoid。
llama.cpp 版本需求
本模型的底座 mmBERT 沿用 Gemma-2 的 256k SentencePiece 詞表。轉檔時已內嵌 SentencePiece 詞表資訊,2026-08 之後的 llama.cpp 版本可直接載入;若載入後 中文被逐字切分(一句話切出 3 倍以上的 token 數),代表你的 llama.cpp 版本過舊,請更新。
模型背景
| 項目 | 內容 |
|---|---|
| 底座 | jhu-clsp/mmBERT-base(Johns Hopkins,MIT,ModernBERT 架構,8192 ctx) |
| 訓練資料 | 云碩自有繁中語料(醫療/台灣通識與法規/海事)三線合併去重 252,849 對,抽樣 60,000 對訓練 |
| 困難負例 | 由 xVITA-Embed-300M-zhTW 從檢索 top-2~60 挖掘,每題 7 個 |
| 評測(三領域,各 500 題、池約 3 萬段落) | 通識 hit@1 79.2→95.0%;醫療 38.0→81.8%;海事 77.8→99.4% |
上表三個領域的數字取自各自的驗證集;跨批次的絕對分數不可直接互相比較(每次評測會抽出自己的驗證集),同一次評測內的「檢索器 vs 加上重排序」對照才有意義。
泛化評測(換領域、換文體)
上表量的是訓練過的三個領域,只能證明模型在看過的東西上有效。我們另外量了它在完全沒有 訓練過的語料上還剩多少效果,方法與上表一致:同一顆重排序模型、同一顆檢索器 (xVITA-Embed-300M-zhTW),各 500 題,比較「只有檢索器」與「檢索器加上重排序」 在同一組查詢上的差異。
| 評測集 | 檢索器 hit@1 | 加上重排序 hit@1 | nDCG@10 提升 |
|---|---|---|---|
| 訓練領域(醫療/通識/海事) | — | 93.3% | +0.2245 |
| 未訓練領域・書面(政府公開文件,檢索池 5,132 段) | 61.8% | 87.2% | +0.1371 |
| 未訓練文體・口語(會議逐字稿,檢索池 4,053 段) | 20.8% | 18.8% | +0.0799 |
換領域可用。 完全沒有看過的政府公開文件,hit@1 由 61.8% 提升到 87.2%, nDCG 提升仍保有訓練領域的六成。
換文體會弱化。 口語逐字稿上的提升只剩三成六。有兩點必須說清楚,否則這張表會被誤讀:
- 口語那一列 hit@1 的 −2.0 個百分點不構成退步。500 題、比例約 0.2 時, 單一比例的標準誤就有 1.8 個百分點,此差距不到一個標準差。該列真正站得住的是 hit@5(35.6% → 43.8%)與 nDCG 提升。
- 該列的檢索器本身也由 61.8% 掉到 20.8%。重排序只能在檢索器取回的候選內重新排序, 候選裡沒有正解就無從補救;因此這個 +0.0799 有多少來自重排序能力不足、 多少來自候選池本身不完整,以現有語料無法分離。
建議用途:書面文件的 RAG,例如法規、公文、技術文件、專業領域知識庫。 若您的查詢或語料屬於會議逐字稿、客服對話等口語文體,請以本節的方法在自己的資料上 先量一次再決定,不要直接套用上表數字。
量測條件:epochs=0 純評測,不更新權重;檢索器與線上部署為同一顆並套用相同檢索前綴;
訓練與驗證以段落(而非配對)切分,避免同一段落的多個問題跨集洩漏;
每輪先跑「段落對自己」的哨兵檢查,兩組均為 100%。
授權
MIT,與底座 mmBERT-base 一致。