模型:
mbeukman/xlm-roberta-base-finetuned-kinyarwanda-finetuned-ner-kinyarwanda
这是一个令牌分类(具体是NER)模型,它在Kinyarwanda部分的数据集上进行了 xlm-roberta-base-finetuned-kinyarwanda 次精调。
在 main Github repository 中可以找到更多信息和其他类似的模型。
这个模型基于Transformer,是在MasakhaNER数据集上进行了精调。这是一个命名实体识别数据集,包含了10种不同的非洲语言的大部分新闻文章。该模型进行了50轮的精调,最大序列长度为200,批次大小为32,学习率为5e-5。这个过程重复了5次(使用不同的随机种子),上传的模型在这5个种子中表现最好(测试集的综合F1值)。
这个模型是由我,Michael Beukman,在约翰内斯堡的威特沃特斯兰德大学进行的项目中进行了精调。这是第一个版本,截至2021年11月20日。该模型根据 Apache License, Version 2.0 进行许可。
如需了解更多关于模型的信息,包括训练脚本、详细结果和其他资源,请访问 main Github repository 。您可以通过在此存储库上提交问题来与我联系。
为了公开透明,报告所使用的资源,我们在这里列出了训练过程所需的时间以及重现此过程所需的最低资源。将每个模型在NER数据集上进行精调所需的时间在10到30分钟之间,并且是在NVIDIA RTX3090 GPU上执行的。要使用32的批次大小,至少需要14GB的GPU内存,尽管在批次大小为1时也可以将这些模型适应约6.5GB的VRAM中。
训练、评估和测试数据集直接取自MasakhaNER Github 存储库,几乎没有进行任何预处理,因为原始数据集已经具有很高的质量。使用这些数据的动机是因为它是“第一个针对10种非洲语言的命名实体识别(NER)的大型、公开可用的高质量数据集”( source )。高质量的数据以及介绍性论文所奠定的基础是使用该数据集的另一些原因。用于评估的专用测试集是从与训练数据相同分布中提取的,因此该模型可能不适用于其他分布,并且需要进一步进行测试以进行调查。数据的确切分布在 here 中有详细介绍。
这个模型的预期用途是用于自然语言处理的研究,如解释性或迁移学习。不支持在生产环境中使用此模型,因为它的泛化能力和性能有限。特别地,它不适用于可能影响人们的任何重要下游任务,因为模型的限制可能会造成损害。
这个模型只在一个(相对较小的)数据集上进行了训练,涵盖了一个任务(NER)在一个领域(新闻文章)和一段时间内。结果可能不具有一般性,并且如果在其他任务中使用,模型可能表现不佳或以一种不公平/有偏见的方式。尽管这个项目的目的是调查迁移学习,但对模型未经训练的语言的表现也会受到影响。
因为这个模型使用xlm-roberta-base作为起点(可能在特定语言上进行了领域自适应的精调),所以该模型的限制也可以适用于这个模型。这些限制可能包括对大多数训练数据的霸权观点有偏见,缺乏基础并且在其他语言上的结果不佳(可能由于训练数据不平衡)。
正如 Adelani et al. (2021) 所示,这些模型在处理超过3个单词的实体和不包含在训练数据中的实体时都遇到了困难。这可能导致模型倾向于不发现例如具有很多单词的人名,从而可能导致结果的误表示。同样,那些不常见并且可能在训练数据中找不到的名字(由于不同的语言)也会较少被预测到。
此外,此模型尚未在实践中进行验证,如果没有任何验证证明它能够按照预期执行,则可能会出现其他更加微妙的问题。
数据仅来自公开可用的新闻来源,可用数据应涵盖公众人物以及同意报道的人。请参阅原始的MasakhaNER论文以获取更多详细信息。
在对这个模型进行精调时,没有进行明确的伦理考虑或调整。
适应语言的模型在绝大多数情况下都表现出优于xlm-roberta-base的性能。我们的主要指标是所有NER类别的综合F1分数。
这些指标是针对MasakhaNER的测试集计算的,因此数据分布与训练集相似,因此这些结果不直接指示这些模型的泛化能力。我们发现从不同种子开始,迁移结果存在很大变化,表明迁移的精调过程可能不稳定。
所选的指标是为了与之前的工作保持一致,并便于研究。其他指标可能更适用于其他目的。
通常情况下,这个模型在“日期”类别上的表现不如其他类别,因此如果日期是关键因素,那么可能需要考虑并解决这个问题,例如收集和标注更多的数据。
这个特定模型的性能细节如下,与我们训练的其他模型进行了比较。所有这些指标都是在测试集上计算的,并选择了能够提供最佳综合F1分数的种子。前三列结果是对所有类别求平均,后面的4列提供了按类别细分的性能。
这个模型可以对令牌预测以下标签( source ):
Abbreviation | Description |
---|---|
O | Outside of a named entity |
B-DATE | Beginning of a DATE entity right after another DATE entity |
I-DATE | DATE entity |
B-PER | Beginning of a person’s name right after another person’s name |
I-PER | Person’s name |
B-ORG | Beginning of an organisation right after another organisation |
I-ORG | Organisation |
B-LOC | Beginning of a location right after another location |
I-LOC | Location |
Model Name | Staring point | Evaluation / Fine-tune Language | F1 | Precision | Recall | F1 (DATE) | F1 (LOC) | F1 (ORG) | F1 (PER) |
---|---|---|---|---|---|---|---|---|---|
12311321 (This model) | 12312321 | kin | 79.55 | 75.56 | 83.99 | 69.00 | 79.00 | 77.00 | 90.00 |
12313321 | 12314321 | kin | 76.31 | 72.64 | 80.37 | 70.00 | 76.00 | 75.00 | 84.00 |
12315321 | 12316321 | kin | 74.59 | 72.17 | 77.17 | 70.00 | 75.00 | 70.00 | 82.00 |
要使用此模型(或其他模型),您可以按照以下步骤进行操作,只需更改模型名称( source ):
from transformers import AutoTokenizer, AutoModelForTokenClassification from transformers import pipeline model_name = 'mbeukman/xlm-roberta-base-finetuned-kinyarwanda-finetuned-ner-kinyarwanda' tokenizer = AutoTokenizer.from_pretrained(model_name) model = AutoModelForTokenClassification.from_pretrained(model_name) nlp = pipeline("ner", model=model, tokenizer=tokenizer) example = "Ambasaderi wa EU mu Rwanda , Nicola Bellomo yagize ati “ Inkunga yacu ni imwe mu nkunga yagutse yiswe # TeamEurope ." ner_results = nlp(example) print(ner_results)