🚀 斯洛伐克BERT(基础大小模型)
斯洛伐克BERT是一个预训练模型,它使用掩码语言建模(MLM)目标对斯洛伐克语进行训练。该模型区分大小写,例如会区分“slovensko”和“Slovensko”。
🚀 快速开始
你可以使用此模型直接进行掩码语言建模:
from transformers import pipeline
unmasker = pipeline('fill-mask', model='gerulata/slovakbert')
unmasker("Deti sa <mask> na ihrisku.")
[{'sequence': 'Deti sa hrali na ihrisku.',
'score': 0.6355380415916443,
'token': 5949,
'token_str': ' hrali'},
{'sequence': 'Deti sa hrajú na ihrisku.',
'score': 0.14731724560260773,
'token': 9081,
'token_str': ' hrajú'},
{'sequence': 'Deti sa zahrali na ihrisku.',
'score': 0.05016357824206352,
'token': 32553,
'token_str': ' zahrali'},
{'sequence': 'Deti sa stretli na ihrisku.',
'score': 0.041727423667907715,
'token': 5964,
'token_str': ' stretli'},
{'sequence': 'Deti sa učia na ihrisku.',
'score': 0.01886524073779583,
'token': 18099,
'token_str': ' učia'}]
以下是在PyTorch中使用此模型获取给定文本特征的方法:
from transformers import RobertaTokenizer, RobertaModel
tokenizer = RobertaTokenizer.from_pretrained('gerulata/slovakbert')
model = RobertaModel.from_pretrained('gerulata/slovakbert')
text = "Text ktorý sa má embedovať."
encoded_input = tokenizer(text, return_tensors='pt')
output = model(**encoded_input)
在TensorFlow中的使用方法:
from transformers import RobertaTokenizer, TFRobertaModel
tokenizer = RobertaTokenizer.from_pretrained('gerulata/slovakbert')
model = TFRobertaModel.from_pretrained('gerulata/slovakbert')
text = "Text ktorý sa má embedovať."
encoded_input = tokenizer(text, return_tensors='tf')
output = model(encoded_input)
或者像这样从模型中提取信息:
from transformers import pipeline
unmasker = pipeline('fill-mask', model='gerulata/slovakbert')
unmasker("Slovenské národne povstanie sa uskutočnilo v roku <mask>.")
[{'sequence': 'Slovenske narodne povstanie sa uskutočnilo v roku 1944.',
'score': 0.7383289933204651,
'token': 16621,
'token_str': ' 1944'},...]
✨ 主要特性
- 基于掩码语言建模(MLM)目标对斯洛伐克语进行预训练。
- 区分大小写,能够区分不同大小写形式的词汇。
📚 详细文档
预期用途和限制
你可以使用原始模型进行掩码语言建模,但它主要用于在下游任务上进行微调。
⚠️ 重要提示
该模型未对 “ 和 ”(直接引号)字符进行训练,因此在对文本进行分词之前,建议将所有 “ 和 ”(直接引号)替换为单个 "(双引号)。
训练数据
斯洛伐克BERT模型在以下数据集上进行了预训练:
- 维基百科(326MB文本)
- OpenSubtitles(415MB文本)
- Oscar(4.6GB文本)
- Gerulata WebCrawl(12.7GB文本)
- Gerulata Monitoring(214MB文本)
- blbec.online(4.5GB文本)
文本经过以下步骤处理:
- 将URL和电子邮件地址替换为特殊标记(“url”,“email”)。
- 简化拉长的标点符号(例如将 -- 简化为 -)。
- 删除Markdown语法。
- 消除括号内的所有文本内容,以减少标记和编程语言文本的数量。
我们将得到的语料库分割成句子并去除重复项,得到1.816亿个唯一句子。最终语料库总共有19.35GB的文本。
预训练
该模型在fairseq中使用4块Nvidia A100 GPU进行了300K步的训练,批次大小为512,序列长度为512。使用的优化器是Adam,学习率为5e - 4,\(\beta_{1} = 0.9\),\(\beta_{2} = 0.98\),\(\epsilon = 1e - 6\),权重衰减为0.01,丢弃率为0.1,学习率在10K步内进行预热,之后线性衰减。我们使用了16位浮点精度。
🔧 技术细节
模型训练的技术细节如下:
属性 |
详情 |
模型类型 |
基于掩码语言建模(MLM)目标的预训练模型 |
训练数据 |
维基百科、OpenSubtitles、Oscar、Gerulata WebCrawl、Gerulata Monitoring、blbec.online |
训练设备 |
4 x Nvidia A100 GPUs |
训练步数 |
300K |
批次大小 |
512 |
序列长度 |
512 |
优化器 |
Adam |
学习率 |
5e - 4 |
\(\beta_{1}\) |
0.9 |
\(\beta_{2}\) |
0.98 |
\(\epsilon\) |
1e - 6 |
权重衰减 |
0.01 |
丢弃率 |
0.1 |
学习率预热步数 |
10K |
学习率衰减方式 |
线性衰减 |
浮点精度 |
16位 |
📄 许可证
本项目采用MIT许可证。
关于我们
Gerulata Technologies是一家科技公司,致力于提供对抗虚假信息和恶意宣传的工具。
在Gerulata,我们专注于提供最先进的人工智能工具,这些工具可以赋能人类分析师,使他们能够做出明智的决策。
我们的工具可以对在线活动进行监测和分析,以及检测和跟踪虚假信息和恶意宣传活动。通过我们的产品,我们的客户能够更好地实时识别和应对威胁。
BibTeX引用和引用信息
如果您发现我们的资源或论文有用,请考虑在您的论文中包含以下引用。
- https://arxiv.org/abs/2109.15254
@misc{pikuliak2021slovakbert,
title={SlovakBERT: Slovak Masked Language Model},
author={Matúš Pikuliak and Štefan Grivalský and Martin Konôpka and Miroslav Blšták and Martin Tamajka and Viktor Bachratý and Marián Šimko and Pavol Balážik and Michal Trnka and Filip Uhlárik},
year={2021},
eprint={2109.15254},
archivePrefix={arXiv},
primaryClass={cs.CL}
}