Google BERT - yarak001/machine_learning_common GitHub Wiki
์์: BERT ์์ํ๊ธฐ(Transformer, ์ดํด, ํ์ฉ) -> BERT ํ์model(๋ค๋ฅธ๊ตฌ์กฐ ๋ฐ ํ์ต๋ฐฉ์์ ์ํ & ์ง์์ฆ๋ฅ ๊ธฐ๋ฐ์ ์ํ) -> BERT ์ ์ฉํ๊ธฐ(Text ์์ฝ, ์ธ์ด, Sentence, Domain, Video, BART)
- RNN๊ณผ LSTM์ ๋ค์ ๋จ์ด์์ธก, ๊ธฐ๊ณ๋ฒ์ญ, text ์์ฑ๋ฑ ์์ฐจ์ task์ ๋ง์ด ์ฌ์ฉ
- ์ฅ๊ธฐ ์์กด์ฑ ๋ฌธ์ ๊ฐ ์์
- RNN์ ํ๊ณ์ ์ ๊ทน๋ณตํ๋ ค "Attention is all your need" ๋ ผ๋ฌธ์์ transformer ์ ์
- RNN์์ ์ฌ์ฉํ๋ ์ํ ๋ฐฉ์์ ์ฌ์ฉํ์ง ์๊ณ ์์ํ๊ฒ attention๋ง ์ฌ์ฉํ model, self attetion์ด๋ผ๋ ํน์ํ ํํ์ attention ์ฌ์ฉ
- BERT(Bidiectional Encoder Representataion from Transformer)๋ ๊ตฌ๊ธ์์ ๋ฐํํ ์ต์ embedding model
- BERT๋ ๋ฌธ๋งฅ ๊ธฐ๋ฐ(context-based) embedding model (Word2Vec์ ๋ฌธ๋งฅ ๋
๋ฆฝ(context-free) embedding model)
- A๋ฌธ์ฅ: He got bit by Python
- B๋ฌธ์ฅ: Python is my favorite programming language
- Word2Vec๊ฐ ๋ฌธ๋งฅ ๋ ๋ฆฝ model์ด๊ธฐ ๋๋ฌธ์ ๋ฌธ๋งฅ๊ณผ ๊ด๊ณ์์ด 'python'์ด๋ผ๋ ๋จ์ด์ ๋ํด์ ํญ์ ๋์ผํ embedding์ ๊ณต
- Bert๋ ๋ฌธ๋งฅ ๊ธฐ๋ฐ model์ด๋ฏ๋ก ๋ฌธ์ฅ์ ๋ฌธ๋งฅ์ ์ดํดํ ๋ค์ ๋ฌธ๋งฅ์ ๋ฐ๋ผ ๋จ์ด embedding ์์ฑ
- BERT๋ transformer model์ ๊ธฐ๋ฐ์ผ๋ก ํ๋ฉฐ, encoder-decoder๊ฐ ์๋ transfomer model๊ณผ ๋ฌ๋ฆฌ encoder๋ง ์ฌ์ฉ
- Encoder๋ multi-head attention์ ์ฌ์ฉํด ๋ฌธ์ฅ์ ๊ฐ ๋จ์ด์ ๋ฌธ๋งฅ์ ์ดํดํ ๋ฌธ์ฅ์ ์๋ ๊ฐ ๋จ์ด์ ๋ฌธ๋งฅ ํํ์ ์ถ๋ ฅ์ผ๋ก ๋ฐํ
- BERB-base, BERT-large๋ฑ ์ฌ๋ฌ ๊ตฌ์กฐ๋ฅผ ์ง๋
- BERT ์ฌ์ ํ์ต
- model์ด ์ด๋ฏธ ๋๊ท๋ชจ dataset์์ ํ์ต๋์์ผ๋ฏ๋ก ์ task๋ฅผ ์ํด ์๋ก์ด model๋ก ์ฒ์๋ถํฐ ํ์ต์ํค๋ ๋์ ์ฌ์ ํ์ต๋ model์ ์ฌ์ฉํ๊ณ ์๋ก์ด task์ ๋ค๋ ๊ฐ์ค์น๋ฅผ ์กฐ์ (fine tuning)ํ๋ ๋ฐฉ์์ ๋ง์ด ์ฌ์ฉ
- BERT๋ MLM(Masked Language Model)๊ณผ NSP(Next Sentence Prediction)์ผ๋ก ์ฌ์ ํ์ต
- BERT ์
๋ ฅ
- A๋ฌธ์ฅ: Paris is a beautiful city
- B๋ฌธ์ฅ: I love Paris
-
- Token Embeddig
- [CLS] token์ ์ฒซ๋ฒ์งธ ๋ฌธ์ฅ์ ์์ ๋ถ๋ถ์ ์ถ๊ฐ๋๋ฉฐ ๋ถ๋ฅ ์์ ์ ์ฌ์ฉ, [SEP] token์ ๋ชจ๋ ๋ฌธ์ฅ์ ๋์ ์ถ๊ฐ๋๋ฉฐ ๋ฌธ์ฅ์ ๋์ ๋ํ๋ด๋ ๋ฐ ์ฌ์ฉ
- Token Embedding ๋ณ์๋ค์ ์ฌ์ ํ์ต์ด ์งํ๋๋ฉด์ ํ์ต๋จ
- Segment Embedding
- ๋ ๋ฌธ์ฅ์ ๊ตฌ๋ณํ๋๋ฐ ์ฌ์ฉ
- Positional Embedding
- Transformer๊ฐ ์ด๋ค ๋ฐ๋ณต mechanism๋ ์ฌ์ฉํ์ง ์๊ณ ๋ชจ๋ ๋จ์ด๋ฅด ๋ณ๋ ฌ๋ก ์ฒ๋ฆฌํ๋ฏ๋ก ๋จ์ด ์์์ ๊ด๋ จ๋ ์ ๋ณด๋ฅผ ์ ๊ณตํด์ผ ํ๋๋ฐ ์ด๋ ์์น Positional Embedding์ฌ์ฉ
- Token Embeddig
- WordPiece Tokenizer
- BERT์์ ์ฌ์ฉํ๋ sub word tokenizer
- OOV(out-of-vocabulary) ์ฒ๋ฆฌ์ ํจ๊ณผ์
- BERT ์ฌ์ ํ์ต ์ ๋ต
- MLM(Masked Language Modeling)
- ๋น์นธ ์ฑ์ฐ๊ธฐ task(cloze task)๋ผ๊ณ ๋ ํจ
- ์ธ์ด ๋ชจ๋ธ๋ง(Language Modeling): ์ผ๋ฐ์ ์ผ๋ก ์์์ ๋ฌธ์ฅ์ด ์ฃผ์ด์ง๊ณ ๋จ์ด์ ์์๋๋ก ๋ณด๋ฉด์ ๋ค์ ๋จ์ด๋ฅผ ์์ธกํ๋๋ก model์ ํ์ต์ํค๋ ๊ฒ
- ์๋ ํ๊ท ์ธ์ด ๋ชจ๋ธ๋ง(Auto-regressive Language Modeling)
- ์ ๋ฐฉ ์์ธก(Forward(left to right) prediction)
- ํ๋ฐฉ ์์ธก(Backwrad(right to left) prediction)
- ์๋ ์ธ์ฝ๋ฉ ์ธ์ด ๋ชจ๋ธ๋ง(Auto-Encoding Language Modeling)
- ์๋ฐฉํฅ ์์ธก์ ๋ชจ๋ ํ์ฉํ์ฌ ๋ฌธ์ฅ ์ดํด ์ธก๋ฉด์์ ๋ ๋ช ํํด์ง๋ฏ๋ก ๋ ์ ํํ ๊ฒฐ๊ณผ๋ฅผ ์ ๊ณต
- ์๋ ํ๊ท ์ธ์ด ๋ชจ๋ธ๋ง(Auto-regressive Language Modeling)
- ์ฃผ์ด์ง ๋ฌธ์์์ ์ ์ฒด ๋จ์ด์ 15%๋ฅผ ๋ฌด์์ maskingํ๊ณ mask๋ ๋จ์ด๋ฅผ ์์ธกํ๋๋ก model์ ํ์ต
- ([MASK] token์ ์ฌ์ ํ์ต์์๋ง ์ฌ์ฉํ๊ณ fine-tuning์
๋ ฅ์๋ ์์ผ๋ฏ๋ก)์ฌ์ ํ์ต๊ณผ file tuning์ฌ์ด์ ๋ถ์ผ์น๊ฐ ์๊ธฐ๊ฒ ๋จ. ์ด๋ฅผ ๊ทน๋ณตํ๊ธฐ ์ํด์ 80-10-10๊ท์ง ์ ์ฉ
- 15%์ค 80%์ token(์ค์ ๋จ์ด)์ [MASK] token์ผ๋ก ๊ต์ฒด.
- 15%์ค 10%์ token(์ค์ ๋จ์ด)์ ์์์ token(์์๋จ์ด)๋ก ๊ต์ฒด
- 15%์ค 10%์ token๋ ์ด๋ค ๋ณ๊ฒฝ๋ ํ์ง ์์
- ([MASK] token์ ์ฌ์ ํ์ต์์๋ง ์ฌ์ฉํ๊ณ fine-tuning์
๋ ฅ์๋ ์์ผ๋ฏ๋ก)์ฌ์ ํ์ต๊ณผ file tuning์ฌ์ด์ ๋ถ์ผ์น๊ฐ ์๊ธฐ๊ฒ ๋จ. ์ด๋ฅผ ๊ทน๋ณตํ๊ธฐ ์ํด์ 80-10-10๊ท์ง ์ ์ฉ
-
- Mask๋ token์ ์์ธกํ๊ธฐ ์ํด BERT์์ ๋ฐํ๋ mask๋ Token R[mask]์ ํํ์ softmax ํ์ฑํ๋ฅผ ํตํด FFNN์ ์ ๋ฌ ํ ํ๋ฅ ์ถ๋ ฅ
- NSP(Next Sentence Prediction)
- ์ด์ง ๋ถ๋ฅ task, BERT์ ๋ ๋ฌธ์ฅ์ ์ ๋ ฅํ๊ณ ๋ ๋ฒ์งธ ๋ฌธ์ฅ์ด ์ฒซ๋ฒ์งธ ๋ฌธ์ฅ์ ๋ค์ ๋ฌธ์ฅ์ธ์ง๋ฅผ ์์ธก
- ๋ ๋ฌธ์ฅ์ฌ์ด์ ๊ด๊ณ๋ฅผ ํ์ ํ ์ ์์ผ๋ฉฐ ์ด๋ ์ง๋ฌธ-์๋ต ๋ฐ ์ ์ฌ๋ฌธ์ฅํ์ง์ ๊ฐ์ downstream task์ ์ ์ฉ
-
- [CLS] token์ ๊ธฐ๋ณธ์ ์ผ๋ก ๋ชจ๋ token์ ์ง๊ณ ํํ์ ๋ณด์ ํ๊ณ ์์ผ๋ฏ๋ก ๋ฌธ์ฅ ์ ์ฒด์ ๋ํ ํํ์ ๋ด๊ณ ์์
- MLM(Masked Language Modeling)
- ์ฌ์ ํ์ต ์ ์ฐจ
- BERT์ฌ์ ํ์ต์์๋ ํ ๋ก ํ ์ฑ ๋ง๋ญ์น(Toronto BookCorpus)์ Wikipedia dataset์ฌ์ฉ
- ๋ง์ ์น์์ ๋ ๋ฌธ์ฅ์ sampliing(์ ์ฒด์ 50%๋ B๋ฌธ์ฅ์ด A๋ฌธ์ฅ์ ํ์ ๋ฌธ์ฅ์ด ๋๋๋ก, ๋๋จธ์ง 50%๋ B๋ฌธ์ฅ์ด A๋ฌธ์ฅ์ ํ์ ๋ฌธ์ฅ์ด ์๋ ๊ฒ์ผ๋ก sampling)
- A๋ฌธ์ฅ: We enjoyed the game
- B๋ฌธ์ฅ: Turn the radio on
- Wordpiece tokeinzer๋ฅผ ์ฌ์ฉํด์ ๋ฌธ์ฅ tokenํ, ์ฒซ๋ฒ์งธ ๋ฌธ์ฅ์ ์์ ๋ถ๋ถ์ [CLS] token์ ๋ชจ๋ ๋ฌธ์ฅ์ ๋์ [SEP] token์ถ๊ฐ
tokens = [ [CLS], we, enjoyed, the, game, [SEP], turn, the, radio, on, [SEP] ]
- 80-10-10 ๊ท์น์ ๋ฐ๋ผ token์ 15%๋ฅผ ๋ฌด์์๋ก masking
tokens = [ [CLS], we, enjoyed, the, [MASK], [SEP], turn, the, radio, on, [SEP] ]
- BERT model ์ ์ ๋ ฅ
- Mask๋ token์ ์์ธกํ๊ธฐ ์ํด model์ ํ์ต์ํค๋ฉฐ ๋์์ B๋ฌธ์ฅ์ด A๋ฌธ์ฅ์ ํ์ ๋ฌธ์ฅ์ธ์ง ์ฌ๋ถ๋ฅผ ํ๋จ. ์ฆ MLM๊ณผ NSP์์ ์ ๋์์ ์ฌ์ฉํด BERT๋ฅผ ํ์ต
- ํ์ ๋จ์ด ํ ํฐํ ์๊ณ ๋ฆฌ์ฆ
- ๋ฐ์ดํธ ์ ์ธ์ฝ๋ฉ(Byte Pair Encoding)
- ๋ฐ์ดํธ ์์ค ๋ฐ์ดํธ ์ ์ธ์ฝ๋ฉ(Byte-level Byte Pair Encoding)
- ์๋ํผ์ค(WordPiece)
- ์ฌ์ ํ์ต๋ BERT model ํ์
- BERT๋ฅผ ์ฒ์๋ถํฐ ์ฌ์ ํ์ต์ํค๋ ๊ฒ์ ๊ณ์ฐ ๋น์ฉ์ด ๋ง์ด ๋ค๋ฏ๋ก, ์ฌ์ ํ์ต๋ ๊ณต๊ฐ BERT model์ downloadํด์ ์ฌ์ฉํ๋๊ฒ ํจ๊ณผ์
H=128 | H=256 | H=512 | H=768 | |
---|---|---|---|---|
L=2 | [2/128 (BERT-Tiny)][2_128] | [2/256][2_256] | [2/512][2_512] | [2/768][2_768] |
L=4 | [4/128][4_128] | [4/256 (BERT-Mini)][4_256] | [4/512 (BERT-Small)][4_512] | [4/768][4_768] |
L=6 | [6/128][6_128] | [6/256][6_256] | [6/512][6_512] | [6/768][6_768] |
L=8 | [8/128][8_128] | [8/256][8_256] | [8/512 (BERT-Medium)][8_512] | [8/768][8_768] |
L=10 | [10/128][10_128] | [10/256][10_256] | [10/512][10_512] | [10/768][10_768] |
L=12 | [12/128][12_128] | [12/256][12_256] | [12/512][12_512] | [12/768 (BERT-Base)][12_768] |
- ์ฌ์ ํ์ต mdoel ์ฌ์ฉ ๋ฐฉ๋ฒ
- Embedding์ ์ถ์ถํด ํน์ง ์ถ์ถ๊ธฐ๋ก ์ฌ์ฉ
- ์ฌ์ ํ์ต๋ BERT model์ Text๋ถ๋ฅ, ์ง๋ฌธ-์๋ต๋ฑ๊ณผ ๊ฐ์ downstream task์ ๋ง๊ฒ fine tuning
- ์ฌ์ ํ์ต๋ BERT์์ Embedding์ ์ถ์ถํ๋ ๋ฐฉ๋ฒ
- ๋ฌธ์ฅ: I love Paris
- WordPiece tokenizer๋ฅผ ์ฌ์ฉํด ๋ฌธ์ฅ์ tokenํ
tokens = [I, love, Paris]
- token list ์์ ๋ถ๋ถ์ [CLS], ๋์ [SEP] token ์ถ๊ฐ
tokens = [ [CLS], I, love, Paris, [SEP] ]
- ๋์ผ ๊ธธ์ด๋ฅผ ์ ์งํ๊ธฐ ์ํด์ [PAD] token ์ถ๊ฐ(๊ธธ์ด๊ฐ 7์ด๋ผ ๊ฐ์ )
tokens = [ [CLS], I, love, Paris, [SEP], [PAD], [PAD] ]
- [PAD] token ๊ธธ์ด๋ฅผ ๋ง์ถ๊ธฐ ์ํ token์ด๋ฉฐ ์ค์ token์ ์ผ๋ถ๊ฐ ์๋๋ ๊ฒ์ model์๊ฒ ์ดํด์ํค๊ธฐ ์ํด attention mask ์์ฑ
attention_mask = [1,1,1,1,1,0,0 ]
- ๋ชจ๋ token์ ๊ณ ์ token ID๋ก mapping
token_ids = [101, 1045, 2293, 3000, 102, 0, 0 ]
- ์ฌ์ ํ์ต๋ BERT model์ ๋ํ ์ ๋ ฅ์ผ๋ก attention mask์ token_ids๋ฅผ ๊ณต๊ธํ๊ณ ๊ฐ token์ ๋ํ embedding์ ์ป์
- ์ ์ฒด ๋ฌธ์ฅ์ ํํ์ [CLS] token์ ๋ณด์ ํจ. [CLS] token ํํ์ ๋ฌธ์ฅ ํํ์ผ๋ก ์ฌ์ฉํ๋ ๊ฒ์ด ํญ์ ์ข์ ์๊ฐ์ ์๋. ๋ฌธ์ฅ์ ํํ์ ์ป๋ ํจ์ธ์ ์ธ ๋ฐฉ๋ฒ์ ๋ชจ๋ token์ ํํ์ ํ๊ท ํํ๊ฑฐ๋ poolingํ๋ ๊ฒ์
- ๋ค์ด์คํธ๋ฆผ task๋ฅผ ์ํ BERT ํ์ธ ํ๋ ๋ฐฉ๋ฒ
- Text ๋ถ๋ฅ
- ์ฌ์ ํ์ต๋ BERT model์ fine tuningํ ๋ ๋ถ๋ฅ๊ธฐ์ ํจ๊ป model์ ๊ฐ์ค์น๋ฅผ updateํ์ง๋ง, ์ฌ์ ํ์ต๋ BERT model์ ํน์ง ์ถ์ถ๊ธฐ๋ก ์ฌ์ฉํ๋ฉด ์ฌ์ ํ์ต๋ BERT model์๋ ๋ถ๋ฅ๊ธฐ์ ๊ฐ์ค์น๋ง update๋จ
- Fine tuning ์ค์ ๋ค์ ๋๊ฐ์ง ๋ฐฉ๋ฒ์ผ๋ก model์ ๊ฐ์ค์น๋ฅผ ์กฐ์ ํ ์ ์์
- ๋ถ๋ฅ ๊ณ์ธต๊ณผ ํจ๊ผ ์ฌ์ ํ์ต๋ BERT model์ ๊ฐ์ค์น๋ฅผ update
- ์ฌ์ ํ์ต๋ BERT model์ด ์๋ ๋ถ๋ฅ ๊ณ์ธต์ ๊ฐ์ค์น๋ง update. ์ด๋ ๊ฒ ํ๋ฉด ์ฌ์ ํ์ต๋ BERT model์ ํน์ง ์ถ์ถ๊ธฐ๋ก ์ฌ์ฉํ๋ ๊ฒ๊ณผ ๊ฐ์
- ์์ฐ์ด ์ถ๋ก (NLI)
- ์์ฐ์ด ์ถ๋ก (NLI, Natural Language Inference)์ model์ด ๊ฐ์ ์ด ์ฃผ์ด์ง ์ ์ ์ ๋ํด์ ์ฐธ์ธ์ง ๊ฑฐ์ง์ธ์ง ์ค๋ฆฝ์ธ์ง ์ฌ๋ถ๋ฅผ ๋ถ๋ฅํ๋ task
- ์ง๋ฌธ-์๋ต
- ์ง๋ฌธ์ ๋ํ ์๋ต์ด ํฌํจ๋ ๋จ๋ฝ๊ณผ ํจ๊ป ์ง๋ฌธ์ด ์ ๊ณต๋๋ฉด model์ ์ฃผ์ด์ง ์ง๋ฌธ์ ๋ํ ๋ต์ ๋จ๋ฝ์์ ์ถ์ถํจ
- ์ ๋ ฅ๊ฐ์ ์ง๋ฌธ-๋จ๋ฝ์, ์ถ๋ ฅ์ ์๋ต์ ํด๋นํ๋ text์ ๋ฒ์
- ๋จ๋ฝ ๋ด ๋ต์ ์์๊ณผ ๋ token(๋จ์ด)์ ํ๋ฅ ๊ณ์ฐ
- ๊ฐ์ฒด๋ช
์ธ์(NER)
- ๊ฐ์ฒด๋ช ์ธ์(NER, Named Entity Recognition)์ ๊ฐ์ฒด๋ช ์ ๋ฏธ๋ฆฌ ์ ์๋ ๋ฒ์ฃผ๋ก ๋ถ๋ฅํ๋ ๊ฒ
- Text ๋ถ๋ฅ
- ALBERT
- BERT์ ์ฃผ์ ๋ฌธ์ ์ ์ค ํ๋๋ ์๋ฐฑ๋ง ๊ฐ์ ๋ณ์๋ก ๊ตฌ์ฑ๋์ด ์์ด, model ํ์ต์ด ์ด๋ ต๊ณ , ์ถ๋ก ์ ์๊ฐ์ด ๋ง์ด ๊ฑธ๋ฆผ. model ํฌ๊ธฐ๋ฅผ ๋๋ฆฌ๊ฒ ๋๋ฉด ์ฑ๋ฅ์ ์ข์ง๋ง, ๊ณ์ฐํ ๋ resouce ์ ํ ๋ฐ์
- ์ ๋ฌธ์ ํด๊ฒฐ์ ์ํด ALBERT๊ฐ ๋์
๋์์ผ๋ฉด ๋ค์ ๋๊ฐ์ง ๋ฐฉ๋ฒ์ผ๋ก ์ฌ์ฉ ๋ณ์์์ ์ถ์ํ์ฌ ํ์ต์๊ฐ๊ณผ ์ถ๋ก ์๊ฐ ์ค์
- ํฌ๋ก์ค ๋ ์ด์ด ๋ณ์ ๊ณต์ (cross-layer parameter sharing)
- BERT model์ ๋ณ์๋ฅผ ์ค์ด๋ ๋ฐฉ๋ฒ์ค ํ๋. ๋ชจ๋ encoder์ ๋ณ์๋ฅด ํ์ต์ํค๋ ๊ฒ์ด ์๋๋ผ ์ฒซ๋ฒ์งธ encoder์ ๋ณ์๋ง ํ์ตํ ๋ค์ ์ฒซ๋ฒ์งธ encoder layer ๋ณ์์ ๋ค๋ฅธ ๋ชจ๋ encoder layer์ ๊ณต์
- All-shared: ์ฒซ๋ฒ์งธ encoder์ ํ์ layer์ ์๋ ๋ชจ๋ ๋ณ์๋ฅผ ๋๋จธ์ง encoder์ ๊ณต์
- Shared feed forward network: ์ฒซ๋ฒ์งธ encoder layer์ feed forward network์ ๋ณ์๋ง ๋ค๋ฅธ encoding layer์ feed forward network์ ๊ณต์
- Shared attention: ์ฒซ๋ฒ์งธ encoder layer์ multi head attention ๋ณ์๋ง ๋ค๋ฅธ encoder layer์ ๊ณต์
- ํฉํ ๋ผ์ด์ฆ ์๋ฒ ๋ฉ ๋ณ์ํ(factorized embedding parameterization)
- Embeddingํ๋ ฌ์ ๋ ์์ ํ๋ ฌ๋ก ๋ถํดํ๋ ๋ฐฉ๋ฒ
- BERT model์ ๋ณ์๋ฅผ ์ค์ด๋ ๋ฐฉ๋ฒ์ค ํ๋. ๋ชจ๋ encoder์ ๋ณ์๋ฅด ํ์ต์ํค๋ ๊ฒ์ด ์๋๋ผ ์ฒซ๋ฒ์งธ encoder์ ๋ณ์๋ง ํ์ตํ ๋ค์ ์ฒซ๋ฒ์งธ encoder layer ๋ณ์์ ๋ค๋ฅธ ๋ชจ๋ encoder layer์ ๊ณต์
- ํฌ๋ก์ค ๋ ์ด์ด ๋ณ์ ๊ณต์ (cross-layer parameter sharing)
- ALBERT model ํ์ต
- ALBERT๋ MLM์ ์ฌ์ฉํ์ง๋ง NSP task ๋์ ๋ฌธ์ฅ ์์ ์์ธก(SOP, Sentence Order Predition) ์ฌ์ฉ
- ์ฌ์ ํ์ต์ NSP๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ์ค์ ๋ก๋ ์ ์ฉํ์ง ์๊ณ , MLM ๋๋น ๋์ด๋๊ฐ ๋์ง ์์
- NSP๋ ์ฃผ์ ์ ๋ํ ์์ธก๊ณผ ๋ฌธ์ฅ์ ์ผ๊ด์ฑ์ ๋ํ ์์ธก์ ํ๋์ด ํ๋์ ์์ ์ผ๋ก ๊ฒฐํฉ๋์ด ์ใ ๋ฏ
- SOP๋ ์ฃผ์ ์ ์์ธก์ด ์๋๋ผ ๋ฌธ์ฅ ๊ฐ์ ์ผ๊ด์ฑ ๊ณ ๋ ค
- ๋ฌธ์ ์์ ์์ธก
- ์ด์ง ๋ถ๋ฅ task, ์ฃผ์ด์ง ํ ์์ ๋ฌธ์ฅ์ด ๋ฌธ์ฅ ์์๊ฐ ๋ฐ๋์๋์ง ์ฌ๋ถ(positive/negative)๋ฅผ ํ๋จ(NSP๋ ํ์์ ๋ฌธ์ฅ์ isNext, notNext์ธ์ง ์์ธกํ๋ ํํ๋ก ํ์ต)
- ALBERT๋ MLM์ ์ฌ์ฉํ์ง๋ง NSP task ๋์ ๋ฌธ์ฅ ์์ ์์ธก(SOP, Sentence Order Predition) ์ฌ์ฉ
- BERT์ ๋ง์ฐฌ๊ฐ์ง๋ก ์ฌ์ ํ์ต๋ ALBERT model์ผ ๊ฐ์ง๊ณ fine tuning์ ์งํํ ์ ์์. BERT ๋์์ ์ฌ์ฉํ๊ธฐ ์ข์ผ model
- RoBERTa
- BERT๊ฐ ์ถฉ๋ถํ ํ์ต๋์ง ์์์ ํ์ธํ๊ณ , BERT model ์ฌ์ ์ ๋ค๋ฅธ ๋ฐฉ๋ฒ ์ฌ์ฉ
- MLM task์์ ์ ์ masking์ด ์๋ ๋์ masking์ฌ์ฉ
- NSP task์ ๊ฑฐํ๊ณ MLM task๋ง์ผ๋ก ์ฌ์ ํ์ต
- ๋ ๋ง์ ํ์ต data ์ฌ์ฉ
- BERT์์ ์ฌ์ฉํ ํ ๋ก ํ ์ฑ ๋ง๋ญ์น์ ์์ด wikipedia์ธ CC-News, Open WebText, Stories๋ฅผ ์ถ๊ฐ๋ก ์ฌ์ฉ (BERT:16GB, RoBERTa:160GB)
- Batch size ์ฆ๊ฐํ์ฌ ํ์ต
- BERT: 256 batch๋ก 100๋ง ๋จ๊ณ๋์ ์ฌ์ ํ์ต, RoBERTa: 8000 batch๋ก 30๋ง ๋จ๊ณ ๋๋ 50๋ง ๋จ๊ณ ๋์ ์ฌ์ ํ์ต
- ํ์ต batch size๋ฅด ์ฆ๊ฐํ์ฌ ํ์ต์๋๋ฅผ ๋์ด๊ณ model ์ฑ๋ฅ ํฅ์
- BBPE tokenizer ์ฌ์ฉ
- BERT๊ฐ ์ถฉ๋ถํ ํ์ต๋์ง ์์์ ํ์ธํ๊ณ , BERT model ์ฌ์ ์ ๋ค๋ฅธ ๋ฐฉ๋ฒ ์ฌ์ฉ
- ELECTRA(Effiicently Learning an Encoder that Classifies Token Replacement Accurately)
- MLM๊ณผ NSP๋์ ๊ต์ฒด ํ ํฐ ํ์ง(Replaced token detection) task๋ก ํ์ต
- ๊ต์ฒด ํ ํฐ ํ์ง
- Masking ๋์์ธ token์ ๋ค๋ฅธ token์ผ๋ก ๋ณ๊ฒฝํ ํ ์ด token์ด ์ค์ token์ธ์ง ๊ต์ฒดํ token์ธ์ง ํ๋ณ
- MLM task์ ๋ฌธ์ ์ค ํ๋๋ ์ฌ์ ํ์ต์ค [MASK] token์ ์ฌ์ฉํ์ง๋ง fine tuning task์ค์๋ [MASK] token์ ์ฌ์ฉํ์ง ์์, ์ฌ์ ํ์ต๊ณผ fine tuning์ token์ ๋ํ ๋ถ์ผ์น๊ฐ ์๊ธธ์ ์๋ค๋ ๊ฒ์
- Token์ ๋ฌด์์๋ก maskingํ๊ณ ์์ฑ์์ ์ ๋ ฅ
- ์ ๋ ฅ token์ ์์ฑ์์ ์ํด ์์ฑํ token์ผ๋ก ๊ต์ฒดํ๊ณ ์ด๋ฅผ ํ๋ณ์์ ์ ๋ ฅ
- ํ๋ณ์๋ ์ฃผ์ด์ง token์ด ์๋ณธ์ธ์ง ์๋์ง ํ๋จ
- ํ์ตํ ํ ์์ฑ์๋ฅผ ์ ๊ฑฐํ๊ณ ํ๋ณ์๋ฅผ ELECTRA model๋ก ์ฌ์ฉ
- BETR์ MLM task์ ๊ฒฝ์ฐ ์ ์ฒด token์ 15%๋ง masking ํ ํ ํ์ตํ๋ฏ๋ก 15% mask๋ token์์ธก์ ์ฃผ๋ชฉ์ ์ผ๋ก ํ์ง๋ง, ELECTRA์ ๊ฒฝ์ฐ ์ฃผ์ด์ง token์ ์๋ณธ ์ฌ๋ถ๋ฅผ ํ๋ณํ๋ ๋ฐฉ๋ฒ์ผ๋ก ํ์ตํ๋ฏ๋ก ๋ชจ๋ token์ ๋์์ผ๋ก ํ์ต์ด ์ด๋ค์ง
- SpanBERT
- Text๋ฒ์๋ฅผ ์์ธกํ๋ ์ง๋ฌธ-์๋ต๊ณผ ๊ฐ์ task์ ์ฃผ๋ก ์ฌ์ฉ
- Token์ ๋ฌด์์๋ก maskingํ๋ ๋์ ์ token์ ์ฐ์๋ ๋ฒ์๋ฅผ ๋ฌด์์๋ก masking
- MLM๊ณผ SBO(Span Boundary Objective)๋ฅผ ์ฌ์ฉํด ํ์ต
- SBO๋ mask๋ token์ ์์ธกํ๊ธฐ ์ํด์ ํด๋นํ๋ mask๋ token์ ํํ์ ์ฌ์ฉํ๋ ๋์ , span ๊ฒฝ๊ณ์ ์๋ token์ ํํ๋ง ์ฌ์ฉ. ๋ํ masked๋ token์ ์์น embedding๊ฐ์ ๊ฐ์ด ์ฌ์ฉ. ์ด๋ mask๋ token์ ์๋์ ์์น
- MLM์ mask๋ token์ ์์ธกํ๊ธฐ ์ํด ํด๋น token์ ํํ๋ง์ ์ฌ์ฉํ๊ณ , SBO์ ๊ฒฝ์ฐ mask๋ token์ ์ฌ์ฉํ๊ธฐ ์ํด span ๊ฒฝ๊ณ token๊ณผ mask๋ token์ ์์น embedding ์ ๋ณด ์ฌ์ฉ
- SBO๋ mask๋ token์ ์์ธกํ๊ธฐ ์ํด์ ํด๋นํ๋ mask๋ token์ ํํ์ ์ฌ์ฉํ๋ ๋์ , span ๊ฒฝ๊ณ์ ์๋ token์ ํํ๋ง ์ฌ์ฉ. ๋ํ masked๋ token์ ์์น embedding๊ฐ์ ๊ฐ์ด ์ฌ์ฉ. ์ด๋ mask๋ token์ ์๋์ ์์น
- ์ฌ์ ํ์ต๋ BERT๋ฅผ ์ฌ์ฉํ๋๋ฐ ๋ฐ๋ฅธ ๋ฌธ์ ๋ ๊ณ์ฐ ๋น์ฉ์ด ๋ง์ด ๋ค๊ณ ์ ํ๋ resource๋ก model์ ์คํํ๊ธฐ๊ธฐ ๋งค์ฐ ์ด๋ ค์.
- ์ฌ์ ํ์ต๋ BERT๋ ๋งค๊ฐ๋ณ์๊ฐ ๋ง๊ณ ์ถ๋ก ์ ์๊ฐ์ด ์ค๋ ๊ฑธ๋ ค ํด๋ํฐ๊ณผ ๊ฐ์ edge device์์ ์ฌ์ฉ์ด ๋ ์ด๋ ค์
- ์ด๋ฅผ ์ํด ์ฌ์ ํ์ต๋ ๋ํ BERT์์ ์ํ BERT๋ก ์ง์์ ์ด์ ํ๋ ์ง์ ์ฆ๋ฅ ์ฌ์ฉ
- ์ง์ ์ฆ๋ฅ(Knowledge distillation)
- ์ฌ์ ํ์ต๋ ๋ํ model์ ๋์์ ์ฌํํ๊ธฐ ์ํด ์ํ model์ ํ์ต์ํค๋ model ์์ถ ๊ธฐ์
- ๊ต์ฌ-ํ์ ํ์ต(teacher-student learning)์ด๋ผ๋ ํจ.(teacher: ์ฌ์ ํ์ต๋ ๋ํ model, student: ์ํ model)
- ์ํ ์ง์(dark knowledge): ํ๋ฅ ์ด ๋์ ๋จ์ด๋ฅผ ์ ํํ๋ ๊ฒ ์ธ์๋ network๊ฐ ๋ฐํํ ํ๋ฅ ๋ถํฌ์์ ์ถ์ถํ ๋ค๋ฅธ ์ ์ฉํ ์ ๋ณด
- Softmax Temperatue
- ์ถ๋ ฅ layer์์ softmax temperature๋ฅผ ์ฌ์ฉํ์ฌ ํ๋ฅ ๋ถํฌ๋ฅผ ํํํ ํ ์ ์์
- T๊ฐ temperature, T=1์ธ ๊ฒฝ์ฐ ์ผ๋ฐ์ ์ธ softmaxํจ์. T์ ๊ฐ์ ๋๋ฆฌ๋ฉด ํ๋ฅ ๋ถํฌ๊ฐ ๋ ๋ถ๋๋ฌ์์ง๊ณ ๋ค๋ฅธ class๋ค์ ๋ํ ๋ ๋ง์ ์ ๋ณด ์ ๊ณต๋จ
- ๊ฒฐ๊ณผ์ ์ผ๋ก softmax temperature๋ฅผ ์ฌ์ฉํด ์ํ ์ง์์ ์ป์ ์ ์์. ์ํ ์ง์์ ์ป๊ธฐ ์ํด softmax temperature๋ก ๊ต์ฌ network๋ฅผ ์ฌ์ ํ์ตํ๊ณ , ์ง์์ฆ๋ฅ๋ฅผ ํตํด ์ํ ์ง์์ ๊ต์ฌ๋ก๋ถํฐ ํ์์๊ฒ ์ ๋ฌ
- ํ์ต network ํ์ต
-
- ํ์ network๋ ์ฌ์ ํ์ต๋์ง ์์์ผ๋ฉฐ, ๊ต์ฌ network๋ง softmax temperature๋ก ์ฌ์ ํ์ต๋จ
- Soft target: ๊ต์ฌ network์ ์ถ๋ ฅ, Soft prediction: ํ์ network์์ ๋ง๋ ์์ธก
- ์ฆ๋ฅ์์ค(Distillation loss): Soft target๊ณผ Soft prediction์์ cross entropy ์์ค
- Hard target: label๋ก ์ ๋ต์ 1, ๋ค๋ฅธ ๊ฐ๋ค์ ๋ชจ๋ 0
- Hard prediction: Sottmax temperature=1์ธ ํ์ network์์ ์์ธกํ ํ๋ฅ ๋ถํฌ
- ํ์์์ค(Student loss): Hard target๊ณผ Hard prediction๊ฐ์ cross entropy ์์ค
- ์ต์ข ์์ค์ ํ์์์ค๊ณผ ์ฆ๋ฅ์์ค์ ๊ฐ์คํฉ๊ณ
- DistilBERT: BERT์ ์ง์ ์ฆ๋ฅ version
-
- ๊ต์ฌ BERT(BERT-base)์ฌ์ ํ์ต์ ์ฌ์ฉํ ๊ฒ๊ณผ ๋์ผํ dataset์ผ๋ก ํ์ BERT ํ์ต
- MLM task๋ง์ผ๋ก ํ์ต
- ๋์ masking ์ฌ์ฉ
- ํฐ batch size ํ์ต
- ์ฆ๋ฅ์์ค, ํ์์์ค, Cosine Embedding ์์ค ์ฌ์ฉ
- Cosine Embedding ์์ค: ๊ต์ฌ์ ํ์ BERT๊ฐ ์ถ๋ ฅํ๋ vector์ฌ์ด์ ๊ฑฐ๋ฆฌ ์ธก์ . ์ด๋ฅผ ์ต์ํํ๋ฉด ํ์ embedding์ ๋ ์ ํํ๊ฒ ํ๋ฉด์๋ ๊ต์ฌ embedding๊ณผ ์ ์ฌํ๊ฒ ํํ ๊ฐ๋ฅ
-
- TinyBERT
- ๊ต์ฌ์ ์ถ๋ ฅ layer(์์ธก layer)์์ ํ์์๊ฒ ์ง์์ ์ ๋ฌํ๋ ๊ฒ ์ธ์ embedding ๋ฐ ์ฌ๋ฌ encoder์์ ์ง์ ์ ๋ฌํ์ฌ ๋ ๋ง์ ์ ๋ณด๋ฅผ ์ต๋
- TinyBERT ์ง์ ์ฆ๋ฅ
- Transformer layer(encoder layer)
- ์ดํ
์
๊ธฐ๋ฐ ์ฆ๋ฅ(attention based distillation)
- Attention ํ๋ ฌ์ ๋ํ ์ง์์ ๊ต์ฌ BERT์์ ํ์ BERT๋ก ์ ์ด. Attention ํ๋ ฌ์๋ ์ธ์ด ๊ตฌ๋ฌธ, ์ํธ ์ฐธ์กฐ ์ ๋ณด๋ฑ๊ณผ ๊ฐ์ ์ ์ฉํ ์ ๋ณด๊ฐ ํฌํจ๋์ด ์ธ์ด๋ฅผ ์ดํดํ๋๋ฐ ์ ์ฉ
- ํ์ Attention ํ๋ ฌ๊ณผ ๊ต์ฌ BERT attention ํ๋ ฅ๊ฐ์ ํ๊ท ์ ๊ณฑ ์ค์ฐจ๋ฅผ ์ต์ํํด์ ํ์ networkํ์ต
- ์๋์ํ ๊ธฐ๋ฐ ์ฆ๋ฅ(hidden state based distillation)
- ๊ต์ฌ์ ์๋์ํ์ ํ์์ ์๋์ํ ์ฌ์ด์ ํ๊ท ์ ๊ณฑ ์ค์ฐจ๋ฅผ ์ต์ํํด ์ฆ๋ฅ ์ํ *
- ์ดํ
์
๊ธฐ๋ฐ ์ฆ๋ฅ(attention based distillation)
- Embedding layer(input layer)
- ๊ต์ฌ์ embedding layer์์ ํ์์ embedding layer๋ก ์ง์ ์ ๋ฌ
- ํ์ Embedding๊ณผ ๊ต์ฌ Embedding ์ฌ์ด์ ํ๊ท ์ ๊ณฑ ์ค์ฐจ๋ฅผ ์ต์ํํด์ Embedding layer์ฆ๋ฅ ์ํ
- Prediction layer(output layer)
- ๊ต์ฌ BERT๊ฐ ์์ฑํ ์ต์ข ์ถ๋ ฅ layer์ logi๊ฐ์ ํ์ BERT๋ก ์ ๋ฌํด ์งํ. DistilBERT์ ์ฆ๋ฅ ์์ค๊ณผ ์ ์ฌ
- Soft target๊ณผ soft prediction ๊ฐ์ cross entropy ์์ค์ ์ต์ํํด์ ์์ธก layer์ ์ฆ๋ฅ ์ํ
- Transformer layer(encoder layer)
- TinyBERT ํ์ต
-
์ผ๋ฐ ์ฆ๋ฅ
- ์ฌ์ ํ์ต๋ ๋ํ BERT(BERT-base)๋ฅผ ๊ต์ฌ๋ก ์ฌ์ฉํ๊ณ ์ฆ๋ฅ๋ฅผ ์ํํด ์ง์์ ์์ ํ์ BERT(TinyBERT)๋ก ์ ๋ฌ
- ์ฆ๋ฅ ํ ํ์ BERT๋ ๊ต์ฌ์ ์ง์์ผ๋ก ๊ตฌ์ฑ๋๋ฉฐ ์ด๋ ๊ฒ ์ฌ์ ํ์ต๋ ํ์ BERT๋ฅผ ์ผ๋ฐ TinyBERT๋ผ ํจ
-
ํ์คํฌ ํนํ ์ฆ๋ฅ
- ํน์ task๋ฅผ ์ํด ์ผ๋ฐ TinyBERT(์ฌ์ ํ์ต๋ TinyBERT)๋ฅผ fine tuning
- DitilBERT์ ๋ฌ๋ฆฌ TinyBERT์์๋ ์ฌ์ ํ์ต ๋จ๊ณ์์ ์ฆ๋ฅ๋ฅผ ์ ์ฉํ๋ ๊ฒ ์ธ์ fine tuning ๋จ๊ณ์์๋ ์ฆ๋ฅ ์ ์ฉํ ์ ์์
- ์ฌ์ ํ์ต๋ BERT-base model์ ์ฌ์ฉํด ํน์ task์ ๋ง๊ฒ fine tuningํ ํ ์ด๋ฅผ ๊ต์ฌ๋ก ์ฌ์ฉ. ์ผ๋ฐ TinyBERT๋ ํ์ BERT
- ์ฆ๋ฅ ํ ์ผ๋ฐ TinyBERT๋ ๊ต์ฌ์ taskํนํ๋ ์ง์(fine tuning๋ BERT-base)์ผ๋ก ๊ตฌ์ฑ๋๋ฏ๋ก ํน์ task์ ๋ํด fine tuning๋ ์ผ๋ฐ TinyBERT๋ฅผ fine tuning๋ TinyBERT๋ผ ๋ถ๋ฆ
์ผ๋ฐ ์ฆ๋ฅ(์ฌ์ ํ์ต) Task ํนํ ์ฆ๋ฅ(Fine tuning) ๊ต์ฌ ์ฌ์ ํ์ต๋ BERT-base Fine tuning๋ BERT-base ํ์ ์์ BERT ์ผ๋ฐ TinyBERT(์ฌ์ ํ์ต๋ TinyBERT) ๊ฒฐ๊ณผ ์ฆ๋ฅ ํ ํ์ BERT๋ ๊ต์ฌ๋ก๋ถํฐ ์ง์์ ์ ์ ๋ฐ์. ์ด๋ ๊ณง ์ฌ์ ํ์ต๋ ํ์ BERT. ์ฆ ์ผ๋ฐ TinyBERT๋ผ ํจ ์ฆ๋ฅ ํ ์ผ๋ฐ TinyBERT๋ ๊ต์ฌ๋ก๋ถํฐ Task ํนํ ์ง์์ ์ ์ ๋ฐ์. ์ด๋ task ํนํ ์ง์์ผ๋ก fine tunning๋ TinyBERT๋ผ ํจ -
Fine tuning ๋จ๊ณ์์ ์ฆ๋ฅ๋ฅผ ์ํํ๋ ค๋ฉด ์ผ๋ฐ์ ์ผ๋ก ๋ ๋ง์ task๋ณ dataset์ด ์๊ตฌ๋์ด data ์ฆ์ ๋ฐฉ๋ฒ์ ์ฌ์ฉํด dataset ํ๋ณดํจ
-
- BERT์์ ์ ๊ฒฝ๋ง์ผ๋ก ์ง์ ์ ๋ฌ
- Text์์ฝ
- ๊ธด text์ ๋ฌธ์๋ฅผ ์งง์ ๋ฌธ์ฅ์ผ๋ก ์์ฝํ๋ ๊ณผ์
- ์ถ์ถ ์์ฝ(extractive summarization)
- ์ฃผ์ด์ง text์์ ์ค์ํ ๋ฌธ์ฅ๋ง ์ถ์ถํด ์์ฝํ๋ ๊ณ ์ , ๋ง์ ๋ฌธ์ฅ์ด ํฌํจ๋ ๊ธด ๋ฌธ์์์ ๋ฌธ์์ ๋ณธ์ง์ ์ธ ์๋ฏธ๋ฅผ ๋ด๊ณ ์๋ ์ค์ํ ๋ฌธ์ฅ๋ง ์ถ์ถํด ๋ฌธ์์ ์์ฝ์ ์์ฑ
- ์์ฑ ์์ฝ(abstractive summarization)
- ์ฃผ์ด์ง text๋ฅผ ์์ญ(paraphrasing)ํด ์์ฝ์ ์์ฑ. ์์ญ์ด๋ text์ ์๋ฏธ๋ฅผ ์ข ๋ ๋ช ํํ๊ฒ ๋ํ๋ด๊ธฐ ์ํด์ ๋ค๋ฅธ ๋จ์ด๋ฅผ ์ฌ์ฉํด ์ฃผ์ด์ง text๋ฅผ ์๋กญ๊ฒ ํํํ๋ ๊ฒ
- ์ฃผ์ด์ง text์ ์๋ฏธ๋ง ์ง๋ ๋ค๋ฅธ ๋จ์ด๋ฅผ ์ฌ์ฉํด ์ฃผ์ด์ง text๋ฅผ ์๋ก์ด ๋ฌธ์ฅ์ผ๋ก ํํ
- ์ถ์ถ ์์ฝ(extractive summarization)
- ๊ธด text์ ๋ฌธ์๋ฅผ ์งง์ ๋ฌธ์ฅ์ผ๋ก ์์ฝํ๋ ๊ณผ์
- Text์์ฝ์ ๋ง์ถ BERT fine tuning
- BERT๋ฅผ ํ์ฉํ ์ถ์ถ ์์ฝ
- ๋ชจ๋ ๋ฌธ์ฅ์ ์์ ๋ถ๋ถ์ [CLS] token์ ์ถ๊ฐํ๊ธฐ ๋๋ฌธ์ [CLS] token์ ๋ํ ํํ์ ๊ฐ ๋ฌธ์ฅ์ ๋ํ ํํ์ผ๋ก ์ฌ์ฉํ ์ ์์
- BERT model์ ์ฌ์ฉํด์ ์ ๋ ฅ data ํ์์ ๋ณ๊ฒฝํด ํํํ model์ BERTSUM์ด๋ผ ํจ
- BERT๋ฅผ ์ฒ์๋ถํฐ ํ์ต์ํค๋ ๋์ , ์ฌ์ ํ์ต๋ BERT model์ ์ฌ์ฉํ๋ ์ ๋ ฅ data ํํ๋ฅผ ๋ณ๊ฒฝํด์ ํ์ต์ํค๋ฉด ๋ชจ๋ [CLS] token์ ํํ์ ํด๋น ๋ฌธ์ฅ์ ํํ์ผ๋ก ์ฌ์ฉํ ์ ์์
- ๋ถ๋ฅ๊ธฐ๊ฐ ์๋ BERTSUM
- BERT๋ฅผ ์ฌ์ฉํ ์์ฑ ์์ฝ
- ์์ฑ ์์ฝ์ ์ํํ๋๋ฐ๋ transformer์ encoder-decoder architecture ์ฌ์ฉ
- ์ฌ์ ํ์ต๋ BERTSUM์ encoder๋ก ํ์ฉ
- trasnformer model์ encoder๊ฐ ์์ ํ์ต๋ BERTSUM model์ด์ง๋ง decoder๋ ๋ฌด์์๋ก ์ด๊ธฐํ๋์ด fine tuning์ค์ ๋ถ์ผ์น๊ฐ ๋ฐ์ํ ์ ์๊ณ , encoder๊ฐ ์ฌ์ ํ์ต ๋์๊ธฐ ๋๋ฌธ์ ๊ณผ์ ํฉ๋ ์ ์๊ณ , decoder๋ ๊ณผ์์ ํฉ ๋ ์ ์์
- ์ด๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด Adam optimizer๋ฅผ encoder์ decoder์ ๊ฐ๊ฐ ์ฌ์ฉ. encoder์๋ ํ์ต๋ฅ ์ ์ค์ด๊ณ ์ข๋ ๋ถ๋๋ฝ๊ฒ ๊ฐ์ ํ๋๋ก ์ค์
- ์์ฑ ์์ฝ์ ์ํํ๋๋ฐ๋ transformer์ encoder-decoder architecture ์ฌ์ฉ
- BERT๋ฅผ ํ์ฉํ ์ถ์ถ ์์ฝ
- ROUGE ํ๊ฐ ์งํ ์ดํดํ๊ธฐ
- ROUGE(Recall-Oriented Understudy for Gisting Evaluation): Text ์์ฝ task์ ํ๊ฐ ์งํ
- ROUGE-N, ROUGE-L, ROUGE-W, ROUGE-S, ROUGE-SU
- ROUGE-N
- ROUGE-N์ ํ๋ณด ์์ฝ(์์ธกํ ์์ฝ)๊ณผ ์ฐธ์กฐ ์์ฝ(์ค์ ์์ฝ)๊ฐ์ n-gram ์ฌํ์จ(recall)
- ์ฌํ์จ = ์๋ก ๊ฒน์น๋ n-gram์ / ์ฐธ์กฐ ์์ฝ์ n-gram์
- ํ๋ณด ์์ฝ: Machine learning is seen as a subset of artificial intelligence.
- ์ฐธ์กฐ ์์ฝ: Machine learning is as subset of artificial intelligence.
- ROUGE-1: ํ๋ณด ์์ฝ(์์ธก ์์ฝ)๊ณผ ์ฐธ์กฐ ์์ฝ(์ค์ ์์ฝ)๊ฐ์ unigram ์ฌํ์จ
- ํ๋ณด ์์ฝ unigram: machine, learning, is, seen, as, a, subset, of, artificial, intelligence
- ์ฐธ์กฐ ์์ฝ unigram: machine, learning, is, as, subset, of, artificial, intelligence
- ROUGE-1 = 8/8 =1
- ROUGE-1: ํ๋ณด ์์ฝ(์์ธก ์์ฝ)๊ณผ ์ฐธ์กฐ ์์ฝ(์ค์ ์์ฝ)๊ฐ์ bigram ์ฌํ์จ
- ํ๋ณด ์์ฝ bigram: (machine, learning), (learning, is), (is, seen), (seen, as), (as, a), (a, subset), (subset, of), (of, artificial), (artificial, intelligence)
- ์ฐธ์กฐ ์์ฝ bigram: (machine, learning), (learning, is), (is, a), (a, subset), (subset, of), (of, artificial), (artificial, intelligence)
- ROUGE-2 = 6/7 = 0.85
- ROUGE-L
- ๊ฐ์ฅ ๊ธด ๊ณตํต ์ํ์ค(LCS, longest common subsequence)๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํจ. ๋ sequence ์ฌ์ด์ LCS๋ ์ต๋ ๊ธธ์ด๋ฅผ ๊ฐ์ง๋ ๊ณตํต ํ์ sequence๋ฅผ ๋งํจ
- ํ๋ณด ๋ฐ ์ฐธ์กฐ ์์ฝ์ LCS๊ฐ ์๋ค๋ ๊ฒ์ ํ๋ณด ์์ฝ๊ณผ ์ฐธ์กฐ ์์ฝ์ด ์ผ์นํ๋ ๊ฒ
- ROUGE-L์ F-measure๋ฅผ ์ฌ์ฉํด ์ธก์
- M-BERT ์ดํดํ๊ธฐ
- M-BERT๋ ์์ด๋ฅผ ํฌํจํ ๋ค๋ฅธ ์ธ์ด๋ค์ ํํ์ ์ป์ ์ ์์
- M-BERT๋ MLM๊ณผ NSP๋ฅผ ์ฌ์ฉํ๋ฉด์ ์์ด wikipedia๋ฟ ์๋๋ผ 104๊ฐ ์ธ์ด์ wikipedia๋ก ํ์ต๋จ (์ธ์ด๋ณ ๋น์ค์ด ๋ค๋ฅด๋ฏ๋ก sampling ๋ฐฉ๋ฒ ์ด์ฉ, ์๋ฃ๊ฐ ๋ง์ ์ธ์ด๋ under sampling, ์ ์ sample์ over sampling)
- M-BERT๋ ํน์ ์ธ์ด ์์ด๋ ์ธ์ด ์ ๋ ฌ์ด ๋์ด ์๋ ํ์ต data์์ด๋ ๋ค๋ฅธ ์ธ์ด๋ค๋ก๋ถํฐ context ์ดํด => ๊ต์ฐจ ์ธ์ด๋ฅผ ๊ณ ๋ คํ ๋ชฉํ ํจ์ ์์ด M-BERT ํ์ต์ํจ ๊ฒ์ด ์ค์!!
- ํน์ง
- M-BERT์ ์ผ๋ฐํ ๊ธฐ๋ฅ์ฑ์ ์ดํ ์ค๋ณต์ ์์กดํ์ง ์์
- M-BERT์ ์ผ๋ฐํ ๊ฐ๋ฅ์ฑ์ ์ ํํ ๋ฐ ์ธ์ด ์ ์ฌ์ฑ์ ๋ฐ๋ผ ๋ค๋ฆ
- M-BERT๋ code switching text๋ฅผ ์ฒ๋ฆฌํ ์ ์์ง๋ง, ์์ฐจ text๋ ์ฒ๋ฆฌํ ์ ์์
- XLM(Cross-language Language Model)
- ๋ค๊ตญ์ด ๋ชฉํ๋ฅผ ๊ฐ์ง๊ณ ํ์ต๋ BERT. XLM์ M-BERT๋ณด๋ค ๋ค๊ตญ์ด ํํ ํ์ต์ ํ ๋ ์ฑ๋ฅ์ด ๋ฐ์ด๋จ
- ๋จ์ผ ์ธ์ด dataset ๋ฐ ๋ณ๋ ฌ ์ธ์ด dataset(๊ต์ฐจ ์ธ์ด dadtaset) ์ฌ์ฉ
- ํ์ต ๋ฐฉ๋ฒ
- ์ธ๊ณผ ์ธ์ด ๋ชจ๋ธ๋ง(CLM, Casual Language Modeling)
- ์ฃผ์ด์ง ์ด์ ๋จ์ด set์์ ํ์ฌ ๋จ์ด์ ํ๋ฅ ์ ์์ธก
- ๋ง์คํฌ ์ธ์ด ๋ชจ๋ธ๋ง(MLM, Masked Language Modeling)
- Token์ 15%๋ฅผ masking(80-10-10๊ท์น ์ ์ฉ)ํ๊ณ mask๋ token์ ์์ธก
- ๋ฒ์ญ ์ธ์ด ๋ชจ๋ธ๋ง(TLM, Translation Language Modeling)
- ์๋ก ๋ค๋ฅธ ๋ ์ธ์ด๋ก์ ๋์ผํ text๋ก ๊ตฌ์ฑ๋ ๋ณ๋ ฌ ๊ต์ฐจ ์ธ์ด data๋ฅผ ์ด์ฉํด ํ์ต
- ์๋ก ๋ค๋ฅธ ์ธ์ด๋ฅผ ๋ํ๋ด๊ธฐ ์ํด์ ์ธ์ด embedding์ ์ฌ์ฉํ๊ณ , ๋ ๋ฌธ์ฅ ๋ชจ๋ ๋ณ๋์ ์์น embedding์ ์ฌ์ฉ.
- ์ธ๊ณผ ์ธ์ด ๋ชจ๋ธ๋ง(CLM, Casual Language Modeling)
- XLM ์ฌ์ ํ์ต
- CLM์ฌ์ฉ
- MLM์ฌ์ฉ
- TLM๊ณผ ๊ฒฐํฉํด MLM์ฌ์ฉ
- CLM, MLM์ ์ฌ์ฉํด XLM์ ํ์ต์ํค๋ ๊ฒฝ์ฐ ๋จ์ผ ์ธ์ด dataset์ ์ฌ์ฉ.
- TLM์ ๊ฒฝ์ฐ ๋ณ๋ ฌ dataset์ ์ฌ์ฉ
- MLM๊ณผ TLM์ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ MLM๊ณผ TML์ผ๋ก ๋ชฉ์ ํจ์๋ฅผ ๋ณ๊ฒฝ
- ์ฌ์ ํ์ต๋ XLM์ ์ง์ ์ฌ์ฉํ๊ฑฐ๋ BERT์ ๋ง์ฐฌ๊ฐ์ง๋ก downstream task์์ fine tuning ํ ์ ์์
- XLM-R ์ดํดํ๊ธฐ
- XLM-RoBERTa๋ก ๊ต์ฐจ ์ธ์ด ํํ ํ์ต์ ์ํ SOTA ๊ธฐ์
- ์ฑ๋ฅํฅ์์ ์ํด XLM์์ ๋ช๊ฐ์ง๋ฅผ ๋ณด์ํ ํ์ฅ version
- MLM๋ง์ผ๋ก ํ์ต์ํค๊ณ TLM์ ์ฌ์ฉํ์ง ์์. ์ฆ ๋จ์ผ ์ธ์ด dataset๋ง ํ์
- 2.5TB์ Common crawl dataset ์ฌ์ฉ
- ์ธ์ด๋ณ BERT
- sentence-BERT๋ก ๋ฌธ์ฅ ํํ ๋ฐฐ์ฐ๊ธฐ
- ๊ณ ์ ๊ธธ์ด์ ๋ฌธ์ฅ ํํ์ ์ป๋๋ฐ ์ฌ์ฉํ๋ ์ฌ์ ํ์ต๋ BERT ๋๋ ํ์ model
- vanilla BERT๋ ๋ฌธ์ฅ ํํ์ ์ป์ ์ ์์ง๋ง ์ถ๋ก ์๊ฐ์ด ๋ง์ด ๊ฑธ๋ ค ์ด๋ฅผ ๊ฐ์ ํ๊ณ ํ model
- ๋ฌธ์ฅ ์ ๋ถ๋ฅ์ ๋ ๋ฌธ์ฅ์ ์ ์ฌ๋ ๊ณ์ฐ๋ฑ์ ๋๋ฆฌ ์ฌ์ฉ
-
- [CLS] token์ ํํ์ ๋ฌธ์ฅ ํํ์ผ๋ก ์ฌ์ฉํ ๋์ ๋ฌธ์ ์ ์ ํนํ fine tuning ์์ด ์ฌ์ ํ์ต๋ BERT๋ฅผ ์ง์ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ [CLS] token์ ๋ฌธ์ฅ ํํ์ด ์ ํํ์ง ์์
-
- ๋ชจ๋ token์ ํํ์ poolingํด ๋ฌธ์ฅ ํํ์ ๊ณ์ฐ
- ํ๊ท pooling: ๋ชจ๋ ๋จ์ด(token)์ ์๋ฏธ๋ฅผ ๊ฐ์ง
- ์ต๋ pooling: ์ค์ํ ๋จ์ด(token)์ ์๋ฏธ๋ฅผ ๊ฐ์ง
- ๋ชจ๋ token์ ํํ์ poolingํด ๋ฌธ์ฅ ํํ์ ๊ณ์ฐ
- sentence-BERT ์ดํดํ๊ธฐ
- ์ฒ์๋ถํฐ ํ์ต์ํค์ง ์๊ณ ์ฌ์ ํ์ต๋ BERT(๋๋ ํ์model)์ ์ ํํด ๋ฌธ์ฅ ํํ์ ์ป๋๋ก fine tuningํจ
- ์ฆ, sentence-BERT๋ ๋ฌธ์ฅ ํํ์ ๊ณ์ฐํ๊ธฐ ์ํด fine tuning๋ BERT model
- ์ด ๋คํธ์ํฌ
- ๋ฌธ์ฅ ์ ๋ถ๋ฅ task: ๋ ๋ฌธ์ฅ์ด ์ ์ฌํ์ง ์๋์ง๋ฅผ ๋ถ๋ฅ
- ๋ฌธ์ฅ ์ ํ๊ท task: ๋ ๋ฌธ์ฅ ์ฌ์ด์ ์๋ฏธ ์ ์ฌ๋ ์์ธก
- ํธ๋ฆฌํ๋ ๋คํธ์ํฌ
- ๊ธฐ์ค๋ฌธ๊ณผ ๊ธ์ ๋ฌธ ์ฌ์ด์ ์ ์ฌ๋๊ฐ ๋์์ผ ํ๊ณ ๊ธฐ์ค๋ฌธ๊ณผ ๋ถ์ ๋ฌธ ์ฌ์ด์ ์ ์ฌ๋๊ฐ ๋ฎ์์ผ ํ๋ ํํ ๊ณ์ฐ
- domain-BERT
- ํน์ domain ๋ง๋ญ์น์ ํ์ต์ํจ BERT
- VideoBERT๋ก ์ธ์ด ๋ฐ ๋น๋์ค ํํ ํ์ต
- VideoBERT๋ ์ธ์ด ํํ ํ์ต๊ณผ ๋์์ video ํํ๋ ํ์ต. Image caption์์ฑ, Video caption, video์ ๋ค์ frame ์์ธก๋ฑ์ ์ฌ์ฉ
- ์ฌ์ ํ์ต
- ์ฌ์ ํ์ต์๋ ๊ต์ก์ฉ video ์ฌ์ฉ. video์์ ์ธ์ด token๊ณผ ์๊ฐ token ์ถ์ถ
- cloze task
- ์ธ์ด-์๊ฐ(linguistic-visual) ์ ๋ ฌ
- ์ธ์ด์ ์๊ฐ token์ด ์๊ฐ์ ์ผ๋ก ์ ๋ ฌ๋์ด ์๋์ง๋ฅผ ์์ธก, ์ฆ text(์ธ์ด token)์ด video(์๊ฐ์ token)๊ณผ ์ผ์นํ๋์ง ์ฌ๋ถ๋ฅผ ์์ธก
- [CLS] token์ ํํ์ ์ฌ์ฉํด ์ธ์ด์ ์๊ฐ token์ด ์๋ก ์ ๋ ฌ๋๋์ง ์์ธก
- VideoBERT ์์ฉ
- ๋ค์ ์๊ฐ token ์์ธก
- ์๊ฐ token์ ์ ๋ ฅํด ์์ 3๊ฐ์ ๋ค์ ์๊ฐ token ์์ธก
- Text-Video ์์ฑ
- Text๊ฐ ์ฃผ์ด์ง๋ฉด ํด๋นํ๋ ์๊ฐ token ์์ฑ
- video ์๋ง
- Video๋ฅผ ์ ๋ ฅํ๋ฉด ์๋ง ์์ฑ
- ๋ค์ ์๊ฐ token ์์ธก
- BART ์ดํดํ๊ธฐ
- Facebook AI์์ ๋์ ํ transformer architecture๊ธฐ๋ฐ์ noise ์ ๊ฑฐ autoencoder
- ์์๋ text๋ฅผ ์ฌ๊ตฌ์ฑํด ํ์ต
- ์ฌ์ ํ์ต๋ BART๋ฅผ ์ฌ์ฉํ์ฌ ์ฌ๋ฌ downstream task์ fine tuning ๊ฐ๋ฅ.
- Text ์์ฑ์ ๊ฐ์ฅ ์ ํจ
- RoBERTa์ ๋น์ทํ ์ฑ๋ฅ
- ๊ตฌ์กฐ
- Encoder์ decoder๊ฐ ์๋ transformer model
- ์์๋ text๋ฅผ encoder์ ๋ ฅ -> encoder๋ฅผ ์ฃผ์ด์ง text ํํ ํ์ต ํ decoder๋ก ์ ๋ฌ -> decoder๋ encoder๊ฐ ์์ฑํ ํํ์ ๊ฐ์ ธ์ ์์๋์ง ์์ ์๋ณธ text ์ฌ๊ตฌ์ฑ
- Encoder๋ ์๋ฐฉํฅ, decoder๋ ๋จ๋ฐฉํฅ
- ๋ณต์์์ค, ์๋ณธ text์ decoder๊ฐ ์์ฑํ text์ฌ์ด์ cross entropy ์์ค์ ์ต์ํ ํ๋๋ก ํ์ต
- Noising ๊ธฐ์
- Token masking: ๋ช ๊ฐ์ token์ ๋ฌด์์๋ก masking
- Token Deletion: ์ผ๋ถ token์ ๋ฌด์์๋ก ์ญ์
- Text Infilling: ๋จ์ผ [MASK] token์ผ๋ก ์ฐ์๋ token set๋ฅผ masking
- Sentence Permutation: ๋ฌธ์ฅ์ ์์๋ฅผ ๋ฌด์์๋ก ์์
- Document Rotation: ์ฃผ์ด์ง ๋ฌธ์์์ ๋ฌธ์์ ์์์ด ๋ ์ ์๋ ํน์ ๋จ์ด(token)์ ๋ฌด์์๋ก ์ ํํ ํ ์ ํํ ๋จ์ด ์์ ๋ชจ๋ ๋จ์ด๋ฅผ ๋ฌธ์ ๋์ ์ถ๊ฐ
- KoBERT
- KoGPT2
- KoBART