더이노베이터스
AI image

LLM은 어떻게 언어를 분석하는가?

개요

2020년 OpenAI가 GPT-3를 출시했을 때의 열광을 기억하는가? GPT-3는 이전 모델들과 비교해 뛰어난 텍스트 생성 능력으로 주목받으며 큰 인기를 끌었다. 이후 다양한 대규모 언어 모델(LLM, Large Language Models)이 AI 분야를 장악했다.

그런데 ChatGPT나 다른 LLM이 언어를 어떻게 분석하는지 궁금한 적이 있는가? 이번 글에서는 LLM이 훈련 및 추론 과정에서 텍스트 입력을 처리하는 방식을 살펴보며, 그 핵심 개념인 **토큰화(Tokenization)**에 대해 설명하겠다.


1. 대규모 언어 모델의 내부 구조

LLM은 트랜스포머(Transformer) 뉴럴 네트워크로 구성된다. 뉴럴 네트워크는 거대한 수학적 함수라고 생각할 수 있으며, 입력으로 받은 텍스트를 수치화하여 처리한다. 모델의 입력은 토큰(Token) 시퀀스이며, 토큰은 뉴럴 네트워크의 **임베딩 레이어(Embedding Layer)**를 통해 수치적 표현으로 변환된다.

초기에는 뉴럴 네트워크의 가중치(Weights)가 무작위로 설정되므로, 모델이 예측하는 값도 무작위에 가깝다. 그러나 학습 과정에서 가중치를 반복적으로 조정하면서 훈련 데이터의 패턴을 학습하게 된다. 결국, 뉴럴 네트워크의 학습 목표는 훈련 데이터의 통계를 반영하는 최적의 가중치를 찾는 것이다.

트랜스포머 아키텍처는 2017년 **Vaswani et al.**이 발표한 논문 *”Attention is All You Need”*에서 처음 등장했다. 이 모델은 원래 **신경망 기계 번역(Neural Machine Translation, NMT)**을 위해 설계되었으나, 이후 모든 LLM의 핵심 구조가 되었다.


2. 토큰화(Tokenization)

최신 LLM(예: ChatGPT, Claude)의 훈련 과정은 여러 단계로 구성된다. 그중 가장 초기 단계가 **사전 학습(Pretraining)**이다. 이 단계에서는 대규모 고품질 데이터셋을 사용하여 모델이 텍스트의 구조와 패턴을 학습하도록 한다. 주요 LLM 제공업체들의 데이터셋은 비공개이지만, 오픈소스 데이터셋으로는 Hugging Face가 만든 FineWeb이 있다.

아래는 FineWeb 데이터셋에서 샘플링한 원시 텍스트 예시이다:

이 데이터를 뉴럴 네트워크에 입력하기 전에, 우리는 텍스트를 숫자로 변환해야 한다. 뉴럴 네트워크는 **1차원 시퀀스(One-Dimensional Sequence)**로 표현된 데이터를 필요로 하기 때문이다.

우선, 원시 텍스트는 UTF-8 인코딩을 사용하여 **이진수(0과 1의 조합)**로 변환된다. 그러나 너무 긴 이진수 시퀀스는 모델의 연산 효율성을 떨어뜨리므로, 이를 8비트(1바이트) 단위로 묶어 더 짧은 시퀀스로 변환할 수 있다.

이제 우리는 더 작은 기호들의 집합을 만들어 시퀀스를 최적화해야 한다. 여기서 **Byte-Pair Encoding(BPE)**이라는 기법이 사용된다.


3. Byte-Pair Encoding(BPE)

BPE는 자주 등장하는 연속적인 바이트 또는 심볼을 하나의 새로운 기호로 치환하는 방식이다. 예를 들어, 아래와 같이 101과 114라는 시퀀스가 반복된다면, 이를 하나의 새로운 심볼로 변환할 수 있다.

이 과정을 반복하면 시퀀스 길이는 짧아지지만, 대신 어휘 크기(vocabulary size)는 증가한다. 이러한 방식으로 OpenAI의 GPT-4는 **약 100,000개의 토큰 어휘집(vocabulary)**을 구축했다.

BPE를 더 자세히 이해하고 싶다면, OpenAI의 Tiktokenizer를 사용하여 다양한 모델에서 토큰화가 어떻게 이루어지는지 확인해볼 수 있다. 예를 들어, GPT-4의 cl100k_base 토크나이저를 선택하면 텍스트가 어떻게 토큰으로 분할되는지 확인할 수 있다.


4. 결론

토큰화는 LLM이 텍스트를 처리하는 핵심 과정이다. 원시 텍스트 데이터를 구조화된 형식으로 변환하여 뉴럴 네트워크에 입력하기 전에 최적화하는 역할을 한다. 뉴럴 네트워크는 1차원 시퀀스를 입력으로 요구하므로, 우리는 시퀀스 길이와 어휘 크기 간의 균형을 맞추는 것이 중요하다.

최신 LLM(예: GPT 시리즈)은 **Byte-Pair Encoding(BPE)**을 활용하여 효율적으로 토큰화를 수행한다. 토큰화 과정을 이해하면 LLM이 텍스트 입력을 해석하는 방식과 응답을 생성하는 원리를 보다 명확하게 파악할 수 있다.

LLM이 점점 더 지식 저장소(knowledge base) 역할을 수행하는 가운데, 효율적인 토큰화 전략은 모델의 성능과 효율성을 결정짓는 중요한 요소가 될 것이다.

TI Tech Lab 박선홍 연구원

출처

Towards Data Science

Avatar

theinnovators

Add comment