언어 모델(Language Model)이란?
언어 모델(LM)에 대해서 공부해보겠습니다.
1. 언어모델(LM,Language Model)
사람의 언어(자연어)를 이해하고 생성할 수 있도록 컴퓨터에 학습시킨 모델입니다.
문장의 생성은 확률로서 구현할 수 있습니다.
(문장의 출현 확률 예측이나 이전 단어들을 참고해서 다음 단어를 예측하는 등..)
예를들어 "나는 오늘 학교에 OO"란 문장이 있을때,
OO에 들어갈 단어는 무엇일까요?
1. 갔다
2. 먹는다
3. 신난다
우리는 자연스럽게 1번을 고를 수 있습니다.
인간의 두뇌에 문맥이 학습되어 있기 때문입니다.
이같은 인간의 두뇌를 모방해서
많은 문장을 수립해서 단어와 단어 사이의 출현 빈도를 세어 확률을 계산하는 것이 언어모델입니다.
즉, 인간이 경험을 통해 언어를 습득하는 원리와 매우 유사하며,
언어 모델은 이 원리를 수학적 함수와 확률 이론으로 구현한 것입니다.
1- 2. 언어모델의 수식
모델의 수식은 아래와 같습니다.
Likelihood(우도)를 최대로 만들며 학습되며,
입력 데이터는 n개의 문장으로 구성됩니다.
Likelihood란 고정된 데이터에 parameter(모수)를 변경해나가며,
데이터를 가장 잘 표현하는 parameter를 찾아나가는 방식입니다.
해당 내용은 이전 포스팅에서 공부했습니다.
https://aigaeddo.tistory.com/87
Likelihood와 MLE(Maximum Likelihood Estimation)
확률분포가 특정 데이터를 얼마나 잘 나타내는지에 대해서 공부해보려고 합니다. 1. LikelihoodLikelihood(우도)란 확률모형에서 parameter(모수)를 변수로 보고,고정된 데이터를 얼마나 잘 설명하는지를
aigaeddo.tistory.com
문장 예시) 문장 X가 "나는 학교에 간다"라면,
단어1(x1) => 나는
단어2(x2) => 학교에
단어3(x3) => 간다
로 표현됩니다.
위의 예시를 이해하고 아래를 살펴보겠습니다.
문장X이 나올 확률은 각 단어의 Chain Rule(연쇄 법칙)로서 표현됩니다.
해당 당법으로 앞의 단어를 참고해서 뒤의 단어가 나올 확률을 나타내는 분포를 구합니다.
해당 수식에 log를 취해주면 곱이 덧셈으로 변경되며 아래와 같은 익숙한 liklihood 수식으로 변경됩니다.
수식을 Loss로서 최대화(argmax) 하면서
단어로 문장을 예측하는 가장 최적의 parameter를 구하면 모델의 훈련 방식이 됩니다.
1-2. 언어모델의 사용
언어모델은 크게 두 가지로 훈련되어 사용될 수 있습니다.
1. 여러개의 문장이 주어졌을 때 가장 좋은 문장 고르기
x1, x2 두 문장이 있고, θ를 parameter로 가지는 언어모델에 두 문장을 넣어서
문장 출현 확률을 구할 수 있습니다.
가령, P(x1;θ) > P(x2;θ)라면 x1 문장 출현 확률이 더 크기 때문에 더 좋은 문장이라고 할 수 있습니다.
- x1 = "나는 학교에 갔다."
- x2 = "나는 갔다 학교에."
의 두 문장이 있는 경우 x1이 더 좋은 문장임을 모델에게 학습시킬 수 있음.
응용예시 : 문법검사, 자연스러운 자동 번역 등..
2. 주어진 단어들의 다음 단어 예측하기
글의 가장 처음에 들은 예시입니다.
"나는 오늘 학교에 OO"란 문장이 있을때,
OO에 들어갈 단어는 무엇일까요?
1. 갔다
2. 먹는다
3. 신난다
다음에 올 수 있는 단어들의 확률을 계산하고, 그 중에서 가장 확률이 높은 단어를 선택합니다.
응용예시 : 챗봇/대화 생성(ChatGPT 등), 자동완성, 시나리오 생성기 등..
Reference
[NLP] 언어 모델(Language Model) 이란?
언어 모델(Language Model) 언어 모델(Language Model)이란, 문장의 확률을 나타낸 모델이다. 즉 문장 자체의 출현 확률을 예측 이전 단어들이 주어졌을 때, 다음 단어를 예측 과 같은 기능을 위한 모델인
gbdai.tistory.com