LLM 기본1 - 언어 모델링의 역사
1. 딥러닝 기반의 언어 모델
LLM은 기술적으로 딥러닝에 기반을 둔다.
딥러닝은 인간의 두뇌에 영감을 받아 만들어진 신경망으로서, 데이터의 패턴을 학습하는 머신러닝의 한 분야이다.
딥러닝은 표 형태의 정형 데이터뿐만 아니라 텍스트와 이미지 같은 비정형 데이터에서도 뛰어난 패턴 인식 성능을 보여
2010년대 중반 이후 AI 분야의 주류 모델로 자리 잡았다.
LLM은 사람의 언어를 컴퓨터가 이해하고 생성할 수 있도록 연구하는 자연어 처리(Natural language processing)에 속한다.
특히 그중에서도 사람과 비슷하게 텍스트를 생성하는 방법을 연구하는 자연어 생성(natural language generation)에 속한다.
LLM은 다음에 올 단어가 무엇일지 예측하면서 문장을 하나씩 만들어 가는 방식으로 텍스트를 생성하는데
이렇게 다음에 올 단어를 예측하는 모델을 언어 모델(language model)이라고 부른다.
즉, LLM은 딥러닝 기반의 언어 모델이다.
딥러닝 기반의 언어 모델이 지금처럼 자리 잡기까지 중요했던 역사적인 사건이 있다.
2013년 구글에서 단어의 의미를 담아 숫자로 표현하는 Word2Vec
2017년 기계 번역 성능을 높이기 위해 개발한 transformer
2018년 OpenAI의 GPT-1
2022년 말, chatGPT가 등장하며 LLM이 세상을 뒤흔들었다.
chatGPT는 텍스트를 처리하던 기존의 모델과 달리, 다양한 작업에서 뛰어난 성능을 보이며,
사용자가 대화가 된다고 느낄 정도로 사용자의 요청을 잘 이해하고 그에 맞춰 응답해 많은 사람을 놀라게 했다.
이토록 놀라운 성능에도 불구하고 사실 chatGPT는 굉장히 단순한 과정으로 동작한다.
주어진 입력에서 다음에 올 적절한 단어를 확률적으로 선택하고, 선택한 단어를 입력에 더해 문장이 끝날 때까지 선택하는 작업을 반복한다.
즉, chatGPT의 근본에는 언어 모델링이 있다.
2. 데이터의 특징을 스스로 추출하는 딥러닝
2012년 입력 이미지를 적절한 클래스로 분류하는 이미지 인식 대회인 이미지넷에서 AlexNet이 우승하며 딥러닝이 주목받기 시작
이는 전년도 1등 모델의 오류율 26%를 10%가량 낮춘 16%를 기록하며 압도적으로 우승하였다
당시 주로 이용하던 얕은 모델로는 오류율을 0.1% 낮추기도 힘들었는데, 10%나 낮춘 이 기록은 충격적이었다.
딥러닝은 이렇게 뛰어난 성능 뿐만 아니라, 단순하면서도 범용적으로 문제를 해결하는 접근 방식이 매력적이었다.
1) 문제의 유형(자연어, 이미지 등)에 따라 일반적으로 사용되는 모델을 준비
2) 풀고자 하는 문제에 대한 학습 데이터 준비
3) 학습 데이터를 반복적으로 모델에 입력
이렇게 3단계만 거치면 문제는 간단하게 풀린다.
이처럼 단순한 접근 방식으로 기존에는 쉽게 풀 수 없었던 텍스트나 이미지 같은 비정형 데이터 문제도 쉽게 풀어냈다.
딥러닝과 머신러닝의 가장 큰 차이는, '데이터의 특징을 누가 뽑아내는가?'이다.
기존 머신러닝은 데이터의 특징을 연구자 또는 개발자가 찾고 모델에 입력으로 넣어 자동차인지 아닌지 결과를 출력
여기서 '데이터의 특징'은 바퀴가 있고, 문이 달려있고, 창문이 있는 등 일반적인 자동차가 갖는 성질을 말한다.
반면 딥러닝은 모델이 스스로 데이터의 특징을 찾고 분류하는 모든 과정을 학습한다.
3. 임베딩
딥러닝 모델이 데이터를 표현하는 방식
딥러닝 모델은 학습 과정에서 데이터의 특징을 추출하는 방법도 함께 배운다.
컴퓨터는 숫자만 처리할 수 있으므로 딥러닝 모델은 데이터의 의미를 숫자의 집합으로 표현한다.
데이터의 의미와 특징을 포착해 숫자로 표현한 것을 임베딩(embedding)이라고 한다.
임베딩을 이해하기 위해 MBTI 검사를 예로 들어 생각해보자.
MBTI는 사람을 특정한 해석 틀에 따라 분석함으로써 비교적 단순하고 직관적으로 이해할 수 있는 관점을 제공한다.
만약 검사 결과 어떤 사람이 각 범주에서 다음과 같이 점수를 받았다면
이 사람의 MBTI는 INTP이며, [0.3,0.2,0.9,0.2]로 나타낼 수 있다.
어떤 사람의 성향이라는 복잡한 데이터를 단 4개의 숫자로 표현한 것이다.
임베딩이란 이처럼 데이터를 의미를 담아 여러개의 숫자의 집합으로 표현한 것이다.
이런 식으로 숫자로 나타내면 무엇이 좋은가?
MBTI 검사 결과를 바탕으로 재미삼아 나와 비슷한 사람, 나와 다른 사람이 누군지 찾고, 어떤 점이 비슷하고 다른지 따져볼 수 있다.
데이터를 임베딩으로 표현하면 데이터 사이의 거리를 계산하고 거리를 바탕으로 관련 있는 데이터와 관련이 없는 데이터를 구분할 수 있다.
임베딩으로 거리를 계산할 수 있으므로
검색 및 추천: 검색어와 관련이 있는 상품을 추천
클러스터링 및 분류: 유사하고 관련이 있는 데이터를 하나로 묶는다.
이상치 탐지: 나머지 데이터와 거리가 먼 데이터는 이상치로 볼 수 있다.
등의 작업에 활용 가능하다.
일반적인 데이터는 어떻게 숫자로 표현할 수 있는가?
Efficient Estimation of Word Representations in Vector Space라는 논문에서 Word2Vec이 소개된 적이 있다.
단어가 이 모델을 통해 숫자의 집합인 임베딩으로 변환된다.
이를 word embedding이라고 부른다.
MBTI는 4개의 숫자로 표현되지만, 단어는 보통 수십~수만개 이상의 숫자로 표현된다.
또한 MBTI는 사람이 설계했으므로 각 숫자가 무엇을 의미하는지 명확히 알 수 있지만,
단어의 경우 각 숫자가 무엇을 의미하는지 알기 어렵다.
딥러닝 모델이 데이터에서 특징을 추출하는 방법을 알아서 학습하므로 그 의미를 하나하나 파악할 수 없는 것이다.
하나하나의 의미를 알기는 어려워도, 전체 숫자의 집합 [0.1,0.7,....,0.3] = Word이 어떤 단어를 나타내는지는 알고 있다.
딥러닝 모델은 데이터를 통해 학습하는 과정에서 그 데이터를 가장 잘 이해할 수 있는 방식을 함께 배운다.
그렇게 데이터의 의미를 숫자로 표현한 것이 임베딩이다.
4. 사전학습과 전이학습
하나의 문제를 해결하는 과정에서 얻은 지식과 정보를 다른 문제를 풀 때 사용하는 방식을 전이학습이라고 한다.
전이학습에서는 대량의 데이터로 모델을 학습시키는 사전 학습과
특정한 문제를 해결하기 위해 데이터로 추가 학습하는 미세 조정(fine tuning)의 두 단계로 나눠 학습을 진행한다.
언어 모델링은 자연어 처리 분야에서 사전 학습을 위한 과제로 사용된다
일찍이 이미지 인식 분야에서는 자연어 처리보다 먼저 대량의 데이터로 이미 학습된 모델을
필요한 과제에 맞춰 추가로 학습하는 전이학습 개념이 널리 활용되고 있었다
위 그림에서 사전 학습 모델은 이미지넷 데이터를 통해 이미지에 나타난 동물을 분류하도록 학습한다.
이후 유방암이 양성인지, 악성인지 분류하는 새로운 문제를 풀고자 한다면, 유방암 데이터만으로 학습한 모델보다
사전 학습 모델의 일부를 가져와 활용했을 때 일반적으로 성능이 더 높다.
사전 학습에 사용한 이미지와 현재 풀고자 하는 과제의 이미지가 다르더라도 선이나 점 같은 특징을 파악하는 능력은 공통적으로 필요하기 때문이다.
이때 사전학습 모델을 미세 조정해 풀고자 하는 과제를 흔히 다운스트림(downstream) 과제라고 부른다.
전이 학습은 학습 데이터가 적은 경우에 특히 유용하다.
위 그림에서 사전학습한 모델을 활용하면 더 적은 유방암 이미지만으로도 높은 성능의 모델을 학습시킬 수 있다.
기존의 머신러닝 모델 학습은 처음부터 끝까지 해결하려는 문제의 데이터로 학습하는 방식을 사용했다.
하지만 딥러닝의 전이학습은 대량의 데이터로 학습하는 사전학습 단계와
현재 해결하려는 문제의 데이터로 추가 학습하는 fine tuning 두 단계로 모델을 학습시킨다.
위 그림의 (a)는 기존의 지도학습(supervised learning) 방식으로 각각의 데이터셋으로 별도의 모델을 학습시켰다.
(b)는 전이학습 방식으로 모델의 본체 부분은 대규모 데이터셋인 이미지넷으로 학습한 모델에서 가져오고,
분류를 수행하는 헤드 부분은 해결하려는 작업의 데이터셋으로 추가 학습한다.
헤드 부분은 일반적으로 본체 부분에 비해 작기 때문에, 비교적 적은 데이터로도 학습이 가능하다.
이때 헤드를 추가학습하는 과정이 사전학습에 비해 적은 양의 학습 데이터를 사용한다는 점에서 fine tuning이라고 부른다.
5. 언어모델링
자연어 처리 분야에서도 이미지 인식에서와 같이 전이학습 개념을 활용하고 싶었으나, 마땅한 방식을 찾지 못하고 있었다.
2018년 Universal Language Model Fine-Tuning for Text Classification 논문에서 다음 단어를 예측하는 언어 모델링 방식으로 사전 학습을 수행했을 때
훨씬 적은 레이블 데이터로도 기존 지도 학습 모델의 성능을 뛰어넘는다고 주장하였다.
언어 모델링은, 모델이 입력받은 텍스트의 다음 단어를 예측해 텍스트를 생성하는 방식으로
다음 단어를 예측하는 방식으로 훈련한 모델을 언어 모델(language model)이라고 한다
언어 모델링은 텍스트를 생성하는 모델을 학습시키는 방법으로도 사용되지만, 대량의 데이터에서 언어의 특성을 학습하는 사전 학습 과제로도 많이 쓰인다
(a)와 같이 다음 단어를 예측하는 언어 모델을 사전 학습하고 나서,
(b)와 같이 다운스트림 과제의 데이터셋으로 언어 모델 fine tuning을 수행하고,
마지막으로 (c)와 같이 텍스트 분류 fine tuning을 수행하면,
바로 텍스트 분류 모델로 학습시켰을 때보다 성능이 높았다.
텍스트 데이터에 따로 레이블이 없더라도, 단지 다음 단어를 예측하는 방식만으로 사전 학습에 활용할 수 있는 길이 열린 것이다.
이 논문에서는 RNN에서 언어 모델링이 사전 학습 과제로 적합하다는 사실을 확인했다.
2017년 Attention is All you need라는 논문에서 transformer 아키텍처를 활용한 모델이 처음 등장한 시기가 2018년이다.
대표적인 트랜스포머 모델로는 구글의 BERT, openAI의 GPT가 있다.
특히 GPT-1의 논문인 Improving Language Understanding by Generative Pre-Training에서
transformer 모델에서도 언어 모델링으로 사전학습을 수행했을 때가 그렇지 않았을 때에 비해 downstream 과제에서 모델의 성능이 높았다고 발표했다.
이후 언어 모델링은 자연어 처리 분야에서 가장 대표적인 사전 학습 방법으로 자리 잡았다.
'딥러닝 > LLM' 카테고리의 다른 글
2024 LLM 최신 트렌드(카카오) (0) | 2025.01.12 |
---|---|
RAG(Retrieval-Augmented Generation)의 개념 간단하게 (0) | 2024.08.11 |