模型概述
模型特點
模型能力
使用案例
🚀 希臘語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 |



