Pre-training 방법

1️⃣ Mask language model

Untitled

decoder는 단어가 들어오면 다음 단어가 나오게 해서 전체 문장에 대한 context를 배웠는데 encoder는 문장이 한 번에 들어가는데 어떻게하면 self supervised learning을 할 수 있을까?

⇒ random으로 단어에 mask token을 씌우고 무슨 단어인지 예측하기

<aside> 💡 [gpt한테 물어봄]

BERT는 Transformer의 Encoder를 사용하여 문장을 표현하며, 이 Encoder는 문장의 양방향 문맥 정보를 동시에 고려할 수 있습니다. 즉, 주어진 단어를 이해하는 데 필요한 정보를 단어의 앞뒤 문맥에서 모두 얻을 수 있습니다.

그러나 기존의 언어 모델링 방식을 그대로 사용하면, 단어를 예측하는 과정에서 문장의 오른쪽 문맥이 노출되어버리므로, 양방향 문맥 정보를 제대로 활용할 수 없게 됩니다. 예를 들어, '나는 ____ 가 좋아.'라는 문장에서 빈칸을 채울 때, '좋아'라는 오른쪽 문맥을 알게 되면 빈칸의 단어를 쉽게 예측할 수 있게 됩니다.

따라서 BERT는 이러한 문제를 해결하기 위해 Masked LM이라는 전략을 사용합니다. Masked LM은 일부 단어를 무작위로 가리고 (mask), 이 가려진 단어를 본래의 문맥 정보를 바탕으로 예측하도록 합니다. 이를 통해 모델이 양방향 문맥 정보를 최대한 활용하도록 학습할 수 있습니다.

이러한 방식은 Transformer의 Encoder 구조를 최대한 활용하여 양방향 문맥 정보를 학습하는 데 도움을 줍니다. 그 결과, BERT는 다양한 자연어 처리 작업에서 뛰어난 성능을 보일 수 있게 됩니다.

</aside>

2️⃣ Next Sentence Prediction

pre train language model을 가지고 fine tuning에서 classification할 껀데 이를 위한 token을 학습해놓으면 어떨까? ⇒ CLS token

Untitled

Untitled

mask 단어를 예측하기 위함

multi task를 한 framework에 학습하고자 할 때 loss 더한다.

$L = wL_N+wL_M$

Untitled

mask lm loss$L_M$ next sentence loss $L_N$

Fine-tuning

Untitled

Untitled