--- 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: - source_sentence: "That is a happy person" sentences: - "That is a happy dog" - "That is a very happy person" - "Today is a sunny day" example_title: "Happy" pipeline_tag: sentence-similarity --- ## 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) ```