언어 모델 이해하기

jungjun hur·2021년 12월 18일
0

모델이란?

모델(model)이란 표현은 정말 다양한 분야에서 쓴다. 하지만 대부분의 경우 어떤 것을 따라하기 위한 방법론이고 자연스럽게 추상화, 단순화 등을 포함한다.

언어 모델

따라서 언어 모델이란 "언어"를 따라하기 위한 방법론이다. 한가지 언어라고 하더라도 연령, 성별, 지역에 따라 사용하는 표현이 다르기도 하고 말로 할 때와 글로 쓸 때 처럼 매체가 다르거나 경제, 법, 의학 등 분야의 차이도 고려할 때 언어를 모사하기는 복잡해 보인다.

이렇게 복잡한 "언어"를 모사하기 위해 단순화 하는 방법론 중 하나가 "다음 단어(문장) 예측(생성)하기" 이다. 어떤 단어가 주어졌을 때 다음 단어로 무엇이 올지 확률로 나타낼 수 있다면 확률이 높은 단어를 선택하는 과정을 반복하면 문장을 생성할 수 있고 문장 생성을 반복하면 언어 생성이 가능하다. 또 어떤 문장을 봤을 때 해당 문장(단어의 연결)이 나타날 확률을 계산해서 확률이 높으면 자연스러운 문장 확률이 낮으면 어색한 문장 등의 판단도 가능하다.

이런 접근은 실생활에서도 직관적으로 이해가 가능한데, 우리는 언어를 사용할 때 단순히 소리 또는 문자로만 언어를 이해하지 않는다. 한국어가 모국어인 필자는 평상시 대화에서 주변에 소음이 있어도 대화에 아무런 문제가 없지만 영어 듣기 시험 때는 주변에서 누가 기침만 해도 문장을 이해하지 못한 경험이 있다. 이는 특정 상황에서 어떤 단어가 다음에 나올지, 어떤 의미의 문장이 나올지 예측하는 능력이 외국어인 영어가 모국어인 한국어에 비해 현저히 낮기 때문이다.

모국어와 외국어 만이 아니라 같은 한국어라고 하더라도 익숙하지 않은 분야의 내용을 접할 때는 단어 한 두 개만 놓쳐도 맥락을 잃는다. 예를 들어 경제, 법학, 의학 등의 분야 내용을 듣는 경우 어떤 문장과 단어가 나올지 예측할 수 없기 때문에 모든 소리에 집중해야 한다.

언어 모델을 만드는 방법

언어 모델을 만드는 가장 직관적인 방법은 말뭉치(다양한 분야의 글)를 모아 어떤 단어 다음에 어떤 단어가 나타났는지 세는 것이다. 이를 통계적 언어 모델이라고 한다. 통계적 언어 모델은 직관적이고 만드는 방법이 간단하면서도 괜찮은 성능을 보인다는 장점이 있지만 말뭉치 내에서 함께 나타나지 않았던 단어들의 경우 언어 모델을 통해 생성하거나 이해하는데에 한계가 있다는 단점이 있다. 이를 "일반화 능력이 부족하다"고 표현한다.

최근에는 딥러닝을 이용한 언어 모델을 많이 사용하는데, 기본적으로 비슷한 접근을 활용한다. 딥러닝 모델에 하나의 단어를 입력했을 때 다음 단어를 제대로 예측하도록 학습하거나 문장에 빈칸을 만들어 입력했을 때 빈칸의 단어를 맞추도록 한다(빈칸을 맞추는 테스트는 사람도 언어 시험에서 자주 접하는 유형이며, 주변에서 기침을 해도 문장을 알아들을 수 있는 것과 일맥상통한다).

딥러닝 언어 모델의 경우 단어를 낮은 차원의 연속적인 수로 표현하면서 단어 간의 관계를 더 잘 담을 수 있어지면서 통계적 언어 모델에 비해 일반화 성능에서 장점을 가진다. 이후 글을 통해 딥러닝 언어 모델과 단어를 낮은 차원의 연속적인 수로 표현하는 임베딩에 대해서 소개하겠다.

참고로 다음 단어를 맞추거나 빈칸을 맞추는 학습 방법은 기본적인 전처리 이외에는 사람이 시간과 노력을 들여 답안지를 만들 필요가 없다는 점에서 자연어처리에서 대량 학습을 가능하도록 했고 요즘 처럼 큰 모델을 대량의 데이터로 먼저 학습시키고 이후에 추가적인 학습을 통해 활용하는 Pretrained Language Model - Fine Tuning 방법의 기초가 된다.

profile
developer

0개의 댓글