Spaces:
Sleeping
Sleeping
minor change
Browse files- reranker.py +14 -3
reranker.py
CHANGED
|
@@ -14,7 +14,14 @@ class Reranker:
|
|
| 14 |
return output
|
| 15 |
|
| 16 |
def process_inputs(self,pairs):
|
| 17 |
-
prefix =
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 18 |
suffix = "<|im_end|>\n<|im_start|>assistant\n<think>\n\n</think>\n\n"
|
| 19 |
prefix_tokens = self.tokenizer.encode(prefix, add_special_tokens=False)
|
| 20 |
suffix_tokens = self.tokenizer.encode(suffix, add_special_tokens=False)
|
|
@@ -35,7 +42,7 @@ class Reranker:
|
|
| 35 |
token_false_id = self.tokenizer.convert_tokens_to_ids("no")
|
| 36 |
token_true_id = self.tokenizer.convert_tokens_to_ids("yes")
|
| 37 |
|
| 38 |
-
task = '
|
| 39 |
pairs = [self.format_instruction(task, query, doc) for query, doc in zip(queries, documents)]
|
| 40 |
inputs = self.process_inputs(pairs)
|
| 41 |
|
|
@@ -46,4 +53,8 @@ class Reranker:
|
|
| 46 |
batch_scores = torch.nn.functional.log_softmax(batch_scores, dim=1)
|
| 47 |
scores = batch_scores[:, 1].exp().tolist()
|
| 48 |
|
| 49 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 14 |
return output
|
| 15 |
|
| 16 |
def process_inputs(self,pairs):
|
| 17 |
+
prefix = (
|
| 18 |
+
"<|im_start|>system\n"
|
| 19 |
+
"Procijeni da li dati Dokument adekvatno odgovara na Upit na osnovu pravne instrukcije. "
|
| 20 |
+
"Dokument treba da bude relevantan, tačan i u skladu sa važećim pravnim propisima i standardima. "
|
| 21 |
+
"Odgovor mora biti striktno \"da\" ako ispunjava uslove, ili \"ne\" ako ne ispunjava.\n"
|
| 22 |
+
"<|im_end|>\n"
|
| 23 |
+
"<|im_start|>user\n"
|
| 24 |
+
)
|
| 25 |
suffix = "<|im_end|>\n<|im_start|>assistant\n<think>\n\n</think>\n\n"
|
| 26 |
prefix_tokens = self.tokenizer.encode(prefix, add_special_tokens=False)
|
| 27 |
suffix_tokens = self.tokenizer.encode(suffix, add_special_tokens=False)
|
|
|
|
| 42 |
token_false_id = self.tokenizer.convert_tokens_to_ids("no")
|
| 43 |
token_true_id = self.tokenizer.convert_tokens_to_ids("yes")
|
| 44 |
|
| 45 |
+
task = 'Na osnovu datog upita, vrati najrelevantije rezultate koje odgovaraju upitu'
|
| 46 |
pairs = [self.format_instruction(task, query, doc) for query, doc in zip(queries, documents)]
|
| 47 |
inputs = self.process_inputs(pairs)
|
| 48 |
|
|
|
|
| 53 |
batch_scores = torch.nn.functional.log_softmax(batch_scores, dim=1)
|
| 54 |
scores = batch_scores[:, 1].exp().tolist()
|
| 55 |
|
| 56 |
+
results = list(zip(scores, queries, documents))
|
| 57 |
+
results.sort(key=lambda x: x[0], reverse=True)
|
| 58 |
+
top_10 = results[:10]
|
| 59 |
+
|
| 60 |
+
return top_10
|