language: sv
瑞典语BERT模型
瑞典国家图书馆/KBLab发布了三款基于BERT和ALBERT的预训练语言模型。这些模型训练数据约15-20GB文本(2亿句子,30亿词例),来源多样(书籍、新闻、政府出版物、瑞典维基百科和网络论坛),旨在提供具有代表性的瑞典文本BERT模型。完整说明文档将后续发布。
目前可用的三款模型:
- bert-base-swedish-cased (v1) - 采用与谷歌初始发布相同超参数训练的BERT模型
- bert-base-swedish-cased-ner (实验版) - 使用SUC 3.0数据集进行命名实体识别微调的BERT模型
- albert-base-swedish-cased-alpha (alpha版) - 瑞典语ALBERT模型的首次尝试
所有模型均为区分大小写版本,并采用全词掩码训练。
文件列表
TensorFlow版模型权重即将发布。
使用要求/安装说明
以下示例需要Huggingface Transformers 2.4.1和PyTorch 1.3.1或更高版本。对于Transformers<2.4.0版本,需手动实例化分词器并设置参数do_lower_case=False
和keep_accents=True
(ALBERT模型)。
创建运行环境请执行以下命令:
# git clone https://github.com/Kungbib/swedish-bert-models
# cd swedish-bert-models
# python3 -m venv venv
# source venv/bin/activate
# pip install --upgrade pip
# pip install -r requirements.txt
基础版瑞典语BERT
基于多源数据训练的标准BERT基础模型,词表量约5万。通过Huggingface Transformers加载:
from transformers import AutoModel,AutoTokenizer
tok = AutoTokenizer.from_pretrained('KBLab/bert-base-swedish-cased')
model = AutoModel.from_pretrained('KBLab/bert-base-swedish-cased')
瑞典语NER微调BERT
基于SUC 3.0数据集微调的模型。使用Huggingface管道快速加载。对于Transformers<2.4.1需单独加载分词器禁用小写转换:
from transformers import pipeline
nlp = pipeline('ner', model='KBLab/bert-base-swedish-cased-ner', tokenizer='KBLab/bert-base-swedish-cased-ner')
nlp('Idag släpper KB tre språkmodeller.')
输出示例(实体类型:TME
时间, PRS
人名, LOC
地点, EVN
事件, ORG
组织):
[{'word':'Idag','score':0.9998,'entity':'TME'},
{'word':'KB','score':0.9814,'entity':'ORG'}]
处理分词片段重组示例:
text = 'Engelbert tar Volvon till Tele2 Arena...'
l = []
for token in nlp(text):
if token['word'].startswith('##'):
l[-1]['word'] += token['word'][2:]
else:
l += [token]
ALBERT基础版
通过Transformers加载:
from transformers import AutoModel,AutoTokenizer
tok = AutoTokenizer.from_pretrained('KBLab/albert-base-swedish-cased-alpha'),
model = AutoModel.from_pretrained('KBLab/albert-base-swedish-cased-alpha')
致谢 ❤️
- 微调过程使用了斯德哥尔摩大学、于默奥大学和哥德堡大学瑞典语银行资源
- 预训练部分由KBLab完成,无版权内容训练获Google TensorFlow研究云(TFRC)支持
- 模型托管由Huggingface 🤗提供