์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- ๋ฐ์ดํฐ๋ถ์
- c++
- Titanic
- ๋ถ์
- ๋จธ์ ๋ฌ๋
- ๋์
- ์๊ณ ๋ฆฌ์ฆ
- ์ํ์ฝ๋ฉ
- react
- ๋ฐฑ์ค
- ๋ค์ดํฐ๋ธ
- nlp
- ๊นํ
- ํ๊ตญ์ด์๋ฒ ๋ฉ
- ๊ฒฐ์ ํธ๋ฆฌ
- ํ์ดํ๋
- ์๋ฒ ๋ฉ
- native
- cs231n
- ์ธํ๋ฐ
- Git
- ๋ฐ์ดํฐ
- Kaggle
- AI
- ๋ฅ๋ฌ๋
- ๋ฆฌ์กํธ
- ๋ฐ์ดํฐ์๊ฐํ
- ์๋๋ก์ด๋์คํ๋์ค
- linearalgebra
- ์ ํ๋์ํ
- Today
- Total
yeon's ๐ฉ๐ป๐ป
BERT๋ ๋ณธ๋ฌธ
Reference
- AIFFEL LMS Exploration 13
- https://ebbnflow.tistory.com/151
ํธ๋์คํฌ๋จธ(transformer)
: 2017๋ ๊ตฌ๊ธ์ด ์ ์ํ seq2seq ๋ชจ๋ธ
- ์ต๊ทผ ์์ฐ์ด ์ฒ๋ฆฌ์์ BERT๋ GPT๊ฐ์ ํธ๋์คํฌ๋จธ ๊ธฐ๋ฐ ์ธ์ด๋ชจ๋ธ์ด ๊ฐ๊ด๋ฐ๊ณ ์์
๐ฅ seq2seq: ํน์ ์์ฑ์ ์ง๋ ์ํ์ค๋ฅผ ๋ค๋ฅธ ์์ฑ์ ์ํ์ค๋ก ๋ณํํ๋ ์์
BERT
- BERT ๋ฑ์ฅ ์ด์ ์๋ ๋ฐ์ดํฐ ์ ์ฒ๋ฆฌ ์๋ฒ ๋ฉ์ Word2Vec ๋ฑ์ ๋ง์ด ์ฌ์ฉํ์ง๋ง, ์์ฆ์ ๋๋ถ๋ถ BERT๋ฅผ ๋ง์ด ์ฌ์ฉํจ
๐ฅ ์๋ฒ ๋ฉ
: ์์ฐ์ด๋ฅผ ์ซ์์ ๋์ด์ธ (๊ณ์ฐ ๊ฐ๋ฅํ) ๋ฒกํฐ(vector)๋ก ๋ฐ๊พธ๋ ๊ฒ
[ ํ ์คํธ ๋ถ๋ฅ ๋ชจ๋ธ์ ๋ง๋ ๋ค๊ณ ๊ฐ์ ]
๐ฅ BERT๋ฅผ ์ฌ์ฉํ์ง ์๋๋ค๋ฉด
: ๋ถ๋ฅ๋ฅผ ์ํ๋ ๋ฐ์ดํฐ -> LSTM, CNN ๋ฑ์ ๋จธ์ ๋ฌ๋ ๋ชจ๋ธ -> ๋ถ๋ฅ
๐ฅ BERT๋ฅผ ์ฌ์ฉํ ๋ชจ๋ธ๋ง
: ๊ด๋ จ ๋๋ ์ฝํผ์ค(๋ง๋ญ์น) -> BERT -> ๋ถ๋ฅ๋ฅผ ์ํ๋ ๋ฐ์ดํฐ -> LSTM, CNN ๋ฑ์ ๋จธ์ ๋ฌ๋ ๋ชจ๋ธ -> ๋ถ๋ฅ
๋๋ ์ฝํผ์ค๋ก BERT ์ธ์ด๋ชจ๋ธ์ ์ ์ฉํ๊ณ , ์ถ๋ ฅ์ ์ถ๊ฐ์ ์ธ ๋ชจ๋ธ (RNN, CNN ๋ฑ์ ๋จธ์ ๋ฌ๋ ๋ชจ๋ธ)์ ์์ ์ํ๋ Task๋ฅผ ์ํํ๋ ๊ฒ.
[ BERT Input: Token Embedding + Segment Embedding + Position Embedding ]
Token Embedding
BERT๋ ํ ์คํธ์ tokenizer๋ก Word Piece model์ด๋ผ๋ subword tokenizer๋ฅผ ์ฌ์ฉํ๋ค. ๋ฌธ์(char) ๋จ์๋ก ์๋ฒ ๋ฉํ๋ ๊ฒ์ด ๊ธฐ๋ณธ์ด์ง๋ง, ์์ฃผ ๋ฑ์ฅํ๋ ๊ธด ๊ธธ์ด์ subword๋ ํ๋์ ๋จ์๋ก ๋ง๋ค์ด์ค๋ค. ์์ฃผ ๋ฑ์ฅํ์ง ์๋ ๋จ์ด๋ ๋ค์ subword ๋จ์๋ก ์ชผ๊ฐ์ค๋ค. ์ด๋ ์์ฃผ ๋ฑ์ฅํ์ง ์๋ ๋จ์ด๊ฐ OOV(Out-of-vocabulary) ์ฒ๋ฆฌ๋๋ ๊ฒ์ ๋ฐฉ์งํด์ฃผ๋ ์ฅ์ ๋ ์๋ค. ๊ทธ๋์ ์ต์ข ์ ์ผ๋ก Word Piece ๋ชจ๋ธ์ ๊ฐ ์๋ฒ ๋ฉ์ด ์ ๋ ฅ๋๋ค.
Segment Embedding
- ๊ธฐ์กด Transformer์ ์๋ ๋ ํนํ ์๋ฒ ๋ฉ. ์ด๋ ๊ฐ ๋จ์ด๊ฐ ์ด๋ ๋ฌธ์ฅ์ ํฌํจ๋๋์ง ๊ทธ ์ญํ ์ ๊ท์ ํ๋ ๊ฒ. ์ด์ ์คํ ์์ KorQuAD ๋ฐ์ดํฐ์ ์ ๋ถ์ํ๋ฉฐ ์ดํด๋ณด์์ง๋ง, ํนํ QA ๋ฌธ์ ์ฒ๋ผ ์ด ๋จ์ด๊ฐ Question ๋ฌธ์ฅ์ ์ํ๋์ง, Context ๋ฌธ์ฅ์ ์ํ๋์ง ๊ตฌ๋ถ์ด ํ์ํ ๊ฒฝ์ฐ ์ด ์๋ฒ ๋ฉ์ ๋งค์ฐ ์ ์ฉํ๊ฒ ์ฌ์ฉ๋๋ค.
- Sentence Embedding์ด๋ผ๊ณ ๋ ๋ถ๋ฆฌ๋ฉฐ, ํ ํฐ์ํจ ๋จ์ด๋ค์ ๋ค์ ํ๋์ ๋ฌธ์ฅ์ผ๋ก ๋ง๋๋ ์์ ์ด๋ค. BERT์์๋ ๋ ๊ฐ์ ๋ฌธ์ฅ์ ๊ตฌ๋ถ์([SEP])๋ฅผ ๋ฃ์ด ๊ตฌ๋ถํ๊ณ , ๊ทธ ๋ ๋ฌธ์ฅ์ ํ๋์ Segment๋ก ์ง์ ํ์ฌ ์ ๋ ฅํ๋ค. BERT์์๋ ์ด ํ Segment๋ฅผ 512 sub-word ๊ธธ์ด๋ก ์ ํํ๋๋ฐ, ํ๊ตญ์ด๋ ๋ณดํต 20 sub-word๊ฐ ํ ๋ฌธ์ฅ์ ์ด๋ฃฌ๋ค๊ณ ํ๋ฉฐ ๋๋ถ๋ถ์ ๋ฌธ์ฅ์ 60 sub-word๊ฐ ๋์ง ์๋๋ค๊ณ ํ๋ BERT๋ฅผ ์ฌ์ฉํ ๋ ํ๋์ Segment์ 128๋ก ์ ํํ์ฌ๋ ์ถฉ๋ถํ ํ์ต์ด ๊ฐ๋ฅํ๋ค๊ณ ํ๋ค.
Position Embedding
- ์ด ์๋ฒ ๋ฉ์ ๊ธฐ์กด์ Transformer์์ ์ฌ์ฉ๋๋ position embedding๊ณผ ๋์ผํ๋ค.
- BERT์ ์ ์๋ ์ด์ ์ Transformer ๋ชจ๋ธ์ ๋ฐํํ์๋๋ฐ, Transformer๋ CNN, RNN๊ณผ ๊ฐ์ ๋ชจ๋ธ ๋์ Self-Attention์ด๋ ๋ชจ๋ธ์ ์ฌ์ฉํ๋ ๋ชจ๋ธ์ด๋ค. BERT๋ Transformer์ ์ธ์ฝ๋, ๋์ฝ๋ ์ค ์ธ์ฝ๋๋ง ์ฌ์ฉํ๋ค.
- Token ์์๋๋ก ์ธ์ฝ๋ฉ์ ํ๋ค.
> BERT๋ ์ด๋ฏธ ์ด 3.3์ต๊ฐ์ ๋จ์ด(BookCorpus + Wikipedia Data)์ ๊ฑฐ๋ ์ฝํผ์ค๋ฅผ ์ ์ ํ๊ณ , ์๋ฒ ๋ฉํ์ฌ ํ์ต์ํจ ๋ชจ๋ธ์ด๋ค.
Pre-training
: ๋ฐ์ดํฐ๋ค์ ์๋ฒ ๋ฉํ์ฌ ํ๋ จ์ํฌ ๋ฐ์ดํฐ๋ค์ ๋ชจ๋ ์ธ์ฝ๋ฉํ์์ผ๋ฉด, ์ฌ์ ํ๋ จ์ ์ํฌ ๋จ๊ณ์ด๋ค. ๋ณดํต ๊ธฐ์กด์๋ ๋ฌธ์ฅ์ ์ผ์ชฝ -> ์ค๋ฅธ์ชฝ์ผ๋ก ํ์ตํด ๋ค์ ๋จ์ด๋ฅผ ์์ธกํ๋ ๋ฐฉ์์ด๊ฑฐ๋, ์์ธกํ ๋จ์ด์ ์ข์ฐ ๋ฌธ๋งฅ์ ๊ณ ๋ คํด ์์ธกํ๋ ๋ฐฉ์์ ์ฌ์ฉํ๋ค.
ํ์ง๋ง BERT๋ ์ธ์ด์ ํน์ฑ์ ์ ํ์ตํ๋๋ก,
- MLM (Masked Language Model)
- NSP (Next Sentence Prediction)
์ ๋ ๊ฐ์ง ๋ฐฉ๋ฒ์ ์ฌ์ฉํ๋ค.
MLM (Masked Language Model)
- ์ ๋ ฅ ๋ฐ์ดํฐ๊ฐ '๋๋ <mask> ๋จน์๋ค' ์ผ ๋ BERT ๋ชจ๋ธ์ด '<mask>'๊ฐ '๋ฐฅ์' ์์ ๋ง์ถ ์ ์๋๋ก ํ๋ ๋จ์ด ๋ชจ๋ธ. ์ด์ ์ Next Token Prediction Language Model๊ณผ ๋๋น์์ผ ์ด๋ฅธ๋ฐ '๋ค์ ๋น์นธ์ ์๋ง์ ๋ง์' ๋ฌธ์ ๋ฅผ ์์ฒญ๋๊ฒ ํ์ด๋ณด๋ ์ธ์ด ๋ชจ๋ธ์ ๊ตฌํํ ๊ฒ์ด๋ค.
- ์ ๋ ฅ ๋ฌธ์ฅ์์ ์์์ ํ ํฐ(<mask>)์ ๋ฒ๋ฆฌ๊ณ , ๊ทธ ํ ํฐ์ ๋ง์ถ๋ ๋ฐฉ์์ผ๋ก ํ์ต ์งํ
NSP (Next Sentence Prediction)
- ์ ๋ ฅ ๋ฐ์ดํฐ๊ฐ '๋๋ ๋ฐฅ์ ๋จน์๋ค. <SEP> ๊ทธ๋์ ์ง๊ธ ๋ฐฐ๊ฐ ๋ถ๋ฅด๋ค.' ๊ฐ ์ฃผ์ด์ก์ ๋ <SEP>๋ฅผ ๊ฒฝ๊ณ๋ก ์ข์ฐ ๋ ๋ฌธ์ฅ์ด ์์๋๋ก ์ด์ด์ง๋ ๋ฌธ์ฅ์ด ๋ง๋์ง๋ฅผ ๋ง์ถ๋ ๋ฌธ์ . BERT ๋ชจ๋ธ์ ์ด ๋ ๋ฌธ์ฅ์ ์ ๋ ฅ์ผ๋ก ๋ฐ์์ ๋ ์ฒซ ๋ฒ์งธ ๋ฐ์ดํธ์ NSP ๊ฒฐ๊ด๊ฐ์ ๋ฆฌํดํ๊ฒ ๋จ.
- BERT ๋ชจ๋ธ์ ์ ๋ ฅ ๋ถ๋ถ์ ๋ณด๋ฉด ํ ์คํธ ์ ๋ ฅ์ด [Input] ์ฒ๋ผ ์ฃผ์ด์ก์ ๋, ์ค์ ๋ชจ๋ธ์ ์ ๋ ฅ๋๋ ๊ฒ์ Token, Segment, Position Embedding 3๊ฐ์ง๊ฐ ๋ํด์ง ํํ์ด๋ค. ์ค์ ๋ก๋ ๊ทธ ์ดํ layer normaliation๊ณผ dropout์ด ์ถ๊ฐ๋ก ์ ์ฉ๋๋ค.
๊ฑฐ ๋๋ฌด ์ด๋ ต๋ค ์ด๋ ค์ ,, !
'Computer ๐ป > Deep Learning' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋์] ํ์ดํ ์น ์ฒซ ๊ฑธ์ - Chap 03. ์ ํํ๊ท๋ถ์ (0) | 2023.01.04 |
---|---|
[๋ฐ๋ฐ๋ฅ๋ถํฐ ์์ํ๋ ๋ฅ๋ฌ๋] 2. ํผ์ ํธ๋ก (0) | 2022.05.06 |
[Pytorch] 9-4. Batch Normalization (0) | 2022.02.17 |
[Pytorch] 9-3. Dropout (0) | 2022.02.17 |
[cs231n] 10๊ฐ. RNN (Recurrent Neural Networks) (0) | 2022.02.12 |