Views
No views yet
sentence-transformerstransformersVnCoreNLP to word segment:pip install py_vncorenlpsentence-transformers (recommend) - Usage:pip install sentence-transformerstransformers (optional) - Usage:pip install transformers1import py_vncorenlp
2py_vncorenlp.download_model(save_dir='/absolute/path/to/vncorenlp')
3rdrsegmenter = py_vncorenlp.VnCoreNLP(annotators=["wseg"], save_dir='/absolute/path/to/vncorenlp')
4
5query = "Trường UIT là gì?"
6sentences = [
7 "Trường Đại học Công nghệ Thông tin có tên tiếng Anh là University of Information Technology (viết tắt là UIT) là thành viên của Đại học Quốc Gia TP.HCM.",
8 "Trường Đại học Kinh tế – Luật (tiếng Anh: University of Economics and Law – UEL) là trường đại học đào tạo và nghiên cứu khối ngành kinh tế, kinh doanh và luật hàng đầu Việt Nam.",
9 "Quĩ uỷ thác đầu tư (tiếng Anh: Unit Investment Trusts; viết tắt: UIT) là một công ty đầu tư mua hoặc nắm giữ một danh mục đầu tư cố định"
10]
11
12tokenized_query = rdrsegmenter.word_segment(query)
13tokenized_sentences = [rdrsegmenter.word_segment(sent) for sent in sentences]
14
15tokenized_pairs = [[tokenized_query, sent] for sent in tokenized_sentences]
16
17MODEL_ID = 'itdainb/PhoRanker'
18MAX_LENGTH = 2561from sentence_transformers import CrossEncoder
2model = CrossEncoder(MODEL_ID, max_length=MAX_LENGTH)
3
4# For fp16 usage
5model.model.half()
6
7scores = model.predict(tokenized_pairs)
8
9# 0.982, 0.2444, 0.9253
10print(scores)1from transformers import AutoTokenizer, AutoModelForSequenceClassification
2import torch
3
4model = AutoModelForSequenceClassification.from_pretrained(MODEL_ID)
5tokenizer = AutoTokenizer.from_pretrained(MODEL_ID)
6
7# For fp16 usage
8model.half()
9
10features = tokenizer(tokenized_pairs, padding=True, truncation="longest_first", return_tensors="pt", max_length=MAX_LENGTH)
11
12model.eval()
13with torch.no_grad():
14 model_predictions = model(**features, return_dict=True)
15
16 logits = model_predictions.logits
17 logits = torch.nn.Sigmoid()(logits)
18 scores = [logit[0] for logit in logits]
19
20# 0.9819, 0.2444, 0.9253
21print(scores)| Model-Name | NDCG@3 | MRR@3 | NDCG@5 | MRR@5 | NDCG@10 | MRR@10 | Docs / Sec |
|---|---|---|---|---|---|---|---|
| itdainb/PhoRanker | 0.6625 | 0.6458 | 0.7147 | 0.6731 | 0.7422 | 0.6830 | 15 |
| amberoad/bert-multilingual-passage-reranking-msmarco | 0.4634 | 0.5233 | 0.5041 | 0.5383 | 0.5416 | 0.5523 | 22 |
| kien-vu-uet/finetuned-phobert-passage-rerank-best-eval | 0.0963 | 0.0883 | 0.1396 | 0.1131 | 0.1681 | 0.1246 | 15 |
| BAAI/bge-reranker-v2-m3 | 0.6087 | 0.5841 | 0.6513 | 0.6062 | 0.6872 | 0.62091 | 3.51 |
| BAAI/bge-reranker-v2-gemma | 0.6088 | 0.5908 | 0.6446 | 0.6108 | 0.6785 | 0.6249 | 1.29 |
1@misc{PhoRanker,
2 title={PhoRanker: A Cross-encoder Model for Vietnamese Text Ranking},
3 author={Dai Nguyen Ba ({ORCID:0009-0008-8559-3154})},
4 year={2024},
5 publisher={Huggingface},
6 journal={huggingface repository},
7 howpublished={\url{https://huggingface.co/itdainb/PhoRanker}},
8}