gaussalgo/xlm-roberta-large_extractive-QA_en-cs
Este es el modelo XLM-RoBERTa-large con una cabeza para preguntas y respuestas extractivas entrenado en una combinación de los conjuntos de datos SQuAD 1.1 en inglés y SQAD 3.0 en checo. Para el conjunto de datos SQAD 3.0 en checo, los contextos originales (sitios web completos de Wikipedia) fueron limitados para ajustarse a la ventana de contexto de RoBERTa, excluyendo aproximadamente el 3% de las muestras. Este modelo está diseñado para extraer un segmento de un contexto dado que contenga una respuesta a una pregunta dada (Preguntas y Respuestas Extractivas) en inglés y checo. Dado el ajuste fino en dos idiomas y una buena aplicabilidad cero disparo reportada de otros XLM-RoBERTa ajustados finamente, es probable que el modelo funcione en otros idiomas también, con una disminución en la calidad.
Como usar
Aquí está cómo usar este modelo para responder una pregunta en un contexto dado usando 🤗 Transformers en PyTorch:
from transformers import AutoTokenizer, AutoModelForQuestionAnswering
tokenizer = AutoTokenizer.from_pretrained("gaussalgo/xlm-roberta-large_extractive-QA_en-cs")
model = AutoModelForQuestionAnswering.from_pretrained("gaussalgo/xlm-roberta-large_extractive-QA_en-cs")
context = """
Podle slovenského lidového podání byl Juro Jánošík obdařen magickými předměty (kouzelná valaška, čarovný opasek),
které mu dodávaly nadpřirozené schopnosti. Okrádal především šlechtice,
trestal panské dráby a ze svého lupu vyděloval část pro chudé, tedy bohatým bral a chudým dával.
"""
question = "Jaké schopnosti daly magické předměty Juro Jánošíkovi?"
inputs = tokenizer(question, context, return_tensors="pt")
outputs = model(**inputs)
start_position = outputs.start_logits[0].argmax()
end_position = outputs.end_logits[0].argmax()
answer_ids = inputs["input_ids"][0][start_position:end_position]
print("Answer:")
print(tokenizer.decode(answer_ids))
Entrenamiento
El modelo ha sido entrenado usando la biblioteca Adaptor v0.1.5, en paralelo en datos en checo e inglés, con los siguientes parámetros:
training_arguments = AdaptationArguments(output_dir="train_dir",
learning_rate=1e-5,
stopping_strategy=StoppingStrategy.ALL_OBJECTIVES_CONVERGED,
do_train=True,
do_eval=True,
warmup_steps=1000,
max_steps=100000,
gradient_accumulation_steps=30,
eval_steps=100,
logging_steps=10,
save_steps=1000,
num_train_epochs=30,
evaluation_strategy="steps")
Puedes encontrar el script completo de entrenamiento en train_roberta_extractive_qa.py, reproducible después de un preprocesamiento específico de datos para el SQAD checo en parse_czech_squad.py.
Funcionalidades
- Transformers
- PyTorch
- Safetensors
- Multilingüe
- Checo
- Inglés
- xlm-roberta
- exbert
- Compatibilidad con Endpoints
Casos de uso
- Extracción de respuestas de contextos en inglés y checo
- Aplicaciones multilingües de preguntas y respuestas
- Investigaciones y aplicaciones académicas en el procesamiento del lenguaje natural