728x90
๋ฐ์ํ
1. Intro
- ๊ธฐ์กด์ GPT๋ ์์ ๋ชจ๋ธ์์๋ ๋ค ํ๋ฐฉํฅ์ผ๋ก๋ง ์์ง์ด๋(์ผ→์ฐ)๋ก ์์ธกํ๋ ๋ชจ๋ธ์ ๋ง๋ค์์์
- ํ์ง๋ง ์๋ค๋ค์ ๊ฒฐ๊ตญ ์์ธกํ ๋๋ ๋จ๋ฐฉํฅ์ผ๋ก๋ง ์ฝ์ด์ ์์ธกํด์ผ ํ๊ธฐ์ ์ด์ ํ ํฐ๋ง ์ฐธ์กฐํ ์ ์๋ค๋ ๋จ์ ์ด ์กด์ฌ ⇒ ๋ค์ ๋ฌธ์ฅ์ ๋ํ ์์ธก์ด๋ ๋ฌธ์ฅ ๋น์นธ์ ๋ํ ์์ธก์ ๊ฒฝ์ฐ ์น๋ช ์ ์.
- ๊ทธ๋์ bERT๋ฅผ ํตํด ์๋ฐฉํฅ ๋ชจ๋ธ์ ์ฌ์ฉํ๋ ค๊ณ ํ๋ ๊ฒ์.
2. Overall architecture
- ํน์ ๊ณผ์ ๋ฅผ ํ๊ธฐ ์ ์ฌ์ ํ๋ จ ์๋ฒ ๋ฉ(embedding)์ ํตํด ์ฑ๋ฅ์ ์ข๊ฒ ํ ์ ์๋ ์ธ์ด๋ชจ๋ธ
- ์ฌ์ ํ๋ จ ์ธ์ด ๋ชจ๋ธ์(pre-training)
- unlabeled data๋ก๋ถํฐ pre-train ์งํ ํ ํ์, labeled data๋ฅผ ๊ฐ์ง๊ณ fine-tuning ์งํํ๋ ๋ชจ๋ธ
- encoder ๋ชจ๋ธ๋ง ๊ฐ์ ธ๋ค ์
BERT๊ฐ ๋์ ์ฑ๋ฅ์ ์ป์ ์ ์์๋ ๊ฒ์, ๋ ์ด๋ธ์ด ์๋ ๋ฐฉ๋ํ ๋ฐ์ดํฐ๋ก ์ฌ์ ํ๋ จ๋ ๋ชจ๋ธ ์ ๋ง๋ ํ, ๋ ์ด๋ธ์ด ์๋ ๋ค๋ฅธ ์์ (Task)์์ ์ถ๊ฐ ํ๋ จ๊ณผ ํจ๊ป ํ์ดํผํ๋ผ๋ฏธํฐ๋ฅผ ์ฌ์กฐ์ ํ์ฌ ์ด ๋ชจ๋ธ์ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ!
BERT๋ฅผ ์ฌ์ฉํ์ง ์์ ์ผ๋ฐ ๋ชจ๋ธ๊ณผ์ ์,: ๋ถ๋ฅ๋ฅผ ์ํ๋ ๋ฐ์ดํฐ → LSTM, CNN ๋ฑ์ ๋จธ์ ๋ฌ๋ ๋ชจ๋ธ → ๋ถ๋ฅ
BERT๋ฅผ ์ฌ์ฉํ ๋ชจ๋ธ๋ง ๊ณผ์ ,: ๊ด๋ จ ๋๋ ์ฝํผ์ค(๋ฌธ์ฅ) → BERT → ๋ถ๋ฅ๋ฅผ ์ํ๋ ๋ฐ์ดํฐ → LSTM, CNN ๋ฑ์ ๋จธ์ ๋ฌ๋ ๋ชจ๋ธ → ๋ถ๋ฅ
๋๋์ ์ฝํผ์ค๋ฅผ Encoder๊ฐ ์๋ฒ ๋ฉํ๊ณ (์ธ์ด ๋ชจ๋ธ๋ง), ์ด๋ฅผ ์ ์ดํ์ฌ ํ์ธํ๋ํ๊ณ Task๋ฅผ ์ํ.(NLP Task)
- input ๋ฐ์ดํฐ๋ฅผ ๋ฃ์
- ์ด๋, embedding์ด 3๊ฐ๊ฐ ์์ (token, segment, position)⇒ token์ ๊ฒฝ์ฐ ํ ํฐ ๋จ์๋ก ๋๋ ์ฃผ๋ ( bert์ ๊ฒฝ์ฐ๋ ing ๋จ์๊น์ง๋ก๋ ๋๋)⇒ position์ ๋ง์ฐฌ๊ฐ์ง๋ก ์์น ์ ๋ณด ์ค
- ⇒ ์๋ค๋ค์ ๋ค ๋ํด์ค ๊ฐ์ด input์ผ๋ก ๋ค์ด๊ฐ๊ฒ ๋จ
- ⇒๊ทธ ๋ค์ segment๋ฅผ ์ฌ์ฉํ๋๋ฐ, ๋ฌธ์ฅ ๊ตฌ๋ถ์ ์ํด ํด์ค(์๋ A๋ฌธ์ฅ์ ํด๋นํ๋ ํ ํฐ์ด๊ณ , ์๋ B๋ฌธ์ฅ์ ํด๋นํ๋ ํ ํฐ์ด๋ค!)
- pre-training์ ์งํํ๋๋ฐ ๋ ๊ฐ์ง์ ํ์ต์ ๋์์ ์งํํจ
- 1) MLM⇒ input์ ์ผ์ ๋น์จ์ ๋ง์คํนํ๊ณ ๋ง์คํน ๋ ํ ํฐ์ ์์ธกํจ⇒ ์๋ ๋ฌธ์ฅ๊ณผ ๋ฌธ์ฅ ๊ฐ์ ๊ด๊ณ๊ฐ ์ฑ๋ฆฝ๋๋์ง ์๋์ง์ ์ฌ๋ถ๋ฅผ ์๊ธฐ ์ํด ์งํํจ
- 2) NSP
- Fine-tuning์ ํด์ค๋ค. ์ด๋ BERT์ pre-trained ๋ ๋ชจ๋ธ์ ๊ทธ๋ฅ ๊ทธ๋๋ก ๊ฐ์ ธ์ด(์ด๊ธฐ ํ๋ผ๋ฏธํฐ ๊ฐ์) ์๋ labeled ๋ฐ์ดํฐ ์ฌ์ฉํจ. ๋ค ๋ชจ๋ธ ์์ฒด๋ ๊ฐ์ง๋ง, ๋ง์ง๋ง ์ถ๋ ฅ layer๊ฐ ๋ญ๋์ ๋ฐ๋ผ์ output์ด ๋ฌ๋ผ์ง๊ฒ ๋จ
- ๋ชจ๋ธ ํ์ต์์ผ์ ๊ฒฐ๊ณผ๊ฐ ๋์ถ!
3. Input Representations
- Token embeddings⇒ ์ฐ๋ฆฌ๊ฐ ์๋ ์๋ ์๋ฒ ๋ฉ
- ⇒ ํ ํฐ ๋จ์๋ก ๋๋ ์ค๋ค
- Segment Embeddings⇒ ๋ ๊ฐ์ ๋ฌธ์ฅ์ ๊ตฌ๋ถํด์ฃผ๊ธฐ ์ํ ์๋ฒ ๋ฉ ⇒ ์ A๋ฌธ์ฅ์ ํด๋น, ์๋ B๋ฌธ์ฅ์ ํด๋น
- Position Embeddings⇒ ์์น ์ ๋ณด ํ์ต
⇒ ๋ค ๋ํด์ค
4. Pre-training
Task 1 : (์ฒซ๋ฒ์งธ ๋น์ง๋ ํ์ต) Masked LM
- ํธ๋์คํฌ๋จธ์ ๊ฒฝ์ฐ ๋จ์ด๋ฅผ input์ผ๋ก ๋ฃ์ผ๋ฉด ๊ทธ ๋ค์ ๋จ์ด๊ฐ output์ผ๋ก ๋์ค๋๋ก ์์ธกํ์ง๋ง, BERT์ ๊ฒฝ์ฐ ํด๋น ๋จ์ด๋ฅผ mask ์ฒ๋ฆฌํ๊ณ ๊ทธ ๋จ์ด๊ฐ ๋ฌด์์ธ์ง๋ฅผ ์์ธก.
- Masked LM์ ์ฌ์ฉํ๋ ์ด์ :⇒ ์๋ฐฉํฅ์ผ๋ก ํ์ต์ ์งํ์ํค๋๋ฐ ์๋ฐฉํฅ์ฑ์ ์ถ๊ตฌํ๊ฒ ๋๋ฉด ๊ฒฐ๊ตญ ๊ฐ์ ์ ์ผ๋ก ์์ธกํ๋ ค๋ ๋จ์ด๋ฅผ ์ฐธ์กฐํ ์ ๋ฐ์ ์๊ฒ ๋จ. (์๋ค ์๋ค ๊ฐ๋ค ํ๊ธฐ ๋๋ฌธ์)⇒ ์ ์ฒด ํ ํฐ์ 15%๋ฅผ ๋ฌด์์๋ก mask ์ฒ๋ฆฌํจ.⇒ ๋ฐ๋ผ์, pre-train ๊ณผ์ ์์๋ ํจ์จ์ ์ผ์ง ๋ชฐ๋ผ๋ fine-tuning ์ค์๋ mask ํ ํฐ์ด ์์. (mask์ ๊ฒฝ์ฐ, pre-trained model์ ๋ง๋ค๊ธฐ ์ํด์ ์ฌ์ฉ) ๊ทธ๋์ pre-training๊ณผ fine-tuning ์ฌ์ด์ ๋ถ์ผ์น ๋ง๋ค์ด๋ ⇒ ์ด๋ ๊ฒ ํ๋ฉด ๋จ์ mask๋ก๋ง ์ฒ๋ฆฌํด์ pre-trained ๋ ๋ชจ๋ธ์ ์ฌ์ฉํ๋ ๊ฒ๋ณด๋ค ๋ค๋ฅธ ์์ ๋ ๋ฃ๊ณ , ์๋ ๊ฐ๋ ๋ฃ๊ณ ์ด๋ ๊ฒ ์ฒ๋ฆฌ๋ฅผ ํ๋ฉด ๋น์ฐํ ๋ ์ ์์ธกํ๊ฒ ๋ ๊ฒ์.
- ⇒ ์ด๋ฐ์์ผ๋ก mask ํ ํฐ์ด ๊ต์ฐจ ์ํธ๋กํผ loss๋ฅผ ํ์ฉํด์ ์๋ ํ ํฐ์ ์์ธกํ๋๋ก ํ์ตํจ.
- ⇒ ๊ทธ๋์ ์ ์ฒด 15%๋ฅผ mask๋ก ์นํํ๋ ๊ฒ์ด ์๋๋ผ 15% ์ค์์ 80% mask๋ก ์นํํ๊ณ , 10%๋ ๋๋คํ ํ ํฐ์ผ๋ก ์นํํ๊ณ , ๋๋จธ์ง๋ 10%์ ํ ํฐ์ ๊ทธ๋๋ก ์ฌ์ฉ.
- ⇒ ํ์ง๋ง fine-tuning์์๋ ์ด mask ํ ํฐ์ ์ฌ์ฉํ์ง ์์ → pre-training์์๋ง ํ์ฉ
- ⇒ ๊ทธ๋ ๊ธฐ ๋๋ฌธ์ ์ผ์ token์ mask ์ฒ๋ฆฌํด๋ฒ๋ฆผ
Task 2: (๋๋ฒ์งธ ๋น์ง๋ ํ์ต) NSP(Next Sentence Prediction)
- ์ ์์๊บผ์ ๋์์ ํ๋ จ์ด ์งํ๋จ.
- ๋ ๊ฐ์ ๋ฌธ์ฅ์ input์ผ๋ก ๋ฃ๊ณ ํด๋น ๋ฌธ์ฅ์ด ๋ค์ ๋ฌธ์ฅ์ธ์ง ์๋์ง๋ ํ์ต์ํด.
- NSP๋ฅผ ์ฌ์ฉํ๋ ์ด์ :⇒ ์ง๋ฌธ์ ๋ํ ๋ต(QA) or ๋ฌธ๋งฅ์๋ ๋ฌธ์ฅ๋ค(์ผ๋ฐ์ ์ธ ํ๋ฆ์ ๋ฌธ์ฅ) ์ task๋ค์ ๋ ๋ฌธ์ฅ(์๋ค) ์ฌ์ด์ ๊ด๊ณ๋ฅผ ์ดํด ํด์ผ ํจ.⇒ ๋ ๋ฌธ์ฅ A,B๋ฅผ ์ ๋ ฅ์ผ๋ก ๋ฃ๊ณ , B๋ฌธ์ฅ์ 50%์ A๋ฌธ์ฅ ๋ค์์ผ๋ก ๋ฃ๊ณ , ๋๋จธ์ง 50% ๋ถ๋ถ์ B๋ ๊ด๋ จ์๋ ์์์ ๋ฌธ์ฅ์ ๋ฃ์. ์ด๋ B๊ฐ ๋ค์๋ฌธ์ฅ์ธ ๊ฒฝ์ฐ (ISNEXT), ๊ด๋ จ์๋ ๋ฌธ์ฅ์ ๊ฒฝ์ฐ (NOTNEXT)๋ผ๊ณ ๋ถ๋ฅํจ.
- ⇒ ์ด ๊ฒฝ์ฐ, LM์ ํตํด์ ํ์ตํ๊ธฐ ์ฝ์ง ์์์ NSP(๋ค์ ๋ฌธ์ฅ ์์ธก)์ ๋ํด์๋ ํจ๊ป ํ์ต์ํด.
5. Fine-tuning
- ์ด ์น๊ตฌ์ ๊ฒฝ์ฐ, ์ฌ์ ํ์ต๋ชจ๋ธ(pre-trained model์ธ ๋ฒํธ ๋ชจ๋ธ)์ ๊ฐ์.
- ๋ชจ๋ธ ํ๋ผ๋ฏธํฐ์ ์ด๊น๊ฐ์ด ๊ฐ๋ค๊ณ ๋งํ ์ ์์
- ๋ง์ง๋ง ์ถ๋ ฅ์ ๋ํ layer์ ๋ฐ๋ผ์ ๋ฌ๋ผ์ง
ex) ๋ถ๋ฅ ๋ฌธ์ ์ ๊ฒฝ์ฐ, ๋ถ๋ฅํ๊ณ ์ถ์ ๊ฐฏ์(K)์ ๋ฐ๋ผ classification layer์ ๋ถ์ฌ์ค
- ๋ ๊ฐ ๋ฌธ์ฅ์ ๋ํ ๊ด๊ณ ๋ถ๋ฅ(Sentence Pair Classification)ex) ์ํ ๋ฌธ์ ๊ฐ์ ๊ธ๋ค์ ๋ฌถ์ด์ฃผ๋ ๋ฐ์ ์ฐ์⇒ ์๋ก์ ์ฃผ์ฅ์ ๋ณด์ํ๋์ง ์์ถฉํ๋์ง ์ค๋ฆฝ์ธ์ง๋ ์์ธกํ ์ ์
- ์์ญ ์์ธก ⇒ ์์์ ๋์จ ๋ ๋ฌธ์ฅ๊ณผ ๊ฐ์ด ๋ค๋ฅธ ๋จ์ด๊ฐ ์ฐ์์ง๋ง ๊ฐ์ ๋ป์ ๊ฐ์ง๊ณ ์๋์ง ์๋์ง๋ฅผ ์์ธกํ ์ ์์
- ๋ฌธ์ฅ ํ๋์ ๋ํ ๋ถ๋ฅ(Single Sentence Classification)ex) ์ ํ์ ๋ถ๋ฅํ๋ ํ ์คํฌ ⇒ ํด๋น ํ ์คํธ๊ฐ ์ ํ์ธ๊ฐ ์๋๊ฐ๋ฅผ ๋ถ๋ฅํจ
- ๋ฌป๊ณ ๋ตํ๊ธฐ (Question & Answering) ์ง๋ฌธ์ ๋ํ ๋ต ์ถ๋ ฅex) ์ง๋ฌธ๊ณผ ๋ณธ๋ฌธ์ด ์ฃผ์ด์ก์ ๋ ๋ณธ๋ฌธ ์์ ๋ต์ด ์๋ ๋ถ๋ถ์ ์์ธกํจ
- ⇒ "๋ฐ์ง์ฑ์ด ๋ด EPL ํด๋ฝ์?"์ด ์ฃผ์ด์ก์ ๋, ๋ณธ๋ฌธ ์ค์ "... PSV ์์ธํธํธ๋ฒ๊ณผ ์๊ธ๋๋ ํ๋ฆฌ๋ฏธ์ด๋ฆฌ๊ทธ์ ๋งจ์ฒด์คํฐ ์ ๋์ดํฐ๋, ํธ์ค ํํฌ ๋ ์ธ์ ์ค์์ ํ๋ํ์๋ค...." ⇒ ๋ฐ์ค์ด ๊ทธ์ด์ง ๋ถ๋ถ์ ์์ธกํจ.
- ๋ฌธ์ฅ ๋ด ๋จ์ด ๋ผ๋ฒจ๋ง(Single Sentence Tagging Task) - ํ ํฐ taggingex) ์ด ๋จ์ด๊ฐ ๋ช ์ฌ์ธ์ง ํ์ฉ์ฌ์ธ์ง,,(ํํ์๋ถ์) ๊ฐ ํ ํฐ์ ๋ํด ๋ถ๋ฅํ๋ ๊ฒ.ex) ๊น ⇒ ์์ , ์ง ⇒ ์ค๊ฐ, ์ ⇒ ๋
- ⇒ ๋๋ ๊ฐ์ฒด๋ช ์ธ์ (named entity recognition) ⇒ ์ด๋ฆ์ ์์, ์ค๊ฐ, ๋์ ๋ผ๋ฒจ๋ก ์์ธก
5. BERT์ ์ฐ์ด๋ Transfer Learning
- BERT๋ฅผ ์จ๋จน๋๋ค์ ์๋ฏธ:⇒ ๋ง์ ๋ฐ์ดํฐ๋ฅผ ํตํด ํ์ตํด์ ๋ง๋ BERT๋ผ๋ ๋ชจ๋ธ์ ์ถ์ฝ๋ ์ง์์ ์ ์ ์์ ๋ฐ์ดํฐ์๋ค๊ฐ ์ ์ฉํ๋ ๊ฒ!
- 1. ํผ์ฒ ๋ฝ๊ธฐ (Feature Extraction)⇒ Bag of word vector ๋ง๋ฅ ๊ทธ๋ฅ ์์์ ๊ด๋ จ์์ด BERT์์ ๋์จ vector ๊ฐ๋ค์ ๋ค๋ฅธ ๋จธ์ ๋ฌ๋ ๋ชจ๋ธ์ input์ผ๋ก ์ฌ์ฉํ๋ ๊ฒฝ์ฐ
- ์ฌํ์ต (Finetuning)
- ๋ฐ์ดํฐ๊ฐ ์ข ๋ ๋ง์ด ์์ ๊ฒฝ์ฐ ์ฌ์ฉํจ
728x90
๋ฐ์ํ
'Deep Learning > [๋ ผ๋ฌธ] Paper Review' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
Seq2Seq (0) | 2023.07.05 |
---|---|
U-Net (0) | 2023.07.05 |
VIT [AN IMAGE IS WORTH 16X16 WORDS: TRANSFORMERS FOR IMAGE RECOGNITION AT SCALE] (0) | 2023.07.05 |
RetinaNet (0) | 2023.07.05 |
GPT-1 (0) | 2023.07.05 |