模型简介
模型特点
模型能力
使用案例
🚀 希腊语BERT(GreekBERT)
GreekBERT是一个预训练的希腊语版本BERT语言模型,为希腊语的自然语言处理任务提供了强大的支持。
🚀 快速开始
要使用bert-base-greek-uncased-v1
模型,你需要安装transformers
库以及PyTorch或TensorFlow 2。可以使用以下命令进行安装:
pip install transformers
pip install (torch|tensorflow)
✨ 主要特性
- 丰富的预训练语料:使用了包括希腊语维基百科、欧洲议会会议记录平行语料库以及OSCAR等多个来源的语料进行预训练,未来还将纳入希腊立法和欧盟立法(希腊语翻译)的语料。
- 易于使用:通过Hugging Face的
transformers
库,可以轻松加载和使用该模型。 - 高性能表现:在命名实体识别和自然语言推理等下游任务中表现出色。
📦 安装指南
要安装使用GreekBERT所需的依赖,你可以使用以下命令:
pip install transformers
pip install (torch|tensorflow)
💻 使用示例
基础用法
from transformers import AutoTokenizer, AutoModel
tokenizer = AutoTokenizer.from_pretrained("nlpaueb/bert-base-greek-uncased-v1")
model = AutoModel.from_pretrained("nlpaueb/bert-base-greek-uncased-v1")
高级用法
以下示例展示了如何将预训练模型作为语言模型使用:
import torch
from transformers import *
# 加载模型和分词器
tokenizer_greek = AutoTokenizer.from_pretrained('nlpaueb/bert-base-greek-uncased-v1')
lm_model_greek = AutoModelWithLMHead.from_pretrained('nlpaueb/bert-base-greek-uncased-v1')
# ================ 示例 1 ================
text_1 = 'O ποιητής έγραψε ένα [MASK] .'
# 英文: 'The poet wrote a [MASK].'
input_ids = tokenizer_greek.encode(text_1)
print(tokenizer_greek.convert_ids_to_tokens(input_ids))
# ['[CLS]', 'o', 'ποιητης', 'εγραψε', 'ενα', '[MASK]', '.', '[SEP]']
outputs = lm_model_greek(torch.tensor([input_ids]))[0]
print(tokenizer_greek.convert_ids_to_tokens(outputs[0, 5].max(0)[1].item()))
# 最可能的 [MASK] 预测是 "song"
# ================ 示例 2 ================
text_2 = 'Είναι ένας [MASK] άνθρωπος.'
# 英文: 'He is a [MASK] person.'
input_ids = tokenizer_greek.encode(text_2)
print(tokenizer_greek.convert_ids_to_tokens(input_ids))
# ['[CLS]', 'ειναι', 'ενας', '[MASK]', 'ανθρωπος', '.', '[SEP]']
outputs = lm_model_greek(torch.tensor([input_ids]))[0]
print(tokenizer_greek.convert_ids_to_tokens(outputs[0, 3].max(0)[1].item()))
# 最可能的 [MASK] 预测是 "good"
# ================ 示例 3 ================
text_3 = 'Είναι ένας [MASK] άνθρωπος και κάνει συχνά [MASK].'
# 英文: 'He is a [MASK] person he does frequently [MASK].'
input_ids = tokenizer_greek.encode(text_3)
print(tokenizer_greek.convert_ids_to_tokens(input_ids))
# ['[CLS]', 'ειναι', 'ενας', '[MASK]', 'ανθρωπος', 'και', 'κανει', 'συχνα', '[MASK]', '.', '[SEP]']
outputs = lm_model_greek(torch.tensor([input_ids]))[0]
print(tokenizer_greek.convert_ids_to_tokens(outputs[0, 8].max(0)[1].item()))
# 第二个 [MASK] 最可能的预测是 "trips"
📚 详细文档
预训练语料
bert-base-greek-uncased-v1
的预训练语料包括:
- 维基百科的希腊语部分。
- 欧洲议会会议记录平行语料库的希腊语部分。
- OSCAR的希腊语部分,OSCAR是Common Crawl的清理版本。
未来版本还将包括:
预训练细节
- 使用Google BERT的GitHub仓库(https://github.com/google-research/bert)中提供的官方代码训练BERT。
- 使用Hugging Face的Transformers转换脚本将TF检查点和词汇表转换为所需格式,以便PyTorch和TF2用户能够用两行代码加载模型。
- 发布了一个类似于英语
bert-base-uncased
模型的版本(12层,768隐藏层,12头,1.1亿参数)。 - 选择遵循相同的训练设置:100万训练步骤,批次大小为256个长度为512的序列,初始学习率为1e - 4。
- 能够使用由TensorFlow研究云(TFRC)免费提供的单个Google Cloud TPU v3 - 8,并利用GCP研究信用。非常感谢这两个Google项目的支持!
你仍然可以从这个Google Drive文件夹访问原始的TensorFlow检查点。
下游任务评估
有关详细结果,请阅读文章: GREEK - BERT: The Greeks visiting Sesame Street. John Koutsikakis, Ilias Chalkidis, Prodromos Malakasiotis and Ion Androutsopoulos. In the Proceedings of the 11th Hellenic Conference on Artificial Intelligence (SETN 2020). Held Online. 2020. (https://arxiv.org/abs/2008.12014)
希腊语命名实体识别数据集上的命名实体识别
模型名称 | 微平均F1值 |
---|---|
BILSTM - CNN - CRF (Ma and Hovy, 2016) | 76.4 ± 2.07 |
M - BERT - UNCASED (Devlin et al., 2019) | 81.5 ± 1.77 |
M - BERT - CASED (Devlin et al., 2019) | 82.1 ± 1.35 |
XLM - R (Conneau et al., 2020) | 84.8 ± 1.50 |
GREEK - BERT (本模型) | 85.7 ± 1.00 |
XNLI上的自然语言推理
模型名称 | 准确率 |
---|---|
DAM (Parikh et al., 2016) | 68.5 ± 1.71 |
M - BERT - UNCASED (Devlin et al., 2019) | 73.9 ± 0.64 |
M - BERT - CASED (Devlin et al., 2019) | 73.5 ± 0.49 |
XLM - R (Conneau et al., 2020) | 77.3 ± 0.41 |
GREEK - BERT (本模型) | 78.6 ± 0.62 |
🔧 技术细节
在使用bert-base-greek-uncased-v1
之前,需要对文本进行预处理,将文本转换为小写并去除所有希腊语变音符号。不过现在默认分词器已原生支持预处理,无需再使用以下代码:
import unicodedata
def strip_accents_and_lowercase(s):
return ''.join(c for c in unicodedata.normalize('NFD', s)
if unicodedata.category(c) != 'Mn').lower()
accented_string = "Αυτή είναι η Ελληνική έκδοση του BERT."
unaccented_string = strip_accents_and_lowercase(accented_string)
print(unaccented_string) # αυτη ειναι η ελληνικη εκδοση του bert.
📄 许可证
如果你使用该模型,请引用以下内容:
@inproceedings{greek-bert,
author = {Koutsikakis, John and Chalkidis, Ilias and Malakasiotis, Prodromos and Androutsopoulos, Ion},
title = {GREEK-BERT: The Greeks Visiting Sesame Street},
year = {2020},
isbn = {9781450388788},
publisher = {Association for Computing Machinery},
address = {New York, NY, USA},
url = {https://doi.org/10.1145/3411408.3411440},
booktitle = {11th Hellenic Conference on Artificial Intelligence},
pages = {110–117},
numpages = {8},
location = {Athens, Greece},
series = {SETN 2020}
}
关于我们
雅典经济与商业大学自然语言处理小组致力于开发让计算机处理和生成自然语言文本的算法、模型和系统。
该小组目前的研究兴趣包括:
- 数据库、本体、文档集合和网络的问答系统,特别是生物医学问答。
- 从数据库和本体(特别是语义网络本体)生成自然语言。
- 文本分类,包括过滤垃圾邮件和滥用内容。
- 信息提取和观点挖掘,包括法律文本分析和情感分析。
- 希腊语自然语言处理工具,如解析器和命名实体识别器。
- 自然语言处理中的机器学习,特别是深度学习。
该小组隶属于雅典经济与商业大学信息学系信息处理实验室。
Ilias Chalkidis 代表 雅典经济与商业大学自然语言处理小组
| GitHub: @ilias.chalkidis | Twitter: @KiddoThe2B |



