GPT1을 이해하기 위한 내용(1) - Language model

govlKH·2023년 7월 4일
0

논문리뷰

목록 보기
5/45

Language Model

GPT1은 Language model을 사용하는데, language model은 무엇이며 왜 language model을 사용하는지 알아보자!

Language Model이란?

언어 모델(Language Model)은 문장이 얼마나 자연스러운지 확률적 계산을 통해 문장의 특정 위치에 출현하기 적합한 단어를 예측하는 모델이다.
쉽게 말해서 이전에 등장한 단어들을 이용하여, 다음에 나올 단어를 확률적 예측을 통해 판단하는 것이다!

Q. 음 개념은 알겠지만, 이를 어떻게 구사하는 것이지?

=> "텍스트 데이터의 패턴과 통계적 특성을 학습"하여 문장 생성, 문장 완성, 기계 번역, 질의응답 등의 자연어 처리 작업에 활용된다.

이러한 문장 내에서 단어 간의 관계와 문맥을 이해하는 능력을 갖추기 위해서는
'통계에 기반한 언어 모델' 과 '인공 신경망에 기반한 언어 모델' 을 사용한다.

통계에 기반한 언어 모델은 실질적으로 사용하는 자연어를 근사하기에는 많은 한계가 있었다.
-> 이러한 문제점을 요즘 들어 인공 신경망이 해결해주며 통계를 기반한 언어 모델의 사용 및 중요도가 많이 줄었다.

GPT1 또한 인공 신경망에 기반한 언어 모델이지만, 언어 모델의 전체적인 흐름 및 넓은 시야를 위해 통계를 기반한 언어모델을 이해하는 것도 큰 도움이 된다고 생각한다.

통계적 언어 모델 VS 인공 신경망 언어 모델

통계적 언어 모델 (Statistical Language Model):

통계적 언어 모델은 언어의 통계적 특성을 이용하여 단어 또는 문장의 확률을 추정하는 방법이다.
주로 n-gram 모델이나 히든 마르코프 모델 (Hidden Markov Model, HMM) 등이 사용되며, 이러한 모델은 문장 내에서 단어 간의 관계를 확률적으로 모델링하여 다음 단어를 예측하거나 문장의 적합성을 평가한다. 통계적 언어 모델은 주어진 문맥에서 가장 확률적으로 나올 수 있는 단어를 선택하는 것에 초점을 두고 있다. 그러나 통계적 언어 모델은 장기적인 문맥을 고려하는 데 제약이 있다는 단점이 존재한다.

1) 조건부 확률

조건부 확률은 두 확률에 대해 아래와 같은 관계를 갖는다.

이는 Chain Rule에 의해 일반화 될 수 있는데, 아래와 같이 표현할 수 있다.

2) 문장에 대한 확률

위에서 언급한 조건부 확률을 이용하여 문장에 대한 확률을 한번 구해보자.
각 단어는 문맥이라는 관계를 통해 이전 단어의 영향을 받았다.
이를 식으로 풀어쓴다면, 아래와 같은 예시를 표현할 수 있다.

  • 문장 'An adorable little boy is spreading smiles'의 확률

즉, 문장의 확률을 구하기 위해 조건부 확률을 이용하여 각 단어에 대한 예측 확률들을 곱하는 것이다.

3) 카운트 기반의 접근

문장의 전체 확률을 구하기 위해서 이전 단어에 대한 조건으로 다음 단어에 대한 예측 확률을 모두 곱한다는 것은 알겠다.

그렇다면 SLM은 어떠한 계산으로 '이전 단어를 기반으로한 다음 단어의 예측 확률'을 구할 수 있을까?

바로 여기서 카운트 기반의 접근을 이용한다.

예를 통해 이해해 보자.
An adorable little boy가 나왔을 때, is가 나올 확률인 P(is|An adorable little boy)를 구해본다고 했을 때,

그 확률은 위와 같으며, 예를 들어 기계가 학습한 코퍼스 데이터에서 An adorable little boy가 100번 등장했는데 그 다음에 is가 등장한 경우는 30번이라고 하자.
이 경우 P(is|An adorable little boy)는 30%가 되는 것이다.

하지만 여기서 한계점이 발생한다!

4) 카운트 기반 접근의 한계 - 희소 문제(Sparsity Problem)

위와 같은 예시를 보면, 확률을 구해야 하는데 카운트에 기반한 접근을 한다면 굉장히 방대한 양의 데이터가 필요하다.
만약 위의 예시를 봤을 때, An adorable little boy is 하는 단어 시퀀스가 없다면 바로 0이 되어 버린다. 현실에서는 많이 쓰이는 단어 시퀀스 및 자연스러운 문법이라고 해도 이러한 경우 0으로 내버리기에 이는 적절한 방법이 아니다.

이러한 충분한 데이터를 관측하지 못하여 언어를 정확히 모델링하지 못 하는 문제를 희소 문제(sparsity problem) 이라고 한다.

이 문제를 해결하기 위해 나온 것이 이어서 언급할 n-gram 언어 모델이다.
추가적으로 스무딩이나 백오프 같은 여러가지 일반화 기법이 존재한다.

하지만 이러한 방법으로도 희소 문제에 대한 근본적인 해결책은 되지 못하였기에, 결국 언어 모델의 트렌드는 통계적 언어 모델에서 인공 신경망 언어 모델로 넘어가게 된다.


인공 신경망 언어 모델 (Neural Network Language Model):

인공 신경망 언어 모델은 딥러닝의 한 형태인 인공 신경망을 사용하여 언어 모델링을 수행하는 방법이다.
특히 순환 신경망 (Recurrent Neural Network, RNN)이나 그 변형 모델들이 주로 사용된다. 인공 신경망 언어 모델은 단어나 문장을 벡터 형태로 표현하고, 이를 이용하여 다음 단어를 예측하거나 문장의 적합성을 평가한다.
그렇기에 인공 신경망 언어 모델은 장기적인 문맥을 고려할 수 있으며, 보다 정교한 언어 모델링이 가능하다.

GPT는 인공 신경망 언어 모델에 속하며, 인공 신경망의 변형인 Transformer 아키텍처를 사용하여 언어 모델링을 수행하고, 장기적인 문맥을 이해할 수 있는 능력을 갖추고 있다.

왜 GPT-1는 Language Model을 사용하는가?

language model의 장점은 특별히 레이블링이 필요없다는 것이다.
거의 대다수가 레이블링이 있는 학습 데이터가 필요했다. 사람이 직접 레이블링을 하는 경우은 시간도 오래 걸리고 그렇다고 100%정확하지 않다.

language model은 현재 단어를 가지고 다음 단어를 예측하기에 별도로 사람을 고용해서 레이블링을 할 필요가 없다는 것이다. 엄청난 양의 데이터를 학습하게 된다면 우리가 알지 못하던 특성도 학습할 수 있기에 아주 뛰어난 자연어 처리 모델을 만들 수 있다는 것이 GPT1의 핵심이다.

GPT-1은 다양한 unlabeled 텍스트로 language model을 generative하게 pretraining하고, 각 작업에 맞게 fine-tuning(generative, disciminative, ...)을 시킨다.

여기에서 "Generative Training""Discriminative Training" 이 나오는데, 이 둘은 자연어 처리 및 기계 학습 분야에서 각각 다른 목적과 방식으로 사용된다.

이에 대하여 다음 포스트에서 자세하게 이야기를 해보겠다!!


참고 문헌 : https://wikidocs.net/21695

profile
수학과 대학원생. 한 걸음씩 꾸준히

0개의 댓글