대규모 언어 모델(LLM)이 인간의 자연어를 이해하고 맥락에 맞는 응답을 생성하는 능력은 텍스트 패턴을 인식하는 것을 넘어서 복잡하고 다층적인 구조이다. 이는 단일한 기술이나 단일한 단계로 이뤄지는 것이 아니라, 여러 계층의 기술이 유기적으로 결합되어 작동하는 시스템이다.
LLM의 맥락 이해 과정은 크게 네 가지 주요 단계로 구분할 수 있다. 첫째, 자연어를 기계가 이해할 수 있는 수치적 형태로 변환하는 기초적 변환 단계이다. 둘째, 변환된 데이터를 바탕으로 토큰 간의 복잡한 관계를 학습하는 핵심 엔진 단계이다. 셋째, 모델의 단기적 한계를 극복하고 장기적인 맥락을 유지하기 위한 맥락 확장 및 관리 단계이다. 마지막으로, 내부 지식의 한계를 넘어 외부 정보와 인간의 의도를 결합하는 외부 지식 통합 및 모델 유도 단계이다.
LLM이 사용자의 자연어 입력을 처리하는 첫 단계는 토큰화(tokenization)이다. 이 과정은 연속된 텍스트를 LLM이 처리할 수 있는 작은 단위인 토큰(token)으로 분해하는 작업이다. LLM의 전체 워크플로우에서 가장 기본적인 단계인 토큰화는 모델의 성능, 효율성, 그리고 비용에 직접적인 영향을 미친다.
토큰화의 방식은 크게 세 가지고 나뉜다.
특히, 서브워드 토큰화의 대표적인 알고리즘인 바이트-쌍 인코딩(BPE, Byte-Pare Encoding)은 데이터 압축을 위해 고안되었던 기술을 언어 모델에 맞게 변형하여 사용한다. BPE는 훈련 코퍼스에서 가장 빈번하게 등장하는 인접한 문자 쌍을 찾아내 새로운 토큰으로 병합하는 과정을 반복한다.
예를 들어, th와 e가 가장 자주 함께 나타나는 쌍이라면 이를 the라는 새로운 토큰으로 병합하고, 모든 th + e 조합을 새로운 the 토큰으로 대체한다. 이 과정은 미리 정해진 어휘 크기에 도달할 때까지 계속된다. 바이트 레벨(Byte-level BPE)는 모든 UTF-8 텍스트를 바이트 스트림으로 변환한 뒤 BPE를 적용하여, 어떠한 언어나 문자가 포함된 텍스트도 [UNK](unknown) 토큰 없이 완벽하게 인코딩할 수 있도록 한다.
토크나이저 기술은 현재 단순한 분리 기능을 넘어섰다. Mistral AI의 토크나이저는 `와 같은 특수 제어 토큰(control tokens)을 활용해, 이를 일반 문자열로 취급하지 않고 코드에 직접 추가하는 방식으로 프롬프트 인젝션 공격을 효과적으로 방지한다. 또한, SentencePiece와 같은 도구는 공백(whitespace)을 `(U+2581)와 같은 명시적 기호로 처리하여, 토큰화된 텍스트를 원래 문장으로 완벽하게 복원할 수 있는 역토큰화(detokenization) 기능을 제공한다. 이러한 발전은 토큰화가 모델의 효율성뿐만 아니라 보안과 언어적 온전성을 보장하는 핵심적인 역할을 한다는 것을 보여준다.
토큰화가 완료되면, LLM은 각 토큰을 기계가 계산할 수 있는 수치적 형태로 변환한다. 이 과정은 임베딩(embeddings)을 통해 이루어진다. 임베딩은 각 토큰에 고유한 ID를 할당하고, 이 ID를 수천 차원의 고밀도 벡터(dense vector)로 변환하여 토큰의 의미적 및 문법적 속성을 숫자로 표현한다. 이 벡터는 훈련 과정에서 학습되며, 의미적으로 유사한 단어들은 벡터 공간에서 서로 가까운 위치에 배치되어 모델이 단어 간의 관계를 수학적으로 계산할 수 있게 된다.
임베딩만으로는 문장 내 단어의 순서 정보를 담을 수 없다. 트랜스포머 아키텍처는 데이터 전체를 병렬로 처리하기 때문에, "나는 개를 산책시켰다"와 "개는 나를 산책시켰다"와 같은 문장의 의미 차이를 파악할 수 있는 순서 정보가 없다면 문맥을 제대로 이해할 수 없다. 이러한 구조적 한계를 극복하기 위해 위치 인코딩(positional encoding)이라는 기술이 사용된다. 위치 인코딩은 각 토큰의 임베딩에서 그 토큰의 위치를 나타내는 정보를 담은 또 다른 벡터를 추가하는 방식이다.
초기에 제안된 위치 인코딩은 사인() 및 코사인() 함수를 사용하여 각 위치에 고유하고 결정적인 패턴을 생성했다. 이는 병렬 처리의 이점을 유지하면서도 모델이 단어의 순서를 학습할 수 있도록 했다. 최근에는 이런 전통적인 방식을 넘어 학습 가능한 위치 인코딩이나 상대적 위치 인코딩과 같은 유연한 방법을 도입했다. 이러한 발전은 특히 긴 시퀀스 데이터를 처리할 때 모델의 시간적 관계 파악 능력을 향상시키며, 트랜스포머 아키텍처의 근본적인 한계를 지속적으로 보완하고 있다.
토큰이 임베딩과 위치 정보로 변환된 후, LLM의 핵심 연산은 트랜스포머(Transformer) 아키텍처 내부의 Self-attention 메커니즘을 통해 이뤄진다. 이 메커니즘은 입력 시퀀스 내의 모든 토큰에 대해 그 중요도와 관계를 동시에 계산함으로써 문맥적 의미를 파악한다. 이는 문장을 순차적으로 처리하는 과거의 순환 신경망(RNN) 모델의 한계를 극복하고, 병렬 연산을 가능하게 하여 훈련 속도를 획기적으로 향상시켰다.
Self-attention의 핵심은 쿼리(Query, Q), 키(Key, K), 값(Value, V)이라는 세 가지 벡터이다. 각 토큰의 임베딩은 이 세 가지 벡터로 선형 변환된다.
Self-attention은 현재 토큰의 Q 벡터와 문장 내 모든 토큰의 K 벡터를 내적하여 어텐션 점수(attention scores)를 계산한다. 이 점수는 현재 토큰과 문장 내 다른 모든 토큰 간의 관련성을 나타내며, 이 점수에 소프트맥스(softmax) 함수를 적용하여 정규화된 가중치를 얻는다. 마지막으로, 이 가중치를 각 토큰의 V 벡터에 곱한 뒤 모두 더하여 최종적으로 문맥이 반영된 출력 벡터를 생성한다. 이 과정을 통해 모델은 "I drove across the road to get to the other bank"라는 문장에서 'bank'라는 단어가 'road'와 관련된 맥락(강둑)인지, 아니면 '돈'과 관련된 맥락(은행)인지 주변 단어들의 가중치를 통해 정확히 파악할 수 있다.
Self-attention 메커니즘은 인간의 인지 과정과 유사하다는 평가를 받는다. 인간이 어떤 정보를 처리할 때 관련성 높은 세부 사항에 선택적으로 주의를 기울이고 덜 중요한 부분을 무시하는 것 처럼, 어텐션 메커니즘은 입력 데이터의 가장 중요한 부분에 집중하여 효율적이고 정확한 정보 처리를 가능하게 한다.
단일 Self-attention 메커니즘의 한계는 모든 관계를 하나의 관점에서만 계산한다는 점이다. 이를 해결하기 위해 트랜스포머는 멀티 헤드 어텐션(Multi-head attention)을 사용한다. 이는 여러 개의 독립적인 Self-attention 메커니즘을 병렬로 실행하여, 각 '헤드'가 입력 시퀀스 내의 다른 관계에 집중하도록 한다.
예를 들어, 한 어텐션 헤드는 문장 내에서 주어와 동사 같은 문법적 관계를 학습하는 데 특화될 수 있다. 다른 헤드는 '개'와 '강아지'같은 의미론적 유사성을 파악하는 데 집중할 수 있으며, 또 다른 헤드는 '새로운'이라는 형용사와 '기술'이라는 명사 간의 속성 관계를 인식할 수 있다. 이처럼 여러 관점에서 맥락적 연결을 동시에 파악하고 통합함으로써, 모델은 단일 헤드로는 놓칠 수 있는 풍부하고 미묘한 언어적 뉘앙스를 포착할 수 있다.
초기 Self-attention 연구는 맥락 정보를 충분히 고려하지 않는다는 비판을 받았다. 예를 들어, 'Sharon'과 'talk'라는 단어의 관련성을 계산할 때 문장 전체의 맥락을 놓칠 수 있다. 최근 연구는 내부적 표현을 컨텍스트 벡터로 활용하는 컨텍스트화된 변환(contextualized transformations)을 제안하는 등, 외부 자원에 의존하지 않고도 어텐션 메커니즘 자체를 정교하게 만들어 모델의 맥락 이해 능력을 근본적으로 향상시키는 방향으로 진화하고 있다.
LLM이 맥락을 이해하는 능력은 모델이 한 번에 처리할 수 있는 토큰의 최대 길이인 컨텍스트 윈도우(context window)의 크기와 직결된다. 현재 주요 LLM들은 이전 세대 모델들의 컨텍스트 윈도우를 훨씬 뛰어넘는 발전을 보여주고 있다. GPT-5는 40만 토큰, Gemini 2.0 Pro는 200만 토큰에 달하는 컨텍스트 윈도우를 지원하여, 대용량 문서 분석이나 장기 대화와 같은 복잡한 작업을 가능하게 한다.
하지만 이러한 거대한 컨텍스트 윈도우는 새로운 기술적 난제를 낳았다. LLM이 텍스트를 생성할 때 추론과정에서 이전 토큰들의 키-값 캐시(Key-Value Cache, KV cache)를 메모리에 저장하여 재계산을 피한다. 이 KV 캐시의 크기는 컨텍스트 윈도우의 길이에 비례하여 선형적으로 증가하며, 이로 인해 GPU 메모리(VRAM)는 심각한 메모리 병목 현상에 직면하게 된다.
| LLM | Context Window(tokens) | Character |
|---|---|---|
| Gemini 2.0 Pro | 2,000,000 | 장기 문서 분석에 최적화된 대규모 컨텍스트 윈도우 |
| GPT-5 | 400,000 | 멀티모달 및 추론 중심의 'o' 시리즈 최신 모델 |
| Gemini 1.5 Pro | 2,000,000 | 대규모 데이터 처리 및 다중 모드 지원 |
| DeepSeek R1 | 131,072 | 수학 및 코딩에 강점을 가진 추론 모델 |
| Claude 3.7 Sonnet | 200,000 | 안정적인 성능과 긴 컨텍스트 지원 |
LLM은 단순히 모델의 크기나 컨텍스트 윈도우의 길이를 넘어, 거대 컨텍스트를 얼마나 효율적으로 관리하는지에 달려있다. KV 캐시의 메모리 문제를 해결하기 위해 다양한 기술적 혁신이 등장했다.
컨텍스트 윈도우의 크기 경쟁과 별개로, LLM이 무한한 맥락을 가질 수 있도록 하는 연구 또한 활발히 진행되고 있다. MemGPT는 운영체제의 가상 메모리 시스템을 모방한 가상 컨텍스트 관리(virtual context management) 기법을 제안한다. 이는 LLM이 대용량 문서 전체를 분석하거나, 여러 세션에 걸친 장기 대화를 기억할 수 있도록 하여, 컨텍스트 윈도우의 물리적 한계를 넘어선 '영구적 컨텍스트(perpetual context)'를 제공한다.
이러한 기술적 진보는 단순히 컨텍스트 윈도우 크기를 늘리는 것을 넘어, 추론 인프라와 메모리 관리의 혁신을 촉발하는 선순환 구조를 형성하고 있다.
LLM의 내부에 동결된 지식은 훈련 데이터의 지식 단절로 인해 항상 최신 정보를 반영할 수 없다는 한계를 가진다. 이러한 문제와 환각(hallucination) 문제를 해결하기 위해 등장한 것이 바로 검색 증강 생성(RAG, Retrieval-Augmented Generation) 아키텍처이다. RAG는 LLM을 외부 지식 기반에 연결하여 최신성과 정확성을 보장하는 기술이다.
RAG의 작동 방식은 두 단계로 이어진다.
RAG는 단순한 벡터 검색을 넘어 진화하고 있다. GraphRAG(Knowledge Graphs)는 벡터 검색에 구조화된 지식 그래프를 결합하여 데이터 간의 관계를 명시적으로 파악하고, 이를 통해 검색 정확도를 99%까지 향상시킨다. 또한, LLM-Agnostic 아키텍처가 기업 AI 솔루션의 핵심 트렌드로 부상하며, 특정 LLM 공급자에 종속되지 않고 여러 모델을 유연하게 전환하거나 조합할 수 있게 한다. 이는 기업이 벤더 종속을 피하고, 비용을 최적화하며, 최신 모델을 신속하게 도입할 수 있는 전략적 유연성을 제공한다.
LLM의 맥락 이해를 완성하는 것은 결국 모델을 인간의 의도에 맞게 유도하는 과정이다. 이를 위한 두 가지 주요 기법은 프롬프트 엔지니어링(Prompt Engineering)과 파인 튜닝(Fine-Tuning)이다.
이 세 가지 기법은 상호 배타적인 관계가 아니다. 기업은 일반적인 작업은 프롬프트 엔지니어링으로 처리하고, 최신 정보가 필요한 작업에는 RAG를, 그리고 특정 도메인에 대한 깊은 지식이 요구되는 핵심 업무에는 파인 튜닝을 적용하는 하이브리드 전략을 채택하고 있다.