File size: 2,170 Bytes
7d29d04 714ef19 7d29d04 208a846 a6b4b15 208a846 a6b4b15 208a846 7d29d04 a6b4b15 cd1ccf1 7d29d04 a6b4b15 7d29d04 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 |
---
license: apache-2.0
datasets:
- unicamp-dl/mmarco
language:
- vi
library_name: sentence-transformers
pipeline_tag: text-classification
tags:
- cross-encoder
- rerank
---
## Installation
- Install `sentence-transformers` (recommend):
- `pip install sentence-transformers`
- Install `transformers` (optional):
- `pip install transformers`
- Install `pyvi` to word segment:
- `pip install pyvi`
## 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
import torch
model = AutoModelForSequenceClassification.from_pretrained('itdainb/vietnamese-cross-encoder')
tokenizer = AutoTokenizer.from_pretrained('itdainb/vietnamese-cross-encoder')
activation_fct = torch.nn.Identity()
features = tokenizer(*tokenized_pairs, padding=True, truncation="longest_first", return_tensors="pt", max_length=256)
model.eval()
with torch.no_grad():
model_predictions = self.model(**features, return_dict=True)
logits = activation_fct(model_predictions.logits)
scores = [score[0] for score in logits]
print(scores)
``` |