LLM

딥러닝과 언어 모델링(2)

won-ian 2024. 8. 7. 00:33

※ 'LLM을 활용한 실전 AI 애플리케이션 개발' 책을 정리한 내용입니다.

 

작은 단위(단어)의 데이터가 연결되고, 그 길이가 다양한 데이터의 형태를 '시퀀스(sequence)'라고 한다.

 

RNN(순환 신경망)

입력하는 텍스트를 순차적으로 처리해서 다음 단어를 예측하는 기술로 모델이 '하나의 잠재 상태(hidden state)에 지금까지의 입력 텍스트의 맥락을 압축' 한다.

첫 번째 입력이 모델을 통과하면 잠재 상태에 첫 번째 입력의 정보가 쌓이고, 두 번째 입력이 모델을 통과하면 잠재 상태에 첫 번째와 두 번째 정보가 누적된다. 이렇게 입력이 늘어나면서 하나의 잠재 상태에 입력 텍스트의 맥락이 압축된다. 압축된 하나의 잠재 상태를 통해 RNN은 다음에 나올 단어를 예측한다. 

 

그래서 순차적으로 입력되는 단어를 하나의 잠재 상태에 압축하다 보니 먼저 입력한 단어의 의미가 점차 희석되며, 입력이 길어지는 경우 의미를 충분히 담지 못하고 성능이 떨어진다는 문제가 있다.

 

그래서 이러한 문제를 해결한 새로운 방식은 어텐션(attention) 연산을 사용한 트랜스포머 아키텍처이다.

 

트랜스포머 아키텍처는 맥락 데이터를 그대로 모두 활용해 다음 단어를 예측한다. 그렇기 때문에 성능을 높일 수 있다는 장점이 있지만, 입력 텍스트가 길어지면 맥락 데이터를 모두 저장하고 있어야 하기 때문에 메모리 사용량이 증가한다. 또한 다음 단어를 예측할 때마다 맥락 데이터를 모두 확인해야 하기 때문에 입력이 길어지면 예측에 걸리는 시간도 증가하는 단점이 존재한다.

 

구글의 BERT와 OPENAI의 GPT가 이 트랜스포머 아키텍처를 사용하고 있다.

 

GPT는 모델의 큰 변화 없이 GPT-1 의 1.17억 개의 파라미터, GPT-2의 15억 개의 파라미터, GPT-3의 1,750억 개의 파라미터로 학습 데이터 셋의 크기만 키워나갔는데 점점 성능이 높아짐을 알 수 있다. 왜 이러한 상황이 발생할까?

 

언어 모델의 경우 학습 데이터와 언어 모델의 결과가 모두 '생성된 언어'다. 따라서 언어 모델이 학습하는 과정을 학습 데이터를 압축하는 과정으로 해석할 수 있다. 여기서 압축은 공통되고 중요한 패턴을 남기는 손실 압축이다. 결론적으로 모델이 커지면 학습 데이터가 갖고 있는 언어 생성 패턴을 더 많이 학습할 수 있기 때문에 모델 성능이 높아지는 것이다. 

 

하지만, 모델이 계속해서 커진다고 성능이 높아지지는 않는다. 학습 데이터의 크기가 최대 모델 크기의 상한이라고 볼 수 있는데, 예를 들어 학습 데이터의 크기가 100GB일 경우에 모델 크기를 100GB보다 키운다고 하더라도 모델 성능이 높아지는 것을 기대하기는 어렵다.

 

OpenAI는 GPT-3에서 지도 미세 조정(supervised fine-tuning) 과 RLHF(Reinforcement Learning from Human Feedback - 사람의 피드백을 활용한 강화 학습) 을 사용하여 Chat-GPT로 기술을 발전시켰다. 이 기술을 통해 Chat-GPT는 사용자의 요청을 해결할 수 있는 텍스트를 생성할 수 있게 되었다.

 

LLM이 생성하는 답변을 사용자의 요청 의도에 마주는 것을 정렬(alignment)라고 한다. 사용자가 LLM의 답변에서 얻고자 하는 가치를 반영해 LLM을 학습해서 LLM이 사용자에게 도움이 되고 가치를 전달할 수 있도록 하는 것이다. 

 

지도 미세 조정은 정렬을 위한 가장 핵심적인 학습 과정으로, 언어 모델링으로 사전 학습한 언어 모델을 지시 데이터셋(instruction dataset- 요청 또는 지시한 사항과 그에 대한 응답)으로 추가 학습하는 것을 뜻한다. 

 

OpenAI에서는 두 가지 답변 중 사용자가 더 선호하는 답변을 선택한 데이터셋을 구축하는데, 이를 선호 데이터셋(preference dataset)이라고 한다. 선호 데이터셋으로 LLM의 답변을 평가하는 리워드 모델(reward model)을 만들고 점점 좋은 답변을 낼 수 있도록 학습을 하는데 이를 RLHF라고 한다.

'LLM' 카테고리의 다른 글

트랜스포머 아키텍처(3)  (0) 2024.08.10
트랜스포머 아키텍처(2)  (0) 2024.08.09
트랜스포머 아키텍처(1)  (0) 2024.08.09
딥러닝과 언어 모델링(3)  (0) 2024.08.08
딥러닝과 언어 모델링(1)  (0) 2024.08.06