英文

RobeCzech 的模型卡

如果您在分词器方面遇到问题,请查看 https://huggingface.co/ufal/robeczech-base/discussions/4#64b8f6a7f1f8e6ea5860b314

模型细节

模型描述

RobeCzech 是一个在捷克数据上训练的单语 RoBERTa 语言表示模型。

使用

直接使用

填充掩码任务。

下游使用

词形标注和词形还原,依存句法分析,命名实体识别和语义解析。

偏见、风险和局限性

对语言模型的偏见和公平性问题进行了大量研究(参见,例如, Sheng et al. (2021) Bender et al. (2021) )。模型生成的预测可能包含涉及受保护类别、身份特征以及敏感的社会和职业群体的令人不悦和有害的刻板印象。

推荐事项

用户(直接和下游)应了解模型的风险、偏见和局限性。需要更多信息以提供进一步的建议。

训练细节

训练数据

模型的创建者在 associated paper 中指出:

我们使用以下公开可用文本的集合对 RobeCzech 进行训练:

  • SYN v4,现代捷克语大型语料库,4,188M 个标记;
  • Czes,捷克报纸和杂志文章的集合,432M 个标记;
  • 来自捷克 Web 语料库的长度至少为 400 个标记的文档,使用 MorphoDiTa 进行分词,16M 个标记;
  • 使用 WikiExtractor 从捷克维基百科转储 20201020 中提取的纯文本,使用 MorphoDiTa 进行分词,123M 个标记。

所有这些语料库都包含完整的文档,尽管 SYN v4 是块打乱的(在一个文档中最多有 100 个字的块以保持句子边界被置换),总共包含 4,917M 个标记。

训练过程

预处理

使用字节级 BPE(BBPE)分词器将文本分词为子词,该分词器是在整个语料库上进行训练的,并将其词汇量限制为52,000个项目。

速度、大小、时间

模型的创建者在 associated paper 中指出:

训练的批大小为8,192,每个训练批由连续采样的句子组成,甚至跨文档边界,以保证每个样本的总长度最多为512个标记(FULL-SENTENCES 设置)。我们使用 Adam 优化器,β1 = 0.9,β2 = 0.98,以最小化掩码语言建模目标。

使用的软件

使用了 Fairseq 的实现进行训练。

评估

测试数据、因素和指标

测试数据

模型的创建者在 associated paper 中指出:

我们在五个 NLP 任务中评估 RobeCzech,其中三个任务利用冻结的上下文词嵌入,两个任务采用微调方法:

  • 词法分析和词形还原:冻结的上下文词嵌入,
  • 依存句法分析:冻结的上下文词嵌入,
  • 命名实体识别:冻结的上下文词嵌入,
  • 语义解析:微调,
  • 情感分析:微调。

结果

Model Morphosynt PDT3.5 (POS) (LAS) Morphosynt UD2.3 (XPOS) (LAS) NER CNEC1.1 (nested) (flat) Semant. PTG (Avg) (F1)
RobeCzech 98.50 91.42 98.31 93.77 87.82 87.47 92.36 80.13

环境影响

  • 硬件类型:8 个 QUADRO P5000 GPU
  • 使用时间:2190小时(约3个月)

引用

@InProceedings{10.1007/978-3-030-83527-9_17,
  author={Straka, Milan and N{\'a}plava, Jakub and Strakov{\'a}, Jana and Samuel, David},
  editor={Ek{\v{s}}tein, Kamil and P{\'a}rtl, Franti{\v{s}}ek and Konop{\'i}k, Miloslav},
  title={{RobeCzech: Czech RoBERTa, a Monolingual Contextualized Language Representation Model}},
  booktitle="Text, Speech, and Dialogue",
  year="2021",
  publisher="Springer International Publishing",
  address="Cham",
  pages="197--209",
  isbn="978-3-030-83527-9"
}

如何开始使用该模型

使用下面的代码开始使用该模型。

点击以展开
from transformers import AutoTokenizer, AutoModelForMaskedLM

tokenizer = AutoTokenizer.from_pretrained("ufal/robeczech-base")

model = AutoModelForMaskedLM.from_pretrained("ufal/robeczech-base")