AI 모델에 대한 기사를 보다보면 OOO 모델은 파라미터가 몇백억 개네, 몇천억 개네.. 하는 내용을 볼 수 있다. OpenAI의 GPT-3는 1750억 개의 파라미터, 자랑스러운 한국의 하이퍼클로바X는 820억 개의 파라미터를 지녔다고 한다.
근데 파라미터가 대체 무슨 뜻일까? 처음에는 '학습한 데이터의 수인가?' 라고 생각했지만 그것도 아니고.. 뇌에 비유해서 시냅스 연결 갯수라고 표현하는 경우도 있지만 다소 추상적으로 느껴진다.
그래서 내 나름대로 직관적 이해(여전히 추상적이나 비교적 덜 추상적인)와 조금은 더 현실에 가까운 이해를 해보았다.
(일부 부정확한 내용이 있을 수 있습니다)
1. 직관적 이해
1750억 개의 다이얼을 정밀하게 조절해서 세상을 학습하고, 표현할 수 있다.
수를 확 줄여보면 직관적인 이해가 쉬울 것 같다. 만약 어떤 모델이 3개의 파라미터를 가지고 있다면 이를 어떻게 이해하면 될까?
입력 x = (x1, x2)가 있고, 출력 y를 예측하는 선형 모델을 생각하면 된다.

- 여기서 w1, w2는 입력 각각에 대한 가중치
- b는 바이어스(편향)
- 따라서 모델이 학습해야 할 파라미터(조정 가능한 숫자)는 {w1,w2,b}로 총 3개이다.
작동 방식은 다음과 같다.
- x = (x1, x2) 라는 입력이 들어오면,
모델은 (x1, x2)에 각각 w1와 w2를 곱하고, 마지막에 b를 더해 출력 y를 만든다. - 파라미터를 학습한다는 것은 결국 {w1, w2, b}의 값을 적절히 조정해서, 입력 → 원하는 출력 관계를 최대한 맞추도록 하는 과정을 말한다.
이러한 모델은 ‘조정할 수 있는 다이얼(가중치)'이 3개뿐이다'라고 이해할 수 있다.
- 따라서 모델이 할 수 있는 ‘패턴 인식’의 폭이 매우 제한적이다. w1, w2가 x1(입력 1), x2(입력 2) 각각을 얼마나 중요하게 볼지를 결정하고, b는 전체 출력을 위나 아래로 옮겨 전체적인 bias를 주는 역할을 한다.
- 결국 이 세 수만으로 모델의 전체 성능이 결정되므로, 소수의 입력만을 다룰 수 있고, 또한 굉장히 단순한 패턴(직선 혹은 평면 상에서의 1차 방정식 형태)만 표현할 수 있을 것이다.
수를 조금 더 늘려보자. 10개의 파라미터를 가진 모델은 어떤 모습일까?
- 입력 9개 + 편향(bias) 1개로 이루어진 선형 모델 등을 떠올리면 된다.
- 이 경우 모델은 9개의 입력 각각에 가중치를 곱해 더하고, 마지막으로 편향을 더해 출력을 만든다.
- 즉, 10개의 ‘조정 가능한 다이얼(가중치 + 편향)’로 이루어진 모델이라는 뜻

- 모델이 학습해야 할 파라미터(조정값)는 w1, w2, … , w9, b → 총 10개
- 학습 과정은 결국 입력 x와 실제 정답(타깃)을 많이 보여주면서, w와 b를 조금씩 조정(업데이트)하여 pred와 타깃 간의 오차를 최소화하도록 만드는 과정이다.
여기서는 9개의 입력(특징)을 각각 다르게 가중치로 반영할 수 있으므로, 앞의 3개 파라미터 대비 조금 더 복잡한 패턴을 배울 수 있다.
물론, 10개 수준이라면 여전히 단순한 선형 관계까지만 모델링 가능(비선형·고차원적 패턴은 어려움)하다.
이제 1750억 개를 가졌다는 게 무엇인지 대충은 상상해볼 수 있다.
물론, 트랜스포머 구조는 훨씬 복잡하기 때문에

