🚀 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 ライセンスの下で提供されています。