Coreano | Inglés

El Electra aprende a Replaced Token Detection , determinando si es un token "real" real "falso" en el discriminador. Este método tiene la ventaja de poder aprender sobre todos los tokens de entrada, y tiene un mejor rendimiento en comparación con Bert.
Koelectra aprendió en 34 GB de texto coreano y distribuyó dos modelos: KoELECTRA-Base y KoELECTRA-Small .
Además, Koelectra se puede usar inmediatamente instalando la biblioteca Transformers , independientemente del sistema operativo a través de la obra de palabras y la carga del modelo S3 .
| Modelo | Discriminado | Generador | Tensorflow-v1 |
|---|---|---|---|
KoELECTRA-Base-v1 | Discriminado | Generador | Tensorflow-v1 |
KoELECTRA-Small-v1 | Discriminado | Generador | Tensorflow-v1 |
KoELECTRA-Base-v2 | Discriminado | Generador | Tensorflow-v1 |
KoELECTRA-Small-v2 | Discriminado | Generador | Tensorflow-v1 |
KoELECTRA-Base-v3 | Discriminado | Generador | Tensorflow-v1 |
KoELECTRA-Small-v3 | Discriminado | Generador | Tensorflow-v1 |
| Capas | Tamaño de incrustación | Tamaño oculto | # cabezas | ||
|---|---|---|---|---|---|
KoELECTRA-Base | Discriminado | 12 | 768 | 768 | 12 |
| Generador | 12 | 768 | 256 | 4 | |
KoELECTRA-Small | Discriminado | 12 | 128 | 256 | 4 |
| Generador | 12 | 128 | 256 | 4 |
Wordpiece utilizada en el documento original y el código sin usar la Sentencece o MECAB.| Vocab | do_lower_case | |
|---|---|---|
| V1 | 32200 | FALSO |
| V2 | 32200 | FALSO |
| v3 | 35000 | FALSO |
v1 y v2 , utilizamos aproximadamente 14G corpus (tokens 2.6B). (Noticias, wiki, wiki de árbol)v3 , utilizamos caballos adicionales de aproximadamente 20 g . (Periódico, pulpo, hablado, mensajero, web)| Modelo | Tamaño por lotes | Pasos de tren | LR | Max seq len | Tamaño del generador | Tiempo de tren |
|---|---|---|---|---|---|---|
Base v1,2 | 256 | 700k | 2E-4 | 512 | 0.33 | 7d |
Base v3 | 256 | 1,5 m | 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 |
En el caso del modelo KoELECTRA-Small , se utilizó la misma opción que ELECTRA-Small++ en el papel original.
KoELECTRA-Base , el tamaño del modelo de generador y discriminador (= generator_hidden_size ) es el mismo. Excepto por Batch size y Train steps , tomé lo mismo que el hiperparámetro del papel original .
Aprendí a usar la TPU V3-8 , y el uso de TPU en el GCP se resume en [usando TPU para el pretrenamiento].
Admite oficialmente ElectraModel de Transformers v2.8.0 .
El modelo ya está cargado en el Huggingface S3 , por lo que puede usarlo inmediatamente sin tener que descargar el modelo directamente .
ElectraModel es similar a BertModel , excepto que no regresa pooled_output .
Electra usa discriminator para fineciring.
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 ]Este es el resultado de la configuración de la configuración tal como es, y si agrega más ajuste de hiperparameter, puede obtener un mejor rendimiento.
Consulte [Finetung] para obtener código y detalles
| NSMC (ACC) | Naver Ner (F1) | Patas (ACC) | Kornli (ACC) | Korsts (Lancero) | Pareja de preguntas (ACC) | Korquad (Dev) (EM/F1) | Dato de odio coreano (desarrollador) (F1) | |
|---|---|---|---|---|---|---|---|---|
| Kobert | 89.59 | 87.92 | 81.25 | 79.62 | 81.59 | 94.85 | 51.75 / 79.15 | 66.21 |
| XLM-ROBERTA-BASE | 89.03 | 86.65 | 82.80 | 80.23 | 78.45 | 93.80 | 64.70 / 88.94 | 64.06 |
| Hanbert | 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) | Patas (ACC) | Kornli (ACC) | Korsts (Lancero) | Pareja de preguntas (ACC) | Korquad (Dev) (EM/F1) | Dato de odio coreano (desarrollador) (F1) | |
|---|---|---|---|---|---|---|---|---|
| Distilkobert | 88.60 | 84.65 | 60.50 | 72.00 | 72.59 | 92.48 | 54.40 / 77.97 | 60.72 |
| Koelectra-llamativo | 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 |
27 de abril de 2020
KorSTS , QuestionPair ) y actualizamos los resultados para cinco subtareas existentes.3 de junio de 2020
KoELECTRA-v2 se creó utilizando vocabulario utilizado en Enlipleai PLM. Tanto la base como los modelos pequeños han mejorado el rendimiento en KorQuaD .9 de octubre de 2020
KoELECTRA-v3 usando 모두의 말뭉치 adicionales. Vocab también se crea recientemente usando Mecab y Wordpiece .ElectraForSequenceClassification of Huggingface Transformers los resultados de la subtarea existentes se actualizan recientemente. También agregamos los resultados de la discurso coreano-odio. from transformers import ElectraModel , ElectraTokenizer
model = ElectraModel . from_pretrained ( "monologg/koelectra-base-v3-discriminator" )
tokenizer = ElectraTokenizer . from_pretrained ( "monologg/koelectra-base-v3-discriminator" )26 de mayo de 2021
torch<=1.4 problemas que no están cargados (carga de re -up completa después del modelo de modificación) (problema relacionado)tensorflow v2 Modelo cargado en Huggingface Hub ( tf_model.h5 )20 de octubre de 2021
tf_model.h5 , hay varios problemas que se cargan directamente desde la parte de la eliminación (desde la carga con from_pt=True ) Koelectra se produjo con soporte de TPU en la nube del programa TensorFlow Research Cloud (TFRC) . KoELECTRA-v3 también se produjo con la ayuda de todos los caballos de caballos .
Si está utilizando este código para la investigación, cite de la siguiente manera.
@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} }
}