d0rj/e5-small-en-ru
d0rj
Similitud de oraciones
Esta es una versión podada del vocabulario de intfloat/multilingual-e5-small. Utiliza únicamente tokens en ruso y inglés. Utiliza la distancia del producto interno para la recuperación. Utiliza 'consulta: ' y 'pasaje: ' respectivamente para tareas asimétricas como la recuperación de pasajes en preguntas y respuestas abiertas, y recuperación de información ad-hoc. Usa el prefijo 'consulta: ' para tareas simétricas como la similitud semántica, minería de bitextos, recuperación de paráfrasis. Utiliza el prefijo 'consulta: ' si deseas usar embeddings como características, como clasificación de sondeo lineal, agrupamiento.
Como usar
import torch.nn.functional as F
from torch import Tensor
from transformers import XLMRobertaTokenizer, XLMRobertaModel
def average_pool(last_hidden_states: Tensor, attention_mask: Tensor) -> Tensor:
last_hidden = last_hidden_states.masked_fill(~attention_mask[..., None].bool(), 0.0)
return last_hidden.sum(dim=1) / attention_mask.sum(dim=1)[..., None]
input_texts = [
'consulta: ¿Cómo se diferencia un sitio web corporativo de un sitio web de tarjeta de presentación?',
'consulta: Где был создан первый троллейбус?',
'pasaje: El primer trolebús fue creado en Alemania por el ingeniero Werner von Siemens, probablemente influenciado por la idea de su hermano, el Dr. Wilhelm Siemens, quien vivía en Inglaterra, expresada el 18 de mayo de 1881 en la vigésima segunda reunión de la Royal Scientific Society. El circuito eléctrico se realizaba mediante un carro de ocho ruedas (Kontaktwagen) que rodaba a lo largo de dos alambres de contacto paralelos. Los cables estaban ubicados bastante cerca uno del otro, y con vientos fuertes a menudo se superponían, lo que llevaba a cortocircuitos. Una línea experimental de trolebuses con una longitud de 540 m (591 yardas), inaugurada por Siemens & Halske en el suburbio berlinés de Halensee, operó del 29 de abril al 13 de junio de 1882.',
'pasaje: Un sitio web corporativo contiene información completa sobre la empresa propietaria, servicios/productos, eventos en la vida de la empresa. Se diferencia de un sitio web de tarjeta de presentación y un sitio web representativo en la integridad de la información presentada, y a menudo contiene diversas herramientas funcionales para trabajar con contenido (búsqueda y filtros, calendarios de eventos, galerías de fotos, blogs corporativos, foros). Puede integrarse con sistemas de información internos de la empresa propietaria (ERP, CRM, sistemas de contabilidad). Puede contener secciones cerradas para ciertos grupos de usuarios: empleados, distribuidores, socios comerciales, etc.',
]
tokenizer = XLMRobertaTokenizer.from_pretrained('d0rj/e5-small-en-ru', use_cache=False)
model = XLMRobertaModel.from_pretrained('d0rj/e5-small-en-ru', use_cache=False)
batch_dict = tokenizer(input_texts, max_length=512, padding=True, truncation=True, return_tensors='pt')
outputs = model(**batch_dict)
embeddings = average_pool(outputs.last_hidden_state, batch_dict['attention_mask'])
embeddings = F.normalize(embeddings, p=2, dim=1)
scores = (embeddings[:2] @ embeddings[2:].T) * 100
print(scores.tolist())
# [[68.59542846679688, 81.75910949707031], [80.36100769042969, 64.77748107910156]]
from transformers import pipeline
pipe = pipeline('feature-extraction', model='d0rj/e5-small-en-ru')
embeddings = pipe(input_texts, return_tensors=True)
embeddings[0].size()
# torch.Size([1, 17, 1024])
from sentence_transformers import SentenceTransformer
sentences = [
'consulta: Что такое круглые тензоры?',
'pasaje: Resumen: presentamos un nuevo método para comprimir tensores redondos basado en su simetría radial inherente. Comenzamos generalizando PCA y descomposición eigen en tensores redondos...',
]
model = SentenceTransformer('d0rj/e5-small-en-ru')
embeddings = model.encode(sentences, convert_to_tensor=True)
embeddings.size()
# torch.Size([2, 1024])
Funcionalidades
- Similitud de oraciones
- Transformers
- PyTorch
- Safetensors
- sentence-transformers
- extracción de características
- mteb
- recuperación
- pruned
- e5
- inferencias de embeddings de texto
- endpoints compatibles
Casos de uso
- Recuperación de pasajes
- Recuperación de información ad-hoc
- Similitud semántica
- Minería de bitextos
- Recuperación de paráfrasis
- Clasificación de sondeo lineal
- Agrupamiento