shibing624/text2vec-base-multilingual

shibing624
Similitud de oraciones

Este es un modelo CoSENT (Cosine Sentence): shibing624/text2vec-base-multilingual. Mapea oraciones a un espacio vectorial denso de 384 dimensiones y se puede usar para tareas como incrustaciones de oraciones, coincidencia de texto o búsqueda semántica.

Como usar

Cómo usar el modelo se vuelve fácil cuando se tiene instalado text2vec:

pip install -U text2vec

Entonces se puede usar el modelo de esta manera:

from text2vec import SentenceModel
sentences = ['如何更换花呗绑定银行卡', 'How to replace the Huabei bundled bank card']

model = SentenceModel('shibing624/text2vec-base-multilingual')
embeddings = model.encode(sentences)
print(embeddings)

Sin text2vec, se puede usar el modelo de esta manera: Primero, se pasa la entrada a través del modelo transformers, luego hay que aplicar la operación de agrupación correcta sobre las incrustaciones de palabras contextualizadas. Instalar transformers:

pip install transformers

Luego cargar el modelo y predecir:

from transformers import AutoTokenizer, AutoModel
import torch

# Agrupación media - Tener en cuenta la máscara de atención para un promedio correcto
def mean_pooling(model_output, attention_mask):
    token_embeddings = model_output[0]  # El primer elemento de model_output contiene todas las incrustaciones de tokens
    input_mask_expanded = attention_mask.unsqueeze(-1).expand(token_embeddings.size()).float()
    return torch.sum(token_embeddings * input_mask_expanded, 1) / torch.clamp(input_mask_expanded.sum(1), min=1e-9)

# Cargar el modelo desde HuggingFace Hub
tokenizer = AutoTokenizer.from_pretrained('shibing624/text2vec-base-multilingual')
model = AutoModel.from_pretrained('shibing624/text2vec-base-multilingual')
sentences = ['如何更换花呗绑定银行卡', 'How to replace the Huabei bundled bank card']
# Tokenizar oraciones
encoded_input = tokenizer(sentences, padding=True, truncation=True, return_tensors='pt')

# Calcular incrustaciones de tokens
with torch.no_grad():
    model_output = model(**encoded_input)
    # Realizar agrupación. En este caso, agrupación media.
    sentence_embeddings = mean_pooling(model_output, encoded_input['attention_mask'])
print('Incrustaciones de oraciones:')
print(sentence_embeddings)

sentence-transformers es una biblioteca popular para calcular representaciones de vectores densos para oraciones. Instalar sentence-transformers:

pip install -U sentence-transformers

Luego cargar el modelo y predecir:

from sentence_transformers import SentenceTransformer

m = SentenceTransformer('shibing624/text2vec-base-multilingual')
sentences = ['如何更换花呗绑定银行卡', 'How to replace the Huabei bundled bank card']

sentence_embeddings = m.encode(sentences)
print('Incrustaciones de oraciones:')
print(sentence_embeddings)

Funcionalidades

Espacio vectorial denso de 384 dimensiones
Pre-entrenado con CoSENT
Capacidad de incrustaciones de oraciones
Compatibilidad con PyTorch
Compatibilidad con ONNX
Compatibilidad con Safetensors
Compatibilidad con Transformers
Entrenar con múltiples lenguajes
Mejor rendimiento en coincidencia de oraciones

Casos de uso

Incrustaciones de oraciones
Búsqueda semántica
Coincidencia de texto
Clasificación de oraciones
Recuperación de información
Agrupación de datos
Re-ranking de resultados de búsqueda