저번 게시물에선 자연어를 처리하는 과정과 함께 기술들을 알아봤습니다. 이번 게시물에서는 BERT, GPT, DistilBERT등 다양한 모델들에 대해서 알아보고, 해당 모델들의 주요 특징과 응용 분야, 다른 모델들과의 차이점등을 알아보도록 하겠습니다.

다양한 자연어 처리 모델들
GPT(Generative Pre-trained Transformer)
우리에게 잘 알려진 GPT는 자연어 처리(이하 NLP) 분야에서 널리 사용되는 모델 중 하나입니다. GPT는 OpenAI에 의해 개발되었으며, 대규모 데이터셋을 사용하여 사전 학습된 후, 특정 NLP 작업에 맞게 미세 조정됩니다. 이 모델은 주로 텍스트를 생성하는데 있어 강력한 성능을 보여줍니다.
사전 학습(Pre-training) : GPT는 사전에 인터넷에서 수집한 대규모 텍스트 데이터셋을 사용하여 학습됩니다. 이 과정에서 다음에 올 단어를 예측하는 방식으로 학습하며, 언어의 일반적인 문맥과 구조를 이해하게 됩니다.
미세 조정(Fine-tuning) : 사전 학습된 모델을 특정 작업에 맞게 조정합니다. 예를 들어, 내가 원하는 주제에 대한 질문에 답하거나, 원하는 스타일로 글을 작성하는 등 다양한 작업을 수행하기 위해 추가 학습을 진행합니다.
주요 특징으로는 먼저 다양성이 있습니다. GPT는 다양한 언어로 적용될 수 있으며, 텍스트 생성이나 번역, 요약 등 여러 분야에서 뛰어난 성능을 보이며, 사전에 학습된 모델은 다양한 작업물에 미세 조정을 통해 적용될 수 있습니다. 그로인해 많은 언어 처리 작업에서 효율적으로 활용됩니다. 또한, 과거 초기 출시때는 인위적이고 부자연스럽지만, 지속적으로 업그레이드 되면서 GPT는 자연스러운 언어 스타일로 텍스트를 생성할 수 있으며, 사람이 작성한 것과 유사한 수준의 텍스트를 만들어낼 수 있습니다.
BERT (Bidirectional Encoder Representations from Transformers)
BERT는 구글에서 2018년에 발표한 혁신적인 자연어 처리 모델입니다. Transformer 아키텍처를 기반으로 작동됩니다. BERT는 두가치 대표적인 특징이 있는데 먼저 양방향성이 있습니다. 양방향성은 문장의 양방향적 맥락을 고려하며 해당 모델이 문장을 보며 단어를 예측할 때 해당 단어의 왼쪽과 오른쪽 모두의 문맥을 고려하여 사용한다는 의미입니다. 그리고 사전 훈련(Pre-training)과 미세 조정(Fine-tuning)이 있는데, BERT는 먼저 대규모 텍스트 데이터셋에서 사전에 학습한 후, 특정 작업에 맞게 미세 조정됩니다. 사전 학습 단계에서는 일반적인 언어 모델링 목표를 사용하고, 미세 조정 단계에서는 특정 작업에 맞게 조정됩니다.
구성요소와 학습방식
BERT는 Transformer 메커니즘의 학습방식을 이용하며, 트랜스포머의 인코더 부분만 사용합니다. 트랜스포머 인코더는 Self-Attention 메커니즘을 통해 입력 문장의 모든 단어 간의 관계를 학습합니다. 그리고 입력 표현으로는 각 단어를 임베딩 벡터로 변환하는 토큰 임베딩, 문장이 하나 혹은 두 개로 구성될 수 있으며 각 문장이 다른 세그먼트 임베딩을 가지는 세그먼트 임베딩, 단어의 위치 정보를 포함하여 모델이 순서를 인식할 수 있게 만드는 위치 임베딩이 있습니다.
학습 방식에는 마스킹과 다음 문장 예측이 있는데, 먼저 마스킹 언어 학습은 입력된 문장의 일부 단어를 무작위로 마스킹하고, 이후 마스킹된 단어를 예측하는 방식으로 학습합니다. 그리고 다음 문장 예측의 경우, 두 개의 쌍을 입력받아 두 문장이 분절된 문장인지, 혹은 연속된 문장인지를 예측하며 학습합니다. 이를 통해 문장 간의 관계를 학습하게 됩니다.
Transformer
Transformer는 NLP와 같은 시퀀스 모델링 딥러닝 모델입니다. 2017년 구글 연구팀이 제안한 이 모델은 주로 번역, 텍스트 생성 등에서 뛰어난 성능을 보여주었습니다. Transformer의 기본 개념으로는 크게 자기주의적 매커니즘, 인코더- 디코더 구조로, 여기서 말하는 자기 주의란, 입력 시퀀스의 모든 단어가 서로의 관계를 이해하고, 중요한 단어에 더 많은 가중치를 부여하는 방식입니다. 이런 자기 주의 매커니즘을 통해 문맥을 더 잘 이해할 수 있습니다. 인코더-디코더 구조는 인코더는 입력된 문장을 처리하여 의미 있는 표현을 만들고, 디코더는 입력된 표현을 사용해 출력 문장을 생성합니다.
Transformer의 작동 방식
입력 처리 : 입력된 문장은 단어 임베딩과 포지셔널 인코딩을 통해 벡터로 변환됩니다.
인코더 처리 : 각 인코더된 레이어는 입력된 벡터를 멀티헤드 자기 주의와 피드포워드 신경망을 통해 처리합니다. 이후 여러 인코더 레이어가 쌓여 입력 문장의 복잡한 패턴을 학습합니다.
디코더 처리 : 디코더는 출력되는 문장의 이전 단어를 마스크드 멀티헤드 자기 주의와 피드포워드 신경망을 통해 처리합니다. 이후 인코더-디코더 주의를 통해 인코더의 출력을 참조하여 더 정확한 출력을 생성합니다. 그리고 여러 디코더 레이어가 쌓여 최종 출력 문장을 생성합니다.
ELMo(Embeddings from Language Models)
ELMo는 NLP 분야에서 사용되는 사전 훈련된 언어 모델입니다. 2018년 Allen Institute for AI에 의해 소개된 모델로, 문맥에 따라 단어의 의미가 변할 수 있다는 점을 반영하여, 주어진 문맥에서 단어의 의미를 보다 동적으로 생성하는 데 특화되어 있습니다.
ELMo의 주요 특징과 작동 원리
문맥적 단어 벡터 : ELMo는 각 단어에 대해 고정된 벡터 대신, 주변 문맥에 따라 단어의 벡터 표현이 달라집니다. 이로 인해 같은 단어라도 상황에 따라 다른 문맥에서 다른 의미를 가질 때 각각 다른 벡터로 표현하면서, 좀더 가변적인 표현이 가능해집니다.
양방향 LSTM 모델 : ELMo는 표현을 학습할때, 양방향을 기반으로 합니다. 텍스트를 처리할때 앞에서 뒤로, 뒤에서 앞으로 각각 한 번씩 처리하며, 두 방향에서 얻은 정보를 결합하여 보다 나은 단어의 문맥적 표현을 생성합니다.
다층 표현 : ELMo는 여러 레이어에서의 표현을 결합하여 최종 단어 벡터를 생성합니다. LSTM의 각 레이어는 다른 수준의 의미를 내포하며, 이를 결합함으로써 더 풍부한 정보를 단어 벡터에 포함시킬 수 있습니다.

