clips/mfaq

clips
Similitud de oraciones

Presentamos un modelo de recuperación de preguntas frecuentes multilingüe entrenado en el conjunto de datos MFAQ, que clasifica las respuestas candidatas según una pregunta dada.

Como usar

Instalación

pip install sentence-transformers transformers

Uso

Puedes usar MFAQ con sentence-transformers o directamente con un modelo HuggingFace.

Transformadores de Oraciones

from sentence_transformers import SentenceTransformer

question = "How many models can I host on HuggingFace?"
answer_1 = "All plans come with unlimited private models and datasets."
answer_2 = "AutoNLP is an automatic way to train and deploy state-of-the-art NLP models, seamlessly integrated with the Hugging Face ecosystem."
answer_3 = "Based on how much training data and model variants are created, we send you a compute cost and payment link - as low as $10 per job."

model = SentenceTransformer('clips/mfaq')
embeddings = model.encode([question, answer_1, answer_3, answer_3])
print(embeddings)

Transformadores HuggingFace

from transformers import AutoTokenizer, AutoModel
import torch

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)

question = "How many models can I host on HuggingFace?"
answer_1 = "All plans come with unlimited private models and datasets."
answer_2 = "AutoNLP is an automatic way to train and deploy state-of-the-art NLP models, seamlessly integrated with the Hugging Face ecosystem."
answer_3 = "Based on how much training data and model variants are created, we send you a compute cost and payment link - as low as $10 per job."

tokenizer = AutoTokenizer.from_pretrained('clips/mfaq')
model = AutoModel.from_pretrained('clips/mfaq')

# Tokenizar oraciones
encoded_input = tokenizer([question, answer_1, answer_3, answer_3], padding=True, truncation=True, return_tensors='pt')

# Calcular incrustaciones de tokens
with torch.no_grad():
    model_output = model(**encoded_input)

# Realizar agrupación.
sentence_embeddings = mean_pooling(model_output, encoded_input['attention_mask'])

Entrenamiento

Puedes encontrar el script de entrenamiento para el modelo aquí.

Funcionalidades

Transformadores de oraciones
Compatibilidad con PyTorch
Compatibilidad con TensorFlow
Basado en xlm-roberta
Extracción de características
Inferencia de similitud de oraciones
Compatibilidad con AutoTrain
Compatible con puntos finales de inferencia

Casos de uso

Recuperación multilingüe de preguntas frecuentes
Creación de aplicaciones de servicio al cliente automatizadas
Implementación de sistemas de respuesta a preguntas que cubren múltiples idiomas