turingevo's picture
Update README.md
c64f08c verified
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, 内容=糖尿病患者的饮食管理指南