🚀 芬兰语ConvBERT模型
本项目是一个基于芬兰语预训练的ConvBERT模型,采用替换标记检测(RTD)目标进行训练。它能学习芬兰语的内在表示,可用于下游任务特征提取。
🚀 快速开始
芬兰语ConvBERT是一个以自监督方式在大量芬兰语数据语料库上进行预训练的transformers模型。它仅在原始文本上进行预训练,无需人工标注,通过自动流程从文本中生成输入和标签。
✨ 主要特性
- 预训练目标:采用替换标记检测(RTD)目标进行预训练,与BERT的掩码语言建模(MLM)目标不同,该方法通过用从小型生成器模型采样的合理替代项替换一些标记来破坏输入,然后训练一个判别模型来预测损坏输入中的每个标记是否被生成器模型的样本替换,类似于生成对抗网络(GAN)。
- 模型结构:与BERT和ELECTRA模型相比,ConvBERT模型利用基于跨度的动态卷积来替换一些全局自注意力头,以建模局部输入序列依赖关系。这些卷积头与其余自注意力头一起形成一个新的混合注意力块,在全局和局部上下文学习方面更高效。
📦 安装指南
文档未提及具体安装步骤,暂不提供。
💻 使用示例
基础用法
以下是如何直接使用该模型进行填充掩码任务的示例:
>>> from transformers import pipeline
>>> unmasker = pipeline('fill-mask', model='Finnish-NLP/convbert-base-generator-finnish')
>>> unmasker("Moikka olen [MASK] kielimalli.")
[{'score': 0.08341152966022491,
'token': 4619,
'token_str': 'suomalainen',
'sequence': 'Moikka olen suomalainen kielimalli.'},
{'score': 0.02831297740340233,
'token': 25583,
'token_str': 'ranskalainen',
'sequence': 'Moikka olen ranskalainen kielimalli.'},
{'score': 0.027857203036546707,
'token': 37714,
'token_str': 'kiinalainen',
'sequence': 'Moikka olen kiinalainen kielimalli.'},
{'score': 0.027701903134584427,
'token': 21614,
'token_str': 'ruotsalainen',
'sequence': 'Moikka olen ruotsalainen kielimalli.'},
{'score': 0.026388710364699364,
'token': 591,
'token_str': 'hyvä',
'sequence': 'Moikka olen hyvä kielimalli.'}]
📚 详细文档
模型说明
芬兰语ConvBERT模型以自监督方式在大量芬兰语数据上进行预训练,通过替换标记检测(RTD)目标学习语言的内在表示,可用于下游任务特征提取。
预期用途与限制
- 用途:此生成器模型主要用于填充掩码任务。
- 限制:训练数据包含大量未过滤的互联网内容,模型可能存在有偏差的预测,且这种偏差会影响所有微调版本的模型。
训练数据
该芬兰语ConvBERT模型在五个数据集的组合上进行预训练:
原始数据集经过清理,过滤掉低质量和非芬兰语示例,这些清理后的数据集约有84GB文本。
训练过程
- 预处理:使用WordPiece进行分词,词汇表大小为50265,输入是512个连续标记的序列,文本不进行小写处理,模型区分大小写。
- 预训练:模型在由Google TPU Research Cloud赞助的TPUv3 - 8 VM上训练100万步,使用AdamW优化器,学习率为1e - 4,学习率预热20000步,之后线性衰减。训练代码来自官方ConvBERT仓库,并参考了这里的一些说明。
评估结果
评估结果请查看Finnish - NLP/convbert - base - finnish模型仓库。
🔧 技术细节
ConvBERT模型利用基于跨度的动态卷积来替换一些全局自注意力头,以建模局部输入序列依赖关系。这些卷积头与其余自注意力头一起形成一个新的混合注意力块,在全局和局部上下文学习方面更高效。
📄 许可证
本项目采用Apache - 2.0许可证。
致谢
本项目得益于Google通过TPU Research Cloud慷慨提供的计算资源。
团队成员
如有更多详情,欢迎联系我们🤗