이렇게 단순히 선형 방정식으로만 표현할 수 없다.
1750억은 여러 층과 다양한 모듈에 걸쳐 존재하는 거대한 ‘가중치 행렬’들의 모든 원소를 더한 총합이다. 단지, 대충 그 스케일과 위엄을 저렇게 간접적으로 이해해보면 편할 것 같다.
2. 조금은 더 현실에 가까운 이해
1750억이라는 파라미터가 어떻게 계산되는지 조금이나마 현실에 가깝게 이해해보자.
실제 GPT-3의 세부 스펙(레이어 수, 헤드 수, 정확한 차원 등)은 약간씩 다를 수 있으나, 전반적으로 아래와 유사한 규모로 알려져 있다고 한다.
전제 스펙(가정치)
- 레이어(디코더 블록) 수: N = 96
- 히든 차원(임베딩 차원): D = 12,288
- 피드포워드 확장 배수: 4
- 즉, 피드포워드(FFN) 내부 차원: 4D = 4 × 12,288 = 49,152
- Vocabulary(어휘 사전) 크기: V ≈ 50,000
- 최대 시퀀스 길이: L = 2048 (포지셔널 임베딩 길이)
파라미터 계산
1. 임베딩(Embedding) 파라미터
1-1) 토큰 임베딩(Token Embedding)
- 토큰(어휘 사전 크기 V)마다 D차원 벡터를 가짐
- 파라미터 수: V×D

1-2) 포지셔널 임베딩(Positional Embedding)
- 시퀀스 길이 L마다 차원 벡터를 가짐
- 파라미터 수: L×D

2. 단일 트랜스포머 디코더 레이어(1개 층)의 파라미터
GPT-3는 “트랜스포머 디코더” 구조를 N개 쌓는다. 디코더 블록은 크게 2가지 서브 모듈로 구성된다.
- 멀티헤드 어텐션(Multi-Head Self-Attention)
- 피드포워드 네트워크(Feed-Forward Network, FFN)
여기에 레이어 정규화(LayerNorm) 및 잔차 연결(residual connection)이 포함되며, LayerNorm에도 소량의 가중치(편향 포함)가 있다.
2-1) 멀티헤드 어텐션(MHA) 파라미터
(1) Q, K, V 가중치
- 쿼리( Q ), 키( K ), 값( ) 각각에 대해 D×D 크기 가중치 = 총 3개

(2) 출력 프로젝션(Output Projection)
- 어텐션의 최종 출력을 다시 D차원으로 돌리는 선형 변환
- 파라미터 크기: D×D

즉, 멀티헤드 어텐션 한 번에 필요한 가중치는 다음과 같다.

'멀티헤드'라고 해도, 내부적으로 head 수만큼 분산계산을 하지만 최종적으로는 동일한 총 차원 D×D 형태의 가중치로 본다고 생각하면 된다.
2-2) 피드포워드 네트워크(FFN) 파라미터
GPT-3처럼 FFN의 내부 차원은 보통 히든 차원(D)의 4배(4D)를 사용한다고 알려져 있다.
- 첫 번째 선형 변환: D×(4D)
- 두 번째 선형 변환: (4D)×D
합치면,

2-3) 레이어 정규화(LayerNorm) 등 기타 파라미터
- 레이어 내부에 보통 2개의 LayerNorm이 들어가고, 각 LayerNorm은 “가중치(스케일) + 편향(바이어스)” 형태로 2D 파라미터를 가짐
- 따라서 레이어 하나당 LayerNorm 관련 파라미터는 대략 2×2D=4D
다만 4D는 D^2 규모(수억~수십억)보다 훨씬 작으므로, 100억 ~ 1000억 단위 계산에서 상대적으로 미미한 부분이 된다.
2-4) 단일 디코더 레이어 총합

LayerNorm 등까지 세부적으로 정확히 더하면 약간 더 많아지지만, 대략 12D^2 정도로 잡으면 간단히 근사할 수 있다.
3. 전체 디코더 레이어(N개) 파라미터
단일 디코더 레이어는 12D^2.
이는 계산하면 18.1억 정도가 된다.

18.1억을 N = 96개 쌓으면,

즉, 약 1740억 개의 파라미터가 디코더 블록들(트랜스포머 레이어들)에 할당된다.
4. 임베딩(Word + Position) + 디코더 전체 합산
- 디코더 레이어: (약 1740억)
- 임베딩:
- 토큰 임베딩 ≈ 6.14 × 10^8 (약 6.14억)
- 포지셔널 임베딩 ≈ 2.52 × 10^7 (약 0.025억)
- 합 ≈ 6.39 × 10^8 (약 6.4억)
- LayerNorm, 최종 LM 헤드(출력) 등 기타:
- 보통 임베딩과 weight tying(출력층 가중치 공유)를 쓰기도 하지만, 세부 설정마다 차이가 있음
- 여기서 수천만~수억 단위가 추가될 수 있으나, 큰 틀에서 보면 “수십~수백억” 이내
최종적으로 대충 합산하면

정도가 되어, 흔히 말하는 GPT-3 175B 규모가 된다.
'머신러닝, 딥러닝' 카테고리의 다른 글
랭체인 활용해서 간단한 RAG 구현 및 테스트 (0) | 2025.01.13 |
---|---|
Perceptron 부터 Self-Attention 까지 요약 (2) | 2024.12.24 |