from transformers import AutoModelForSequenceClassification | |
import torch | |
model_name = "OpenBMB/MiniCPM-Reranker-Light" | |
model = AutoModelForSequenceClassification.from_pretrained(model_name, trust_remote_code=True, torch_dtype=torch.float16).to("cuda") | |
# You can use flash-attention 2 to speed up the inference | |
# model = AutoModelForSequenceClassification.from_pretrained(model_name, trust_remote_code=True, torch_dtype=torch.float16, attn_implementation="flash_attention_2").to("cuda") | |
model.eval() | |
query = "中国的首都是哪里?" # "Where is the capital of China?" | |
passages = ["beijing", "shanghai"] # 北京,上海 | |
rerank_score = model.rerank(query, passages,query_instruction="Query:", batch_size=32, max_length=1024) | |
print(rerank_score) #[0.01791382 0.00024533] | |
sentence_pairs = [[f"Query: {query}", doc] for doc in passages] | |
scores = model.compute_score(sentence_pairs, batch_size=32, max_length=1024) | |
print(scores) #[0.01791382 0.00024533] |