We present a multilingual FAQ retrieval model trained on the
MFAQ dataset
, it ranks candidate answers according to a given question.
Installation
pip install sentence-transformers transformers
Usage
You can use MFAQ with sentence-transformers or directly with a HuggingFace model.
In both cases, questions need to be prepended with
<Q>
, and answers with
<A>
.
Sentence Transformers
from sentence_transformers import SentenceTransformer
question = "<Q>How many models can I host on HuggingFace?"
answer_1 = "<A>All plans come with unlimited private models and datasets."
answer_2 = "<A>AutoNLP is an automatic way to train and deploy state-of-the-art NLP models, seamlessly integrated with the Hugging Face ecosystem."
answer_3 = "<A>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)
HuggingFace Transformers
from transformers import AutoTokenizer, AutoModel
import torch
defmean_pooling(model_output, attention_mask):
token_embeddings = model_output[0] #First element of model_output contains all token embeddings
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 = "<Q>How many models can I host on HuggingFace?"
answer_1 = "<A>All plans come with unlimited private models and datasets."
answer_2 = "<A>AutoNLP is an automatic way to train and deploy state-of-the-art NLP models, seamlessly integrated with the Hugging Face ecosystem."
answer_3 = "<A>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')
# Tokenize sentences
encoded_input = tokenizer([question, answer_1, answer_3, answer_3], padding=True, truncation=True, return_tensors='pt')
# Compute token embeddingswith torch.no_grad():
model_output = model(**encoded_input)
# Perform pooling. In this case, max pooling.
sentence_embeddings = mean_pooling(model_output, encoded_input['attention_mask'])
Training
You can find the training script for the model
here
.
People
This model was developed by
Maxime De Bruyn
, Ehsan Lotfi, Jeska Buhmann and Walter Daelemans.
Citation information
@misc{debruyn2021mfaq,
title={MFAQ: a Multilingual FAQ Dataset},
author={Maxime De Bruyn and Ehsan Lotfi and Jeska Buhmann and Walter Daelemans},
year={2021},
eprint={2109.12870},
archivePrefix={arXiv},
primaryClass={cs.CL}
}
mfaq huggingface.co is an AI model on huggingface.co that provides mfaq's model effect (), which can be used instantly with this clips mfaq model. huggingface.co supports a free trial of the mfaq model, and also provides paid use of the mfaq. Support call mfaq model through api, including Node.js, Python, http.
mfaq huggingface.co is an online trial and call api platform, which integrates mfaq's modeling effects, including api services, and provides a free online trial of mfaq, you can try mfaq online for free by clicking the link below.
mfaq is an open source model from GitHub that offers a free installation service, and any user can find mfaq on GitHub to install. At the same time, huggingface.co provides the effect of mfaq install, users can directly use mfaq installed effect in huggingface.co for debugging and trial. It also supports api for free installation.