AI/LLM

태태개발일지 - 언어모델의 역사

태태코 2025. 9. 17. 11:04
반응형

언어모델의 역사

 

언어모델

 

언어모델은 가장 자연스러운 다음 단어를 예측하는 모델.

정의에 따르면 딥러닝일 필요는 없다.다만 요즘 딥러닝으로 구현하는 추세일 뿐이다.

 

모델의 역사

 

통계적언어모델 RNN 언어모델 트랜스포머 BERT  Vs GPT Vs T5   GPT의 잠재능력 LLM

 

트랜스포머

 

구글에서 AI번역기를 만들기 위해서 트랜스포머 구조를 제안

 

트랜스포머는 인코더-디코더로 구성된 아키텍쳐
번역하고자하는 문장이 인코더로 입력되면, 디코더로 번역되어 출력된다.

 

 

인코더 자연어의 이해

디코더 자연어의 생성

 

동작과정

 

인코더로 데이터가 들어가게되면, 디코더로 이동을하고 디코더의 값 하나하나가 다시 디코더의 입력으로 들어가서 생성

 

bert

bert는 기존 트랜스포머 아키텍쳐에서 인코더만 추출하여 사용하는 모델이다.

 

 

우리는 사전 학습된 모델(Pre-trained Model) BERT를 사용할 수 있다. 이러한 Pre-trained BERT에 우리 데이터로 우리가 풀고 싶은 문제에 맞게 추가 학습을 하면 이를 파인 튜닝(Fine-tuning)이라고 한다.

 

 

 

bert로 해결할 수 있는 문제

 

구글은 BERT를 만들기 위해서 트랜스포머 인코더에 특유의 학습을 진행. 언어 이해 능력을 키우는 학습 방법을 Masked Language Model이라 한다.

 

방대한 데이터를 구글이 직접 학습 후에 사람들이 사용할 수 있도록 BERT를 공개하였으므로

우리는 이 학습을 사전 학습(Pre-training)이라 한다.

 

BERT는 양쪽 문맥을 참고하여 모델이 원래 단어를 맞추려고 하는 모습을 보여준다.

 

즉 양쪽이나 한쪽 단어를 mask 처리하고 그 mask를 맞추는 방식으로 학습한다.

 

bert의 사전 학습 방법

  1. BERT의 입력으로 넣을 때에는 [SEP]라는 이름의 특별 토큰을 사용해서 문장을 구분한다.
  2. 첫번째 문장의 끝에 [SEP] 토큰을 넣고, 두번째 문장이 끝나면 역시 [SEP] 토큰을 붙여준다.
  3. 문장의 맨 앞에 [CLS] 라는 이름의 토큰을 입력하고 해당 위치의 BERT의 마지막 출력층에서 이어지는 문장인지 아닌지 결정하도록 학습한다.
  4. 일반적으로 1 또는 0 두 가지의 값 중 하나로 정해두고 결정하도록 한다. 이를 위해 BERT는 전체 문맥을 모두 고려하여 결정한다.

 

bert는 생성과 어울리지 않는다.

 

bert는 분류, 키워드 추출, 임베딩에 특화되어있다.

 

 

GPT

 

트랜스포머의 디코더를 기반으로 만들어진 모델 

이전 단어들로부터 다음 단어를 예측하는 언어 모델이다.

 

 

 

구글 이미지 출처

 

아래 사진과 같이 예측값이 다음 입력으로 들어가서 새로운 텍스트를 생성하는 모델이다.

 

BART, T5

 

트랜스포머 인코더-디코더를 모두 사용하여

  1. Pre-training. 
  2. 입력 문장에 노이즈 추가(Masking) 
  3. 인코더로부터 정보를 받아 디코더에서 원래 문장을 복원.

인코더-디코더 구조는 입, 출력의 길이가 달라도 되기 때문에 입력 단어를 가리는 행위인 마스킹(Masking)을 훨씬 유연하게 가능. (BERT는 토큰 2개를 가려도 2개를 가렸다는 것이 보여진 채로 문제를 푸는데, BART는 토큰 n개를 가리고 몇 개 가렸는지 말해주지 않고 문제를 풀게 할 수 있다.)

 

LLM은 왜 디코더 모델인가

1. 계산이 효율적일 것.
2. 텍스트 생성이 가능할 것.

 

BART는 2번은 만족하지만, 1번의 디코드모델이 계산에 워낙 효율적이다 보니 디코드 모델로만 사용한다.

 

 

인코더와 디코더

 

인코더 

입력문장을 이해하는 부분이다.  문장 전체를 한번에 처리한다.

 

양방향으로 문맥을보며, 문장의 모든 단어가 서로를 볼 수 있다.

 

분류문제

레이블을 1, 0 긍정 부정으로 나누어서 [CLS]토큰을 사용해 문장전체 정보를 담아서 숫자로 문제를 해결한다

추출

문서내의 답변의 위치를 시작위치와 끝 위치를 찾아내는 방식으로 문제를 변환한다. 모든단어의 시작점/끝점 점수를 계산

 

디코더

출력문장을 생성하는 부분이다. 한번에 한단어씩 순차적으로 생성한다.

한방향으로 문맥을 보며, 현재단어는 이전단어만 볼 수 있다.

분류문제

모든 분류 문제를 택스트 생성으로 바꾸어서 푼다. 질문에 대답한다.

추출

질문과 문서를 주고 답변을 생성하는 방식 그저 직접 답변생성

.

 

 

 

장단점

 

 bert

장점

  1. 작은모델도 성능이 뛰어나다
  2. 분류, 키워딩, 임베딩에 뛰어나다
  3. 상대적 작은 크기임에도 불구하고 문맥 이해능력이 뛰어나다

단점

  1. 모델이 너무 작아서 파라메타가 적다
  2. 두줄 이상의 문장이 섞일경우 힘들다

 

gpt

장점

  1. 자연스러운 텍스트 생성능력
  2. 하나의 모델로 여러가지 테스크 가능
  3. 큰 파라메터 입력가능

단점

  1. 모델의 크기가 너무 클수있다.
  2. 할루미네이션이있다.

 

 

 

 

거대모델

언어 모델은 내부적으로 텍스트를 특정 단위로 분할하여 처리한다.

특정 단위로 분할하여 처리하는 이 작업을 토큰화(Tokenization)이라고 하며, 분할된 단위를 토큰(Token)이라고 한다.

동일한 텍스트의 입력에 대해서 토큰이 나눠지는 결과는 거대 언어 모델마다 전부다 다르다.

 

 

딥 러닝 언어 모델의 파라미터 개수(인간의 뇌세포에 비유)를 말할 때는 10억 개부터는 B라는 표현을 자주 사용한다.

ex)

GPT-3의 파라미터 개수는 1,750억개 => 175B 

LLama-3의 파라미터 개수는 700억개 => 70B

파라미터 수가 클 수록 좀 더 좋은 성능을 가지는 경향이 있지만, 그만큼 더 많은 GPU를 필요로 한다.

 

 

반응형