T5(Text-to-Text Transfer Transformer)
Google에서 만든 모델로, 모든 작업을 텍스트로 입력을 받아 텍스트 출력을 내는 형식으로, 변환하는 아이디어를 기반으로 합니다. 이 모델은 다양한 자연어의 이해와 생성 작업에 유연하게 적용될 수 있도록 설계되었습니다.
T5는 모든 NLP 작업을 하나의 일관된 문제로 바라보는데, 바로 “주어진 텍스트의 문맥을 파악하고, 적절한 텍스트를 출력하고 생성하는 것”입니다. 예를 들어, 번역 작업에서는 “영어 문장을 프랑스어로 번역해”와 같은 명령어와 함께 영어 문장을 입력으로 받고, 프랑스어 번역문을 출력으로 생성합니다. 요약 작업에서는 “이 문장을 요약해”와 같은 명령어와 원문을 입력으로 받아, 요약문을 출력으로 생성하는 방식입니다.
T5는 Transformer 모델을 기반으로 하며, 크게 인코더와 디코더 두 부분으로 구분됩니다. 인코더와 디코더 과정을 수행하면서, T5는 다양한 크기의 모델이 제공되어, 작업의 복잡성과 필요한 성능에 따라 적절한 모델을 선택할 수 있습니다.
자연어 처리 모델들의 공통적인 특징
이렇게 알아본 자연어 처리 모델들은 다르면서도 몇가지 비슷한 공통점들이 있습니다. 먼저 방대한 양의 대규모 데이터 학습을 통해 사전 학습됩니다. 이렇게 학습되면서 언어의 다양한 구조와 패턴을 파악할 수 있으며 이렇게 학습된 데이터들을 가지고 사전 학습을 진행한 후, 목적에 맞는 작업에 미세 조정하여 최적화를 시킵니다. 또한 주로 Transformer 아키텍처를 기반으로 이용합니다.
향후 발전 방향
자연어 처리 모델의 미래 발전 방향은 여러 가지 측면에서 예상할 수 있습니다. 우선, 모든 처리 모델들과 데이터의 크기가 지속해서 커질 것으로 보입니다. 이 말은 앞으로 자연어 처리 모델들이 더욱 복잡하고 정교한 언어 이해 및 생성 능력을 가능하게 할 것입니다. 하지만 이와 동시에 모델의 크기가 증가할수록, 계산 비용을 증가시키기 때문에, 보다 효율적인 모델 구조와 학습 방법 개발에 대한 연구도 활발히 이루어질 것입니다. 이를 통해 가성비가 좋은 방법을 찾게 될 것입니다.
또한, 현재는 텍스트를 위주로 학습하고 처리하지만, 앞으로는 텍스트뿐만 아니라 이미지, 음성과 같은 다른 모달리티를 동시에 처리할 수 있는 멀티 학습이 더욱 발전할 것입니다. 이는 모델에 더 풍부한 맥락적 이해와 상호작용을 가능하게 할 것입니다. 현재 모델들은 가끔씩 맥락에 대한 이해에 한계를 보이는데, 앞으로는 더 깊은 언어 이해 능력과 추론 능력을 갖춘 모델이 개발될 것으로 기대됩니다. 개인화된 모델도 더욱 일반화될 것이며, 이는 보편적적으로 널리 퍼진 GPT와는 다르게 특정 개인에 맞춤화된 모델로, 보다 사용자가 원하는 결과를 제공할 수 있게 할 것입니다.
마지막으로, NLP 모델이 발전함에 따라, 예전부터 나왔던 문제인 편향성과 윤리적 문제를 해결하기 공정하고 투명한 모델 개발에 대한 강조와 노력이 더욱 중요해질 것입니다. 이러한 다양한 발전 방향은 NLP의 적용 범위를 확장하고, 실제 세계의 다양한 문제를 해결하는 데 기여할 것입니다.
다른글 보러가기
인공지능 컴퓨터와 사람이 대화할 수 있게 만들어 주는 자연어 처리(NPL)기술 1편