DiTy/cross-encoder-russian-msmarco

DiTy
Clasificación de texto

Este es un modelo de sentence-transformers basado en un modelo preentrenado DeepPavlov/rubert-base-cased y ajustado con el conjunto de datos de clasificación de pasajes en ruso de MS-MARCO. El modelo puede ser utilizado para la Recuperación de Información en el idioma ruso: Dada una consulta, codifica la consulta con todos los posibles pasajes (por ejemplo, recuperados con ElasticSearch). Luego ordena los pasajes en orden decreciente. Consulte SBERT.net Retrieve & Re-rank para más detalles.

Como usar

Uso (Sentence-Transformers)

Usar este modelo se vuelve fácil cuando tienes sentence-transformers instalado:

pip install -U sentence-transformers

Luego puedes usar el modelo de esta manera:

from sentence_transformers import CrossEncoder

reranker_model = CrossEncoder('DiTy/cross-encoder-russian-msmarco', max_length=512, device='cuda')

query = ["как часто нужно ходить к стоматологу?"]
documents = [
"Минимальный обязательный срок посещения зубного врача – раз в год, но специалисты рекомендуют делать это чаще – раз в полгода, а ещё лучше – раз в квартал. При таком сроке легко отследить любые начинающиеся проблемы и исправить их сразу же.",
"Основная причина заключается в истончении поверхностного слоя зуба — эмали, которая защищает зуб от механических, химических и температурных воздействий. Под эмалью расположен дентин, который более мягкий по своей структуре и пронизан множеством канальцев. При повреждении эмали происходит оголение дентинных канальцев. Раздражение с них начинает передаваться на нервные окончания в зубе и возникают болевые ощущения. Чаще всего дентин оголяется в придесневой области зубов, поскольку эмаль там наиболее тонкая и стирается быстрее.",
"Стоматолог, также известный как стоматолог-хирург, является медицинским работником, который специализируется на стоматологии, отрасли медицины, специализирующейся на зубах, деснах и полости рта.",
"Дядя Женя работает врачем стоматологом",
"Плоды малины употребляют как свежими, так и замороженными или используют для приготовления варенья, желе, мармелада, соков, а также ягодного пюре. Малиновые вина, наливки, настойки, ликёры обладают высокими вкусовыми качествами.",
]

predict_result = reranker_model.predict([[query[0], documents[0]]])
print(predict_result)
# `array([0.88126713], dtype=float32)`

rank_result = reranker_model.rank(query[0], documents)
print(rank_result)
# `[{'corpus_id': 0, 'score': 0.88126713},
#  {'corpus_id': 2, 'score': 0.001042091},
#  {'corpus_id': 3, 'score': 0.0010417715},
#  {'corpus_id': 1, 'score': 0.0010344835},
#  {'corpus_id': 4, 'score': 0.0010244923}]`

Uso (HuggingFace Transformers)

Sin sentence-transformers, puedes usar el modelo de la siguiente manera: Primero, pasa tu entrada a través del modelo transformer, luego necesitas obtener los logits del modelo.

import torch
from transformers import AutoTokenizer, AutoModelForSequenceClassification

model = AutoModelForSequenceClassification.from_pretrained('DiTy/cross-encoder-russian-msmarco')
tokenizer = AutoTokenizer.from_pretrained('DiTy/cross-encoder-russian-msmarco')

features = tokenizer(["как часто нужно ходить к стоматологу?", "как часто нужно ходить к стоматологу?"], ["Минимальный обязательный срок посещения зубного врача – раз в год, но специалисты рекомендуют делать это чаще – раз в полгода, а ещё лучше – раз в квартал. При таком сроке легко отследить любые начинающиеся проблемы и исправить их сразу же.", "Дядя Женя работает врачем стоматологом"], padding=True, truncation=True, return_tensors='pt')
 
model.eval()
with torch.no_grad():
    scores = model(**features).logits
print(scores)
# `tensor([[ 1.6871],
#        [-6.8700]])`

Descargas el último mes

40,631

Funcionalidades

Clasificación de texto
Transformers
Basado en BERT
Modelo cross-encoder para reranking
Soporta safetensors

Casos de uso

Recuperación de Información en ruso
Ordenar pasajes de texto según relevancia
Clasificación de textos

Recibe las últimas noticias y actualizaciones sobre el mundo de IA directamente en tu bandeja de entrada.