KoELECTRA
1.0.0
韓語|英語

伊萊克特拉(Electra)學會了通過確定歧視器中的“真實”令牌或Replaced Token Detection 。該方法具有能夠了解所有輸入令牌的優點,並且與BERT相比,其性能更好。
Koelectra在34GB的韓語文本中學習了兩種模型: KoELECTRA-Base和KoELECTRA-Small 。
此外,無論是通過文字和模型S3上傳,都可以通過安裝Transformers庫來立即使用Koelectra。
| 模型 | 歧視者 | 發電機 | TensorFlow-V1 |
|---|---|---|---|
KoELECTRA-Base-v1 | 歧視者 | 發電機 | TensorFlow-V1 |
KoELECTRA-Small-v1 | 歧視者 | 發電機 | TensorFlow-V1 |
KoELECTRA-Base-v2 | 歧視者 | 發電機 | TensorFlow-V1 |
KoELECTRA-Small-v2 | 歧視者 | 發電機 | TensorFlow-V1 |
KoELECTRA-Base-v3 | 歧視者 | 發電機 | TensorFlow-V1 |
KoELECTRA-Small-v3 | 歧視者 | 發電機 | TensorFlow-V1 |
| 層 | 嵌入尺寸 | 隱藏尺寸 | #頭 | ||
|---|---|---|---|---|---|
KoELECTRA-Base | 歧視者 | 12 | 768 | 768 | 12 |
| 發電機 | 12 | 768 | 256 | 4 | |
KoELECTRA-Small | 歧視者 | 12 | 128 | 256 | 4 |
| 發電機 | 12 | 128 | 256 | 4 |
Wordpiece和代碼中使用的文字,而無需使用sendencece或mecab。| 詞彙Len | do_lower_case | |
|---|---|---|
| V1 | 32200 | 錯誤的 |
| v2 | 32200 | 錯誤的 |
| V3 | 35000 | 錯誤的 |
v1和v2 ,我們使用了大約14G語料庫(2.6b代幣)。 (新聞,維基,樹維基)v3 ,我們使用了大約20克的其他馬匹。 (報紙,章魚,口語,信使,網絡)| 模型 | 批量大小 | 火車步驟 | LR | Max Seq Len | 發電機大小 | 火車時間 |
|---|---|---|---|---|---|---|
Base v1,2 | 256 | 700k | 2E-4 | 512 | 0.33 | 7d |
Base v3 | 256 | 1.5m | 2E-4 | 512 | 0.33 | 14d |
Small v1,2 | 512 | 300k | 5E-4 | 512 | 1.0 | 3D |
Small v3 | 512 | 800k | 5E-4 | 512 | 1.0 | 7d |
對於KoELECTRA-Small模型,使用了與原始紙中的ELECTRA-Small++相同的選項。
KoELECTRA-Base不同,生成器和鑑別器的模型大小(= generator_hidden_size size)是相同的。除了Batch size和Train steps外,我也採用了原始紙的超參數。
我了解了使用TPU V3-8 ,GCP中的TPU用法總結在[使用TPU進行預處理]中。
它正式支持來自Transformers v2.8.0的ElectraModel 。
該模型已經上傳到HuggingFace S3 ,因此您可以立即使用它,而無需直接下載模型。
ElectraModel類似於BertModel ,除了它不會返回pooled_output 。
Electra使用discriminator進行填充。
from transformers import ElectraModel , ElectraTokenizer
model = ElectraModel . from_pretrained ( "monologg/koelectra-base-discriminator" ) # KoELECTRA-Base
model = ElectraModel . from_pretrained ( "monologg/koelectra-small-discriminator" ) # KoELECTRA-Small
model = ElectraModel . from_pretrained ( "monologg/koelectra-base-v2-discriminator" ) # KoELECTRA-Base-v2
model = ElectraModel . from_pretrained ( "monologg/koelectra-small-v2-discriminator" ) # KoELECTRA-Small-v2
model = ElectraModel . from_pretrained ( "monologg/koelectra-base-v3-discriminator" ) # KoELECTRA-Base-v3
model = ElectraModel . from_pretrained ( "monologg/koelectra-small-v3-discriminator" ) # KoELECTRA-Small-v3 from transformers import TFElectraModel
model = TFElectraModel . from_pretrained ( "monologg/koelectra-base-v3-discriminator" , from_pt = True ) > >> from transformers import ElectraTokenizer
> >> tokenizer = ElectraTokenizer . from_pretrained ( "monologg/koelectra-base-v3-discriminator" )
> >> tokenizer . tokenize ( "[CLS] 한국어 ELECTRA를 공유합니다. [SEP]" )
[ '[CLS]' , '한국어' , 'EL' , '##EC' , '##TRA' , '##를' , '공유' , '##합니다' , '.' , '[SEP]' ]
> >> tokenizer . convert_tokens_to_ids ([ '[CLS]' , '한국어' , 'EL' , '##EC' , '##TRA' , '##를' , '공유' , '##합니다' , '.' , '[SEP]' ])
[ 2 , 11229 , 29173 , 13352 , 25541 , 4110 , 7824 , 17788 , 18 , 3 ]這是配置設置的結果,如果您添加更多的超參數調整,則可以獲得更好的性能。
請參閱[Finetung]以獲取代碼和詳細信息
| NSMC (ACC) | naver ner (F1) | 爪子 (ACC) | 科恩利 (ACC) | 科斯特 (斯皮爾曼) | 問題對 (ACC) | Korquad(DEV) (EM/F1) | 韓國討厭的語音(開發人員) (F1) | |
|---|---|---|---|---|---|---|---|---|
| 科伯特 | 89.59 | 87.92 | 81.25 | 79.62 | 81.59 | 94.85 | 51.75 / 79.15 | 66.21 |
| XLM-Roberta-bas | 89.03 | 86.65 | 82.80 | 80.23 | 78.45 | 93.80 | 64.70 / 88.94 | 64.06 |
| 漢伯特 | 90.06 | 87.70 | 82.95 | 80.32 | 82.73 | 94.72 | 78.74 / 92.02 | 68.32 |
| koelectra-base | 90.33 | 87.18 | 81.70 | 80.64 | 82.00 | 93.54 | 60.86 / 89.28 | 66.09 |
| koelectra-base-v2 | 89.56 | 87.16 | 80.70 | 80.72 | 82.30 | 94.85 | 84.01 / 92.40 | 67.45 |
| Koelectra-Base-V3 | 90.63 | 88.11 | 84.45 | 82.24 | 85.53 | 95.25 | 84.83 / 93.45 | 67.61 |
| NSMC (ACC) | naver ner (F1) | 爪子 (ACC) | 科恩利 (ACC) | 科斯特 (斯皮爾曼) | 問題對 (ACC) | Korquad(DEV) (EM/F1) | 韓國討厭的語音(開發人員) (F1) | |
|---|---|---|---|---|---|---|---|---|
| Distilkobert | 88.60 | 84.65 | 60.50 | 72.00 | 72.59 | 92.48 | 54.40 / 77.97 | 60.72 |
| Koelectra-small | 88.83 | 84.38 | 73.10 | 76.45 | 76.56 | 93.01 | 58.04 / 86.76 | 63.03 |
| koelectra-small-v2 | 88.83 | 85.00 | 72.35 | 78.14 | 77.84 | 93.27 | 81.43 / 90.46 | 60.14 |
| koelectra-small-v3 | 89.36 | 85.40 | 77.45 | 78.60 | 80.79 | 94.85 | 82.11 / 91.13 | 63.07 |
2020年4月27日
KorSTS , QuestionPair ),並為五個現有子任務更新了結果。2020年6月3日
KoELECTRA-v2是使用Enlipleai PLM中使用的詞彙創建的。基本和小型模型都在KorQuaD中提高了性能。2020年10月9日
모두의 말뭉치製作了KoELECTRA-v3 。詞彙也是使用Mecab和Wordpiece新創建的。ElectraForSequenceClassification的官方支持Huggingface Transformers現有的子任務結果是新更新。我們還添加了韓國討厭的語音的結果。 from transformers import ElectraModel , ElectraTokenizer
model = ElectraModel . from_pretrained ( "monologg/koelectra-base-v3-discriminator" )
tokenizer = ElectraTokenizer . from_pretrained ( "monologg/koelectra-base-v3-discriminator" )2021年5月26日
torch<=1.4未加載的問題(修改模型後完成的重新加載)(相關問題)tensorflow v2模型上傳到HuggingFace Hub( tf_model.h5 )2021年10月20日
tf_model.h5中,有幾個問題直接從刪除的部分加載(從加載from_pt=True ) Koelectra是由Tensorflow Research Cloud(TFRC)程序的雲TPU支持生產的。 KoELECTRA-v3也是在所有馬匹的幫助下生產的。
如果您使用此代碼進行研究,請引用如下。
@misc { park2020koelectra ,
author = { Park, Jangwon } ,
title = { KoELECTRA: Pretrained ELECTRA Model for Korean } ,
year = { 2020 } ,
publisher = { GitHub } ,
journal = { GitHub repository } ,
howpublished = { url{https://github.com/monologg/KoELECTRA} }
}