nguyenvulebinh/vi-mrc-base
nguyenvulebinh
Pregunta y respuesta
Este modelo de lenguaje está basado en XLM-RoBERTa y afinado para la tarea de 'question-answering' (QA) o preguntas y respuestas con enfoque extractivo. Está diseñado para funcionar principalmente en vietnamita, aunque también puede manejar el inglés. Se ha entrenado utilizando una combinación de datasets en inglés y vietnamita, incluyendo Squad 2.0, mailong25, UIT-ViQuAD y MultiLingual Question Answering. El modelo usa una estrategia de combinación de sub-palabras para representar palabras completas después de ser codificadas por la capa BERT.
Como usar
Usar el modelo preentrenado en estilo pipeline de Hugging Face (NO usando la estrategia de características de sum):
from transformers import pipeline
# model_checkpoint = "nguyenvulebinh/vi-mrc-large"
model_checkpoint = "nguyenvulebinh/vi-mrc-base"
nlp = pipeline('question-answering', model=model_checkpoint, tokenizer=model_checkpoint)
QA_input = {
'question': "Bình là chuyên gia về gì ?",
'context': "Bình Nguyễn es una persona apasionada por el campo del procesamiento del lenguaje natural. Recibió el certificado de Google Developer Expert en 2020."
}
res = nlp(QA_input)
print('pipeline: {}'.format(res))
# {'score': 0.5782045125961304, 'start': 45, 'end': 68, 'answer': 'procesamiento del lenguaje natural'}
Proceso de inferencia más preciso (usando la estrategia de características de suma):
from infer import tokenize_function, data_collator, extract_answer
from model.mrc_model import MRCQuestionAnswering
from transformers import AutoTokenizer
# model_checkpoint = "nguyenvulebinh/vi-mrc-large"
model_checkpoint = "nguyenvulebinh/vi-mrc-base"
tokenizer = AutoTokenizer.from_pretrained(model_checkpoint)
model = MRCQuestionAnswering.from_pretrained(model_checkpoint)
QA_input = {
'question': "¿Con qué título es reconocido Bình?",
'context': "Bình Nguyễn es una persona apasionada por el campo del procesamiento del lenguaje natural. Recibió el certificado de Google Developer Expert en 2020."
}
inputs = [tokenize_function(*QA_input)]
inputs_ids = data_collator(inputs)
outputs = model(**inputs_ids)
answer = extract_answer(inputs, outputs, tokenizer)
print(answer)
# respuesta: Google Developer Expert. Puntuación inicio: 0.9926977753639221, puntuación fin: 0.9909810423851013
Funcionalidades
- Modelo de lenguaje: XLM-RoBERTa
- Afinado para: MRCQuestionAnswering
- Tarea de downstream: QA extractivo
- Datasets utilizados: Squad 2.0, mailong25, UIT-ViQuAD, MultiLingual Question Answering
- Estrategia de combinación de sub-palabras
Casos de uso
- Responder preguntas de manera extractiva en vietnamita
- Responder preguntas de manera extractiva en inglés