本地无Gpu环境部署bge-reranker模型实现rerank

196 阅读1分钟

下载模型至本地

下载bge的rerank模型huggingface.co/BAAI/bge-re…

注意需要FQ

上代码

class SingletonFlagReranker:
    def __init__(self, model_path, use_fp16):
        self.reranker = FlagReranker(model_path, use_fp16=use_fp16)

    def compute_score(self, pairs, normalize):
        return self.reranker.compute_score(pairs, normalize=normalize)
reranker = SingletonFlagReranker('E:\model\bge-reranker-base', use_fp16=True) # 模型下载的地址

def rerank(question, documents):
    # 构建 [question, document_text] 对
    pairs = [[question, doc] for doc in documents]
    # 计算得分
    scores = reranker.compute_score(pairs, normalize=True)
    # 将文档文本与得分组合
    documents_with_scores = [{'document': doc, 'score': score} for doc, score in zip(documents, scores)]
    return documents_with_scores
topic_tags = [] #文本数组
query_text = "伤病"
a = rerank(query_text,topic_tags)
# 使用 sorted() 函数按 score 字段降序排序
sorted_a = sorted(a, key=lambda x: x['score'], reverse=True)

就可以了