최근 GPT, Claude, DeepSeek 같은 대규모 언어 모델(LLM)이 보여주는 놀라운 추론 능력은 어디에서 기인할까요? 단순히 데이터를 많이 읽어서일까요? 그 핵심은 방대한 정보를 저장하는 **‘파라미터(Parameter)’**와, 그 정보들 사이에서 맥락을 짚어내는 **‘어텐션(Attention)’**의 상호작용에 있습니다.
오늘은 이 두 개념이 어떻게 ‘연관 지식의 중첩’을 만들고, 실시간으로 변별력 있는 답변을 생성하는지, 나아가 우리가 왜 프롬프트를 잘 써야 하는지 심층적으로 살펴보겠습니다.
1. 파라미터(Parameter): 지식이 중첩된 ‘다차원 도서관’
많은 분이 파라미터 개수(예: 7B, 70B 등)를 단순히 ‘AI의 용량 혹은 크기’로 이해합니다. 하지만 더 정확한 표현은 **‘지식의 밀도와 중첩도’**입니다.
- 지식의 압축과 중첩: 학습 과정에서 LLM은 수조 개의 문장을 읽으며 단어와 단어, 개념과 개념 사이의 관계를 수치(가중치)로 저장합니다. 파라미터가 많을수록 이 관계망은 더 세밀해집니다.
- 고차원 벡터 공간: 70B(700억 개) 모델은 7B 모델보다 훨씬 더 넓은 ‘좌표 평면’을 가집니다. 이 공간 안에서 ‘사과’라는 데이터는 ‘과일’, ‘뉴턴’, ‘스티브 잡스’, ‘빨간색’ 등의 수많은 개념과 중첩된 상태로 존재합니다.
- 추론의 임계점: 파라미터가 일정 수준을 넘어서면 지식들이 서로 촘촘하게 연결되면서, 학습하지 않은 논리적 문제도 해결하는 ‘창발적 능력(Emergent Abilities)‘이 나타납니다.
2. 어텐션(Attention): 고정된 가중치에 생명력을 불어넣는 돋보기
파라미터가 ‘잠들어 있는 지식의 숲’이라면, 어텐션은 사용자의 질문에 따라 그 숲의 **특정 경로에 불을 밝히는 작업(연산)**입니다.
Q, K, V의 수학적 협력
어텐션 메커니즘은 모든 입력 데이터를 동시에 훑으며 **Query(지금 필요한 것)**와 가장 잘 맞는 **Key(데이터의 특징)**를 찾아 그 결과값인 **Value(내용)**를 추출합니다.
- 동적 활성화: 모델이 학습을 마치면 파라미터(가중치)는 완전히 고정됩니다. 하지만 어텐션은 사용자의 질문이나 현재 문맥에 따라 어떤 파라미터를 ‘더 중요하게(High Weight)’ 사용할지 실시간으로 결정합니다.
- 문맥의 변별: “배가 아프다"와 “배를 타다"에서 ‘배’는 같은 단어지만, 어텐션은 주변 단어(‘아프다’ vs ‘타다’)를 보고 서로 다른 지식 영역(신체 vs 교통수단)을 활성화합니다.
3. LLM의 이해를 돕는 세 가지 추가 지식
LLM의 작동 방식을 더 명확히 이해하기 위해 토큰화, 컨텍스트 윈도우, 인컨텍스트 러닝의 개념을 추가로 알아두면 좋습니다.
① 토큰화(Tokenization): 지식의 최소 단위
LLM은 글자를 그대로 읽지 않고 의미 단위인 ‘토큰(Token)‘으로 쪼개어 숫자로 변환합니다.
“어텐션은 위대하다"라는 문장은 규칙에 따라 [어텐션, 은, 위대, 하다] 처럼 쪼개져 임베딩 공간으로 들어갑니다. 파라미터와 어텐션 연산은 모두 이 ‘토큰’을 단위로 이루어집니다. 다국어 모델에서 한글 처리 효율은 토큰을 어떻게 나누느냐에 크게 좌우됩니다.
② 컨텍스트 윈도우(Context Window): 어텐션의 시야각
어텐션은 마법이 아닙니다. 모델이 한 번에 고려할 수 있는 토큰의 최대 개수를 ‘컨텍스트 윈도우’라고 부릅니다. 컨텍스트 윈도우가 128K라는 것은, 약 10만 단어 분량의 문맥 속에서 어텐션이 핵심 정보를 찾아낼 수 있다는 뜻입니다. 주의할 점은 어텐션 연산 비용은 입력 길이의 **제곱(N²)**에 비례해 증가하기 때문에, 무작정 정보를 쑤셔 넣으면 최적의 ‘중첩’을 찾아내는 효율(Needle in a haystack 문제)이 떨어질 수 있습니다.
③ 프롬프트 엔지니어링과 In-Context Learning (ICL)
이미 학습이 끝나 고정된 파라미터를 가진 모델이 어떻게 새로운 문제를 풀 수 있을까요? 바로 인컨텍스트 러닝(In-Context Learning) 덕분입니다. 우리가 프롬프트(명령어)에 예시나 구체적인 맥락을 주어주면, 어텐션이 실시간으로 그 프롬프트 내의 토큰들을 엮어 임시적인 논리 구조를 만듭니다. 즉, 프롬프트를 잘 쓴다는 것은 어텐션이 파라미터 창고에서 지식을 가장 잘 꺼내올 수 있도록 최적의 조명 각도를 세팅해 주는 것과 같습니다.
4. 지식의 중첩이 답변으로 변하는 과정 (The Workflow)
사용자가 질문을 던졌을 때 LLM 내부에서 일어나는 일은 다음과 같이 요약할 수 있습니다.
- 토큰화 & 임베딩(Embedding): 질문의 단어들이 숫자로 잘리고, 수천 차원의 공간 속 좌표(점)로 변환됩니다.
- 어텐션 연산: 이 좌표(Query)들이 기존에 학습된 파라미터(Key)들과 부딪히며, 프롬프트의 맥락(Context Window 내)을 고려해 가장 연관성 높은 지식들의 ‘중첩’ 영역을 찾아냅니다.
- 가중합(Weighted Sum): 선택된 지식들에 어텐션 스코어만큼의 에너지를 배분하여 결합합니다.
- 결과 생성: 중첩된 지식들 사이에서 가장 확률적으로 적절한 다음 토큰을 계산해 내뱉습니다. 이 과정이 문장이 완성될 때까지 반복됩니다.
5. 요약: 왜 파라미터와 어텐션은 함께 가야 하는가?
- 파라미터만 많고 어텐션이 없다면? 거대한 도서관에 사서가 없는 것과 같습니다. 지식은 무한하지만 필요할 때 꺼내 쓸 방법(문맥 파악)이 없습니다.
- 어텐션만 있고 파라미터가 적다면? 영리한 사서는 있지만 서재가 텅 비어있는 것과 같습니다. 질문의 맥락은 파악하지만 깊이 없는 답변만 반복하게 됩니다.
결국 파라미터가 만든 지식의 중첩을 어텐션이 정교하게 변별해내고, 이 과정이 적절한 컨텍스트 윈도우와 프롬프트를 통해 유도될 때, 비로소 우리가 열광하는 ‘인간다운 AI’가 탄생하는 것입니다.