/ Модель

Характеристики

Контекст
258 токенов
Параметры
162 млн
Лицензия
Apache 2.0
Архитектура
roberta · dense
Библиотека
transformers
Опубликована
29 мая 2024

PhoRanker

Классификация текстаТекст → label4 профессии

PhoRanker — вьетнамский RoBERTa cross-encoder для оценки релевантности и переранжирования результатов поиска.

2 502скачиваний за 30 дней16лайковвеса обновлены12 окт 2024

Бенчмарки

Как модель справилась с задачами пользователей ailist и что о ней публикуют открытые лидерборды

Публичные оценки

Из открытых лидербордов. Сравнивайте результаты одного теста при одинаковых условиях — отсутствие оценки не значит, что модель хуже.

В подключённых источниках результатов для этой модели пока нет.

Что умеет модель

Описание составлено по карточке модели и метаданным Hugging Face

PhoRanker — вьетнамская модель переранжирования текстовых фрагментов, опубликованная пользователем itdainb. Это cross-encoder на архитектуре RoBERTa с примерно 162,4 млн параметров; модель принимает пару запроса и документа и оценивает их соответствие, чтобы упорядочить найденные документы. Для обработки вьетнамского текста README указывает предварительную сегментацию слов с помощью VnCoreNLP.

Модель предназначена для второго этапа поиска: после получения кандидатов из поисковой системы она помогает поднять более релевантные отрывки в выдаче и ответах на вопросы по коллекции документов. В README приведены результаты на MS MARCO Passage Reranking — Vi — Dev; автор сообщает лучшие значения среди перечисленных моделей по метрикам NDCG и MRR, а также скорость 15 документов в секунду в тесте на A100 с fp16.

Длина контекста составляет 258 токенов, поэтому модель подходит для коротких запросов и фрагментов, но длинные документы потребуется разбивать на части. Репозиторий распространяется по лицензии Apache-2.0.

Сценарии применения

  • переранжирование найденных вьетнамских документов
  • ранжирование отрывков по релевантности запросу
  • повышение качества выдачи в поисковой системе
  • отбор релевантных фрагментов для ответов на вопросы по документам

Ограничения

Контекст ограничен 258 токенами, поэтому длинные документы нужно разбивать на фрагменты. Для вьетнамского текста README рекомендует предварительную сегментацию слов с помощью VnCoreNLP.

Для каких профессий подходит4

Разделы каталога профессий, в задачах которых используется эта модель

Все профессии

Карточка модели

README от автора на Hugging Face, как он его опубликовал

Открыть на Hugging Face

Table of contents

  1. Installation
  2. Pre-processing
  3. Usage with sentence-transformers
  4. Usage with transformers
  5. Performance
  6. Support me
  7. Citation

Installation

  • Install VnCoreNLP to word segment:

    • pip install py_vncorenlp
  • Install sentence-transformers (recommend) - Usage:

    • pip install sentence-transformers
  • Install transformers (optional) - Usage:

    • pip install transformers

Pre-processing

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

Usage with sentence-transformers

from sentence_transformers import CrossEncoder
model = CrossEncoder(MODEL_ID, max_length=MAX_LENGTH)

# For fp16 usage
model.model.half()

scores = model.predict(tokenized_pairs)

# 0.982, 0.2444, 0.9253
print(scores)

Usage with transformers

from transformers import AutoTokenizer, AutoModelForSequenceClassification
import torch

model = AutoModelForSequenceClassification.from_pretrained(MODEL_ID)
tokenizer = AutoTokenizer.from_pretrained(MODEL_ID)

# For fp16 usage
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]

# 0.9819, 0.2444, 0.9253
print(scores)

Performance

In the following table, we provide various pre-trained Cross-Encoders together with their performance on the MS MMarco Passage Reranking - Vi - Dev dataset.

Model-NameNDCG@3MRR@3NDCG@5MRR@5NDCG@10MRR@10Docs / Sec
itdainb/PhoRanker0.66250.64580.71470.67310.74220.683015
amberoad/bert-multilingual-passage-reranking-msmarco0.46340.52330.50410.53830.54160.552322
kien-vu-uet/finetuned-phobert-passage-rerank-best-eval0.09630.08830.13960.11310.16810.124615
BAAI/bge-reranker-v2-m30.60870.58410.65130.60620.68720.620913.51
BAAI/bge-reranker-v2-gemma0.60880.59080.64460.61080.67850.62491.29

Note: Runtime was computed on a A100 GPU with fp16.

Support me

If you find this work useful and would like to support its continued development, here are a few ways you can help:

  1. Star the Repository: If you appreciate this work, please give it a star. Your support encourages continued development and improvement.
  2. Contribute: Contributions are always welcome! You can help by reporting issues, submitting pull requests, or suggesting new features.
  3. Share: Share this project with your colleagues, friends, or community. The more people know about it, the more feedback and contributions it can attract.
  4. Buy me a coffee: If you’d like to provide financial support, consider making a donation. You can donate via
    • Momo: 0948798843
    • BIDV Bank: DAINB
    • Paypal: 0948798843

Citation

Please cite as

@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}},
}

Как запустить

На своей GPU в ailist. Цена — по текущим предложениям провайдеров

GPU в ailist

Универсальный рантайм · transformers · text-classification

Можно запустить

Подбираем GPU…

Класс архитектуры
RobertaForSequenceClassification
Ревизия весов
cb3e1f1

0 моделей