|
--- |
|
language: |
|
- vi |
|
license: apache-2.0 |
|
library_name: sentence-transformers |
|
tags: |
|
- cross-encoder |
|
- rerank |
|
datasets: |
|
- unicamp-dl/mmarco |
|
model-index: |
|
- name: VietnameseCrossEncoder |
|
results: |
|
- task: |
|
type: text-classification |
|
dataset: |
|
name: MMarco (Vi-Dev) |
|
type: unicamp-dl/mmarco |
|
metrics: |
|
- type: NDCG |
|
value: 0 |
|
name: NDCG@10 |
|
verified: false |
|
- type: MRR |
|
value: 0 |
|
name: MRR@10 |
|
verified: false |
|
widget: |
|
- text: "UIT là gì ?. 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." |
|
output: |
|
- label: "Top 1" |
|
score: 4.0033 |
|
- text: "UIT là gì ?. 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 ." |
|
output: |
|
- label: "Top 3" |
|
score: -1.1160 |
|
- text: "UIT là gì ?. 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" |
|
output: |
|
- label: "Top 2" |
|
score: 2.5138 |
|
pipeline_tag: text-classification |
|
--- |
|
|
|
## Installation |
|
- Install `pyvi` to word segment: |
|
|
|
- `pip install pyvi` |
|
|
|
- Install `sentence-transformers` (recommend): |
|
|
|
- `pip install sentence-transformers` |
|
|
|
- Install `transformers` (optional): |
|
|
|
- `pip install transformers` |
|
|
|
## Pre-processing |
|
|
|
```python |
|
from pyvi import ViTokenizer |
|
|
|
query = "UIT là gì?" |
|
sentences = [ |
|
"UIT là Trường Đại học Công nghệ Thông tin (ĐH CNTT), Đại học Quốc gia Thành phố Hồ Chí Minh (ĐHQG-HCM)", |
|
"Mô hình rerank — còn được gọi là cross-encoder — là một loại mô hình mà, khi được cung cấp một cặp truy vấn và tài liệu, sẽ đưa ra một điểm tương đồng.", |
|
"Việt Nam, quốc hiệu là Cộng hòa xã hội chủ nghĩa Việt Nam, là một quốc gia xã hội chủ nghĩa nằm ở cực Đông của bán đảo Đông Dương thuộc khu vực Đông Nam Á" |
|
] |
|
|
|
tokenized_query = ViTokenizer.tokenize(query) |
|
tokenized_sentences = [ViTokenizer.tokenize(sent) for sent in sentences] |
|
|
|
tokenized_pairs = [[tokenized_query, sent] for sent in tokenized_sentences] |
|
``` |
|
|
|
## Usage with sentence-transformers |
|
|
|
```python |
|
from sentence_transformers import CrossEncoder |
|
model = CrossEncoder('itdainb/vietnamese-cross-encoder', max_length=256) |
|
scores = model.predict(tokenized_pairs) |
|
``` |
|
|
|
## Usage with transformers |
|
|
|
```python |
|
from transformers import AutoTokenizer, AutoModelForSequenceClassification |
|
|
|
model = AutoModelForSequenceClassification.from_pretrained('itdainb/vietnamese-cross-encoder') |
|
tokenizer = AutoTokenizer.from_pretrained('itdainb/vietnamese-cross-encoder') |
|
|
|
features = tokenizer(tokenized_pairs, padding=True, truncation="longest_first", return_tensors="pt", max_length=256) |
|
|
|
model.eval() |
|
with torch.no_grad(): |
|
model_predictions = model(**features, return_dict=True) |
|
logits = model_predictions.logits |
|
|
|
scores = [score[0] for score in logits] |
|
print(scores) |
|
``` |