ELECTRA[[electra]]
๊ฐ์[[overview]]
ELECTRA ๋ชจ๋ธ์ ELECTRA: Pre-training Text Encoders as Discriminators Rather Than Generators ๋ ผ๋ฌธ์์ ์ ์๋์์ต๋๋ค. ELECTRA๋ ๋๊ฐ์ง ํธ๋์คํฌ๋จธ ๋ชจ๋ธ์ธ ์์ฑ ๋ชจ๋ธ๊ณผ ํ๋ณ ๋ชจ๋ธ์ ํ์ต์ํค๋ ์๋ก์ด ์ฌ์ ํ์ต ์ ๊ทผ๋ฒ์ ๋๋ค. ์์ฑ ๋ชจ๋ธ์ ์ญํ ์ ์ํ์ค์ ์๋ ํ ํฐ์ ๋์ฒดํ๋ ๊ฒ์ด๋ฉฐ ๋ง์คํน๋ ์ธ์ด ๋ชจ๋ธ๋ก ํ์ต๋ฉ๋๋ค. ์ฐ๋ฆฌ๊ฐ ๊ด์ฌ์ ๊ฐ์ง ํ๋ณ ๋ชจ๋ธ์ ์ํ์ค์์ ์ด๋ค ํ ํฐ์ด ์์ฑ ๋ชจ๋ธ์ ์ํด ๋์ฒด๋์๋์ง ์๋ณํฉ๋๋ค.
๋ ผ๋ฌธ์ ์ด๋ก์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค:
BERT์ ๊ฐ์ ๋ง์คํน๋ ์ธ์ด ๋ชจ๋ธ(MLM) ์ฌ์ ํ์ต ๋ฐฉ๋ฒ์ ์ผ๋ถ ํ ํฐ์ [MASK] ํ ํฐ์ผ๋ก ๋ฐ๊ฟ ์์์ํค๊ณ ๋ ๋ค, ๋ชจ๋ธ์ด ๋ค์ ์๋ณธ ํ ํฐ์ ๋ณต์ํ๋๋ก ํ์ตํฉ๋๋ค. ์ด๋ฐ ๋ฐฉ์์ ๋ค์ด์คํธ๋ฆผ NLP ์์ ์ ์ ์ดํ ๋ ์ข์ ์ฑ๋ฅ์ ๋ด์ง๋ง, ํจ๊ณผ์ ์ผ๋ก ์ฌ์ฉํ๊ธฐ ์ํด์๋ ์ผ๋ฐ์ ์ผ๋ก ๋ง์ ์์ ์ฐ์ฐ์ด ํ์ํฉ๋๋ค. ๋ฐ๋ผ์ ๋์์ผ๋ก, ๋์ฒด ํ ํฐ ํ์ง๋ผ๊ณ ๋ถ๋ฆฌ๋ ์ํ-ํจ๊ณผ์ ์ธ ์ฌ์ ํ์ต์ ์ ์ํฉ๋๋ค. ์ฐ๋ฆฌ์ ๋ฐฉ๋ฒ๋ก ์ ์ ๋ ฅ์ ๋ง์คํน์ ํ๋ ๋์ ์ ์ํ ์์ฑ ๋ชจ๋ธ์ ๊ทธ๋ด๋ฏํ ๋์ ํ ํฐ์ผ๋ก ์์์ํต๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋์, ๋ชจ๋ธ์ด ์์๋ ํ ํฐ์ ์๋ ํ ํฐ์ ์์ธกํ๋๋ก ํ๋ จ์ํค๋ ๋์ , ํ๋ณ ๋ชจ๋ธ์ ๊ฐ๊ฐ์ ํ ํฐ์ด ์์ฑ ๋ชจ๋ธ์ ์ํ๋ก ์์๋์๋์ง ์๋์ง ํ์ตํฉ๋๋ค. ์คํ๋ค์ ํตํด ์ด ์๋ก์ด ์ฌ์ ํ์ต ๋ฐฉ์์ ๋ง์คํน๋ ์ผ๋ถ ํ ํฐ์๋ง ์ ์ฉ๋๋ ๊ธฐ์กด ๋ฐฉ์๊ณผ ๋ฌ๋ฆฌ ๋ชจ๋ ์ ๋ ฅ ํ ํฐ์ ๋ํด ํ์ต์ด ์ด๋ค์ง๊ธฐ ๋๋ฌธ์ ๋ง์คํน๋ ์ธ์ด ๋ชจ๋ธ(MLM)๋ณด๋ค ๋ ํจ์จ์ ์์ ์ ์ฆํ์์ต๋๋ค. ๊ฒฐ๊ณผ์ ์ผ๋ก ์๊ฐ๋ ๋ฐฉ์์ด ๊ฐ์ ๋ชจ๋ธ ํฌ๊ธฐ, ๋ฐ์ดํฐ, ์ฐ์ฐ๋์ ๊ฐ์ง BERT๋ชจ๋ธ๋ก ํ์ตํ ๊ฒฐ๊ณผ๋ฅผ ์๋ํ๋ ๋ฌธ๋งฅ ํํ ํ์ต์ ํ ์ ์๋ค๋ ๊ฒ์ ํ์ธํ์ต๋๋ค. ํนํ ์์ ๋ชจ๋ธ์์ ์ฑ๋ฅ ํฅ์์ด ๋๋๋ฌ์ง๋ฉฐ, ์๋ฅผ ๋ค์ด GPU ํ ๋๋ก 4์ผ๊ฐ ํ์ตํ ๋ชจ๋ธ์ด 30๋ฐฐ ๋ ๋ง์ ๊ณ์ฐ ์์์ ์ฌ์ฉํ GPT๋ณด๋ค GLUE ์์ฐ์ด ์ดํด ๋ฒค์น๋งํฌ์์ ๋ ๋์ ์ฑ๋ฅ์ ๋ณด์ ๋๋ค. ๋๊ท๋ชจ ํ๊ฒฝ์์๋ ์ ํจํ๋ฉฐ ๋ ์ ์ ์ฐ์ฐ๋์ผ๋ก RoBERTa์ XLNet๊ณผ ๋น์ทํ ์ฑ๋ฅ์ ๋ผ ์ ์์ผ๋ฉฐ, ๋์ผํ ์ฐ์ฐ๋์ ๊ฐ์ง ๊ฒฝ์ฐ ์ด๋ค์ ์ฑ๋ฅ์ ๋ฅ๊ฐํฉ๋๋ค.
์ด ๋ชจ๋ธ์ lysandre์ด ๊ธฐ์ฌํ์ต๋๋ค. ์๋ณธ ์ฝ๋๋ ์ด๊ณณ์์ ์ฐพ์๋ณด์ค ์ ์์ต๋๋ค.
์ฌ์ฉ ํ[[usage-tips]]
- ELECTRA๋ ์ฌ์ ํ์ต ๋ฐฉ๋ฒ์ผ๋ก ๊ธฐ๋ณธ ๋ชจ๋ธ์ธ BERT์ ๊ตฌ์กฐ์ ๊ฑฐ์ ์ฐจ์ด๊ฐ ์์ต๋๋ค. ์ ์ผํ ์ฐจ์ด๋ ์๋ฒ ๋ฉ ํฌ๊ธฐ์ ํ๋ ํฌ๊ธฐ๋ฅผ ๊ตฌ๋ถํ๋ค๋ ์ ์ ๋๋ค. ์๋ฒ ๋ฉ ํฌ๊ธฐ๋ ์ผ๋ฐ์ ์ผ๋ก ๋ ์๊ณ , ํ๋ ํฌ๊ธฐ๋ ๋ ํฝ๋๋ค. ์๋ฒ ๋ฉ์์ ์๋ฒ ๋ฉ ํฌ๊ธฐ๋ฅผ ํ๋ ํฌ๊ธฐ๋ก ๋ณํํ๊ธฐ ์ํด ์ถ๊ฐ๋ก ์ ํ ๋ณํ ์ธต์ด ์ฌ์ฉ๋ฉ๋๋ค. ์๋ฒ ๋ฉ ํฌ๊ธฐ์ ํ๋ ํฌ๊ธฐ๊ฐ ๋์ผํ ๊ฒฝ์ฐ์๋ ์ด ์ ํ ๋ณํ ์ธต์ด ํ์ํ์ง ์์ต๋๋ค.
- ELECTRA๋ ๋ ๋ค๋ฅธ (์์) ๋ง์คํน๋ ์ธ์ด ๋ชจ๋ธ์ ์ฌ์ฉํด ์ฌ์ ํ์ต ๋ ํธ๋์คํฌ๋จธ ๋ชจ๋ธ์ ๋๋ค. ์์ ์ธ์ด ๋ชจ๋ธ์ด ์ ๋ ฅ ํ ์คํธ์ ์ผ๋ถ๋ฅผ ๋ฌด์์๋ก ๋ง์คํนํ๊ณ , ๊ทธ ์๋ฆฌ์ ์๋ก์ด ํ ํฐ์ ์ฝ์ ํฉ๋๋ค. ELECTRA๋ ์๋ ํ ํฐ๊ณผ ๋์ฒด๋ ํ ํฐ์ ๊ตฌ๋ถํ๋ ์ญํ ์ ์ํํฉ๋๋ค. GAN ํ๋ จ๊ณผ ๋น์ทํ์ง๋ง, ์์ฑ ๋ชจ๋ธ์ ELECTRA ๋ชจ๋ธ์ ์์ด๋ ๊ฒ์ด ์๋๋ผ ์๋ ํ ์คํธ๋ฅผ ๋ณต์ํ๋ ๋ชฉํ๋ก ๋ช ๋จ๊ณ ํ์ตํฉ๋๋ค. ๊ทธ ํ ELECTRA๊ฐ ํ์ต์ ํ๊ฒ ๋ฉ๋๋ค.
- ๊ตฌ๊ธ ๋ฆฌ์์น์ ๊ตฌํ์ผ๋ก ์ ์ฅ๋ ELECTRA checkpoints๋ ์์ฑ ๋ชจ๋ธ๊ณผ ํ๋ณ ๋ชจ๋ธ์ ํฌํจํฉ๋๋ค. ๋ณํ ์คํฌ๋ฆฝํธ์์๋ ์ฌ์ฉ์๊ฐ ์ด๋ค ๋ชจ๋ธ์ ์ด๋ค ์ํคํ
์ฒ๋ก ๋ด๋ณด๋ผ์ง ๋ช
์ํด์ผ ํฉ๋๋ค. ์ผ๋จ Hugging Face ํฌ๋งท์ผ๋ก ๋ณํ๋๋ฉด, ์ด ์ฒดํฌํฌ์ธํธ๋ค์ ๋ชจ๋ ELECTRA ๋ชจ๋ธ์์ ๋ถ๋ฌ์ฌ ์ ์์ต๋๋ค. ์ฆ, ํ๋ณ ๋ชจ๋ธ์ [
ElectraForMaskedLM] ๋ชจ๋ธ์, ์์ฑ ๋ชจ๋ธ์ [ElectraForPreTraining]๋ชจ๋ธ์ ๋ถ๋ฌ์ฌ ์ ์๋ค๋ ์๋ฏธ์ ๋๋ค. (๋จ, ์์ฑ ๋ชจ๋ธ์๋ ๋ถ๋ฅ ํค๋๊ฐ ์กด์ฌํ์ง ์๊ธฐ ๋๋ฌธ์, ํด๋น ๋ถ๋ถ์ ๋ฌด์์๋ก ์ด๊ธฐํ๋ฉ๋๋ค.)
์ฐธ๊ณ ์๋ฃ[[resources]]
- ํ ์คํธ ๋ถ๋ฅ ๊ฐ์ด๋
- ํ ํฐ ๋ถ๋ฅ ๊ฐ์ด๋
- ์ง์ ์๋ต ๊ฐ์ด๋
- ์ธ๊ณผ ์ธ์ด ๋ชจ๋ธ๋ง ๊ฐ์ด๋
- ๋ง์คํน๋ ์ธ์ด ๋ชจ๋ธ๋ง ๊ฐ์ด๋
- ๊ฐ๊ด์ ๋ฌธ์ ๊ฐ์ด๋
ElectraConfig
[[autodoc]] ElectraConfig
ElectraTokenizer
[[autodoc]] ElectraTokenizer
ElectraTokenizerFast
[[autodoc]] ElectraTokenizerFast
Electra specific outputs
[[autodoc]] models.electra.modeling_electra.ElectraForPreTrainingOutput
[[autodoc]] models.electra.modeling_tf_electra.TFElectraForPreTrainingOutput
ElectraModel
[[autodoc]] ElectraModel - forward
ElectraForPreTraining
[[autodoc]] ElectraForPreTraining - forward
ElectraForCausalLM
[[autodoc]] ElectraForCausalLM - forward
ElectraForMaskedLM
[[autodoc]] ElectraForMaskedLM - forward
ElectraForSequenceClassification
[[autodoc]] ElectraForSequenceClassification - forward
ElectraForMultipleChoice
[[autodoc]] ElectraForMultipleChoice - forward
ElectraForTokenClassification
[[autodoc]] ElectraForTokenClassification - forward
ElectraForQuestionAnswering
[[autodoc]] ElectraForQuestionAnswering - forward
TFElectraModel
[[autodoc]] TFElectraModel - call
TFElectraForPreTraining
[[autodoc]] TFElectraForPreTraining - call
TFElectraForMaskedLM
[[autodoc]] TFElectraForMaskedLM - call
TFElectraForSequenceClassification
[[autodoc]] TFElectraForSequenceClassification - call
TFElectraForMultipleChoice
[[autodoc]] TFElectraForMultipleChoice - call
TFElectraForTokenClassification
[[autodoc]] TFElectraForTokenClassification - call
TFElectraForQuestionAnswering
[[autodoc]] TFElectraForQuestionAnswering - call
FlaxElectraModel
[[autodoc]] FlaxElectraModel - call
FlaxElectraForPreTraining
[[autodoc]] FlaxElectraForPreTraining - call
FlaxElectraForCausalLM
[[autodoc]] FlaxElectraForCausalLM - call
FlaxElectraForMaskedLM
[[autodoc]] FlaxElectraForMaskedLM - call
FlaxElectraForSequenceClassification
[[autodoc]] FlaxElectraForSequenceClassification - call
FlaxElectraForMultipleChoice
[[autodoc]] FlaxElectraForMultipleChoice - call
FlaxElectraForTokenClassification
[[autodoc]] FlaxElectraForTokenClassification - call
FlaxElectraForQuestionAnswering
[[autodoc]] FlaxElectraForQuestionAnswering - call