🚀 PhoRanker:越南語文本排序跨編碼器模型
PhoRanker 是一個用於越南語文本排序的跨編碼器模型,它能對文本進行高效分類和排序,在相關任務中表現出色,可基於不同庫靈活使用。
🚀 快速開始
本項目提供了一個用於越南語文本排序的跨編碼器模型,下面將詳細介紹其安裝、預處理和使用方法。
📦 安裝指南
安裝 VnCoreNLP
進行分詞
pip install py_vncorenlp
安裝 sentence-transformers
(推薦)
pip install sentence-transformers
安裝 transformers
(可選)
pip install transformers
💻 使用示例
預處理
import py_vncorenlp
py_vncorenlp.download_model(save_dir='/absolute/path/to/vncorenlp')
rdrsegmenter = py_vncorenlp.VnCoreNLP(annotators=["wseg"], save_dir='/absolute/path/to/vncorenlp')
query = "Trường UIT là gì?"
sentences = [
"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.",
"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.",
"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"
]
tokenized_query = rdrsegmenter.word_segment(query)
tokenized_sentences = [rdrsegmenter.word_segment(sent) for sent in sentences]
tokenized_pairs = [[tokenized_query, sent] for sent in tokenized_sentences]
MODEL_ID = 'itdainb/PhoRanker'
MAX_LENGTH = 256
使用 sentence-transformers
from sentence_transformers import CrossEncoder
model = CrossEncoder(MODEL_ID, max_length=MAX_LENGTH)
model.model.half()
scores = model.predict(tokenized_pairs)
print(scores)
使用 transformers
from transformers import AutoTokenizer, AutoModelForSequenceClassification
import torch
model = AutoModelForSequenceClassification.from_pretrained(MODEL_ID)
tokenizer = AutoTokenizer.from_pretrained(MODEL_ID)
model.half()
features = tokenizer(tokenized_pairs, padding=True, truncation="longest_first", return_tensors="pt", max_length=MAX_LENGTH)
model.eval()
with torch.no_grad():
model_predictions = model(**features, return_dict=True)
logits = model_predictions.logits
logits = torch.nn.Sigmoid()(logits)
scores = [logit[0] for logit in logits]
print(scores)
📚 詳細文檔
性能表現
以下表格展示了各種預訓練的跨編碼器在 MS MMarco Passage Reranking - Vi - Dev 數據集上的性能:
注意:運行時間是在配備 fp16 的 A100 GPU 上計算得出的。
支持項目
如果你覺得這個項目有用,並希望支持其持續開發,可以通過以下幾種方式提供幫助:
- 給倉庫加星:如果你認可這個項目,請給它加星。你的支持將鼓勵項目持續發展和改進。
- 貢獻代碼:歡迎貢獻代碼!你可以通過報告問題、提交拉取請求或提出新功能建議來提供幫助。
- 分享項目:將這個項目分享給你的同事、朋友或社區。瞭解的人越多,項目就能吸引更多的反饋和貢獻。
- 請我喝咖啡:如果你想提供資金支持,可以考慮進行捐贈。你可以通過以下方式捐贈:
- Momo:0948798843
- BIDV 銀行:DAINB
- Paypal:0948798843
引用
請按以下格式引用本項目:
@misc{PhoRanker,
title={PhoRanker: A Cross-encoder Model for Vietnamese Text Ranking},
author={Dai Nguyen Ba ({ORCID:0009-0008-8559-3154})},
year={2024},
publisher={Huggingface},
journal={huggingface repository},
howpublished={\url{https://huggingface.co/itdainb/PhoRanker}},
}
📄 許可證
本項目採用 Apache-2.0 許可證。