metadata
license: mit
language:
- en
- zh
tags:
- mteb
- text-embeddings-inference
- llama-cpp
- gguf-my-repo
pipeline_tag: text-classification
library_name: sentence-transformers
base_model: BAAI/bge-reranker-base
model-index:
- name: bge-reranker-base
results:
- task:
type: Reranking
dataset:
name: MTEB CMedQAv1
type: C-MTEB/CMedQAv1-reranking
config: default
split: test
revision: None
metrics:
- type: map
value: 81.27206722525007
- type: mrr
value: 84.14238095238095
- task:
type: Reranking
dataset:
name: MTEB CMedQAv2
type: C-MTEB/CMedQAv2-reranking
config: default
split: test
revision: None
metrics:
- type: map
value: 84.10369934291236
- type: mrr
value: 86.79376984126984
- task:
type: Reranking
dataset:
name: MTEB MMarcoReranking
type: C-MTEB/Mmarco-reranking
config: default
split: dev
revision: None
metrics:
- type: map
value: 35.4600511272538
- type: mrr
value: 34.60238095238095
- task:
type: Reranking
dataset:
name: MTEB T2Reranking
type: C-MTEB/T2Reranking
config: default
split: dev
revision: None
metrics:
- type: map
value: 67.27728847727172
- type: mrr
value: 77.1315192743764
turingevo/bge-reranker-base-Q4_K_M-GGUF
This model was converted to GGUF format from BAAI/bge-reranker-base
using llama.cpp via the ggml.ai's GGUF-my-repo space.
Refer to the original model card for more details on the model.
AI学习交流qq群 | 873673497 |
官网 | turingevo.com |
邮箱 | [email protected] |
github | https://github.com/turingevo |
huggingface | https://huggingface.co/turingevo |
Use with llama.cpp
Invoke the llama.cpp server
Server:
#!/bin/bash
## see if port 8000 in use:
# sudo netstat -lnp |grep 8000
prefix=/media/wmx/soft2/huggingface_cache/BAAI/bge-reranker-base
model_path=$prefix/bge-reranker-base-q4_k_m.gguf
llama_prefix=/media/wmx/ws1/workspace/ai/llama.cpp/bin/cuda/
llama_path=$llama_prefix/bin/llama-server
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:${llama_prefix}/lib
$llama_path --rerank -m $model_path --host 0.0.0.0 --port 8000
api_cliet.py
import requests
# 配置参数
ENDPOINT = "http://0.0.0.0:8000/reranking"
MODEL_NAME = "bge-reranker-base" # 替换为实际使用的重排序模型
# 多组测试用例定义
TEST_CASES = [
{
"query": "人工智能应用",
"documents": [
"机器学习在医疗诊断中的应用",
"深度学习在自动驾驶中的最新进展",
"自然语言处理技术发展史",
"人工智能伦理问题探讨"
]
},
{
"query": "量子计算的最新突破",
"documents": [
"量子计算在密码学中的应用",
"超导量子比特的稳定性研究",
"经典计算机与量子计算机对比分析",
"量子纠缠现象的实验验证"
]
},
{
"query": "糖尿病治疗的新方法",
"documents": [
"胰岛素泵治疗糖尿病的优势",
"干细胞疗法在糖尿病治疗中的潜力",
"糖尿病患者的饮食管理指南",
"新型口服降糖药物的临床试验结果"
]
}
]
def rerank_documents(query, documents):
"""调用 server 重排序接口"""
payload = {
"model": MODEL_NAME,
"query": query,
"documents": documents
}
try:
response = requests.post(ENDPOINT, json=payload)
response.raise_for_status() # 检查HTTP错误
return response.json()
except requests.exceptions.RequestException as e:
print(f"API请求失败: {e}")
return None
# 执行所有测试用例
for i, case in enumerate(TEST_CASES, start=1):
print(f"\n=== 测试用例 #{i} ===")
print(f"查询: {case['query']}")
result = rerank_documents(case["query"], case["documents"])
if result:
print("重排序结果(按相关性降序):")
# ✅ 在这里添加排序逻辑
sorted_results = sorted(result["results"], key=lambda x: x["relevance_score"], reverse=True)
for doc in sorted_results:
print(f"文档 {doc['index']+1}: 得分={doc['relevance_score']:.4f}, 内容={case['documents'][doc['index']]}")
else:
print("未获取到有效结果")
output :
=== 测试用例 #1 ===
查询: 人工智能应用
重排序结果(按相关性降序):
文档 1: 得分=0.5315, 内容=机器学习在医疗诊断中的应用
文档 4: 得分=0.2609, 内容=人工智能伦理问题探讨
文档 2: 得分=-2.3431, 内容=深度学习在自动驾驶中的最新进展
文档 3: 得分=-3.8849, 内容=自然语言处理技术发展史
=== 测试用例 #2 ===
查询: 量子计算的最新突破
重排序结果(按相关性降序):
文档 1: 得分=-0.7904, 内容=量子计算在密码学中的应用
文档 3: 得分=-0.8329, 内容=经典计算机与量子计算机对比分析
文档 4: 得分=-1.4564, 内容=量子纠缠现象的实验验证
文档 2: 得分=-3.1111, 内容=超导量子比特的稳定性研究
=== 测试用例 #3 ===
查询: 糖尿病治疗的新方法
重排序结果(按相关性降序):
文档 2: 得分=2.1797, 内容=干细胞疗法在糖尿病治疗中的潜力
文档 4: 得分=-0.1641, 内容=新型口服降糖药物的临床试验结果
文档 1: 得分=-0.3959, 内容=胰岛素泵治疗糖尿病的优势
文档 3: 得分=-0.5034, 内容=糖尿病患者的饮食管理指南