模型:
gaussalgo/xlm-roberta-large_extractive-QA_en-cs
任务:
问答这是一个带有抽取式问答头部的 XLM-RoBERTa-large 模型,使用捷克SQAD 3.0和 English SQuAD 1.1 Question Answering数据集的组合进行训练。对于捷克SQAD 3.0,原始语境(即整个维基百科网站)被限制在适应RoBERTa上下文窗口的范围内,约占样本的3%。
该模型旨在从给定的语境中提取包含给定问题答案的片段(抽取式问答),适用于英语和捷克语。考虑到对这两种语言的微调,并且其他微调的XLM-RoBERTa在零-shot跨语言应用方面表现良好,该模型很可能对其他语言也有效,尽管质量会有所下降。
请注意,尽管英语SQuAD数据集规模较大,但存在多样的报告偏向(详见,例如 L. Mikula (2022) ,第4.1章)。
以下是使用? Transformers在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))
使用 Adaptor library v0.1.5平行在捷克语和英语数据上训练了该模型,使用以下参数:
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")
可以在train_roberta_extractive_qa.py中找到完整的训练脚本,捷克SQAD的特定数据预处理在parse_czech_squad.py中可以复现。