🚀 mT5-base在TyDiQA上微调用于多语言问答 🗺📖❓
本项目是将 Google的mT5-base 在 TyDi QA(次要任务)上进行微调,以用于多语言问答下游任务。
✨ 主要特性
mT5模型详情
Google的mT5 是在 mC4 语料库上进行预训练的,该语料库涵盖了101种语言:
南非荷兰语、阿尔巴尼亚语、阿姆哈拉语、阿拉伯语、亚美尼亚语、阿塞拜疆语、巴斯克语、白俄罗斯语、孟加拉语、保加利亚语、缅甸语、加泰罗尼亚语、宿务语、齐切瓦语、中文、科西嘉语、捷克语、丹麦语、荷兰语、英语、世界语、爱沙尼亚语、菲律宾语、芬兰语、法语、加利西亚语、格鲁吉亚语、德语、希腊语、古吉拉特语、海地克里奥尔语、豪萨语、夏威夷语、希伯来语、印地语、苗语、匈牙利语、冰岛语、伊博语、印尼语、爱尔兰语、意大利语、日语、爪哇语、卡纳达语、哈萨克语、高棉语、韩语、库尔德语、吉尔吉斯语、老挝语、拉丁语、拉脱维亚语、立陶宛语、卢森堡语、马其顿语、马达加斯加语、马来语、马拉雅拉姆语、马耳他语、毛利语、马拉地语、蒙古语、尼泊尔语、挪威语、普什图语、波斯语、波兰语、葡萄牙语、旁遮普语、罗马尼亚语、俄语、萨摩亚语、苏格兰盖尔语、塞尔维亚语、绍纳语、信德语、僧伽罗语、斯洛伐克语、斯洛文尼亚语、索马里语、索托语、西班牙语、巽他语、斯瓦希里语、瑞典语、塔吉克语、泰米尔语、泰卢固语、泰语、土耳其语、乌克兰语、乌尔都语、乌兹别克语、越南语、威尔士语、西弗里西亚语、科萨语、意第绪语、约鲁巴语、祖鲁语。
注意:mT5仅在mC4上进行了预训练,未进行任何有监督训练。因此,该模型在用于下游任务之前必须进行微调。
数据集详情 📚
TyDi QA 是一个问答数据集,涵盖11种类型多样的语言,包含204K个问答对。TyDi QA的语言在类型学上具有多样性,即每种语言所表达的语言特征集合不同,因此我们期望在该数据集上表现良好的模型能够在世界上大量语言中实现泛化。它包含了仅英语语料库中找不到的语言现象。为了提供真实的信息搜索任务并避免引导效应,问题由想知道答案但尚未知道答案的人编写(与SQuAD及其衍生数据集不同),并且数据是直接以每种语言收集的,不使用翻译(与MLQA和XQuAD不同)。
数据集 |
任务 |
划分 |
样本数量 |
TyDi QA |
GoldP |
训练集 |
49881 |
TyDi QA |
GoldP |
验证集 |
5077 |
验证数据集结果 📝
💻 使用示例
基础用法
from transformers import AutoModelForCausalLM, AutoTokenizer
import torch
device = torch.device('cuda' if torch.cuda.is_available() else 'cpu')
tokenizer = AutoTokenizer.from_pretrained("Narrativa/mT5-base-finetuned-tydiQA-xqa")
model = AutoModelForCausalLM.from_pretrained("Narrativa/mT5-base-finetuned-tydiQA-xqa").to(device)
def get_response(question, context, max_length=32):
input_text = 'question: %s context: %s' % (question, context)
features = tokenizer([input_text], return_tensors='pt')
output = model.generate(input_ids=features['input_ids'].to(device),
attention_mask=features['attention_mask'].to(device),
max_length=max_length)
return tokenizer.decode(output[0])
context = 'HuggingFace won the best Demo paper at EMNLP2020.'
question = 'What won HuggingFace?'
get_response(question, context)
context = 'HuggingFace ganó la mejor demostración con su paper en la EMNLP2020.'
question = 'Qué ganó HuggingFace?'
get_response(question, context)
context = 'HuggingFace выиграл лучшую демонстрационную работу на EMNLP2020.'
question = 'Что победило в HuggingFace?'
get_response(question, context)
本模型由 Narrativa 创建。
关于Narrativa:自然语言生成(NLG)| Gabriele是我们基于机器学习的平台,用于构建和部署自然语言解决方案。#NLG #AI