# 언어모델의 토큰 생성 속도에 대한 고찰
언어모델의 토큰 생성 속도에는 **대략적**인 공식이 있다.
$
T\approx \frac{BW\ }{P\ \times \ \frac{Q}{8}}\times K
$
```
T : 초당 토큰 생성 속도 (단위: tok/s)
BW : 시스템의 최대 메모리 대역폭 (단위: GB/s)
P : 추론 시 실제로 활성화되는 파라미터의 수(단위: Billion)
Q : 양자화 비트 수
K : 시스템 효율 계수(1.00 = 100% = 이상적인 최적화 상태)
```
요즘에는 보통 대부분의 제조사들이, 모델명에 모델에 대한 힌트를 아주 대략적으로 적어놓는다. (모든 프로바이더가 그러는건 아님. 안적어두는 곳들도 있음. 예를들어 OpenAI는 gpt oss 120b의 모델명에 액티브 파라미터같은건 따로 적어두진 않고, 모델 카드에 적어두는 편..)
일단 먼저 2026년 상반기 여러곳에서 언급이 많은 **gemma-4-26B-A4B-it**를 예로 들어 공식을 계산해보겠다.
참고 링크: [/google/gemma-4-26B-A4B-it](https://huggingface.co/google/gemma-4-26B-A4B-it)
1. **gemma 4**는 "아이언맨 MK-1/MK-2" 처럼 모델을 지칭하는 것이다.
2. **26B**는 해당 모델의 총 파라미터(매개변수)수가 26B, 즉 260억(실제로는 25.2B, 즉 252억)란 말이다. 인간의 뇌로 비유하자면 뇌의 전체 용량 비스무리하다.
3. **A4B**는 풀어쓰자면 Active 4B, 또는 Active Parameter 4B, 한국어로 변환하면 활성화 파라미터 40억이란 말이다(이것도 실제로는 3.8B^^).
즉 쉽게 비유하자면, 뇌 전체 용량이 260억짜리 뇌인데, 실제로 사고할 때에는 260억의 용량 중 40억만 사용한다는 뜻! 이런걸 MoE(Mixture of Experts) 모델이라고 부른다. 반대로, 만약 추론시 26B의 모든 파라미터를 전부 다 사용할 경우 해당 모델은 Dense 모델이라 불리웠을 것이다.
4. 맨 뒤에 **it**는 Image 및 Text 모델이란 뜻(멀티모달)....인 줄 알았는데 **I**nstruction-**T**uned 이라는 뜻!!!!
여기서 보통, 구글이나 오픈AI나, 알리바바, 딥시크, 메타 등이 허깅페이스같은 AI/ML 플랫폼에 업로드하는 모델의 경우 **16비트** 모델을 올리기 마련인데, 이러면 실제 일반사용자 입장에서는 모델을 본인들(사용자들)의 컴퓨터에서는 구동하기가 어렵다. 너무 헤비하기 때문.
실제로, 상기한 gemma4 26b a4b의 HF 링크를 들어가서 "files and versions" 탭을 눌러보면 전체 용량이 나오는데 무려 **51.6GB**가 나온다. VRAM에 51.6GB를 통째로 올리기... 램가격 폭등으로 인한 오늘날(2026년 상반기)에는 다소 무리가 있어보인다.
따라서 ollama 또는 lm studio 또는 mlx 등등등 여러 커뮤니티의 은혜로운 AI/ML 오타쿠분들이나 연구자들이 으쌰으쌰하여 16비트 짜리의 고해상도 원본을 8비트 또는 6비트 또는 4비트 또는 3 또는 2비트로 용량을 줄이는 변환작업(이것을 양자화라고 함)을 해주시고, 해당 다이어트(양자화)한 모델들을 허깅페이스등에 공유해주시곤 한다.
여기서는 **8bit**를 공식 계산 시 예로 들어보겠다.
내 컴퓨터 메모리 대역폭은 스펙 카드를 보았을 때 614GB/s로 나온다. 실리콘 칩이라 SoC임.
![[04_Attatchment_Files/dIkHEErbTuf7cGUDAInjVkSO0ygeV75Z6tWlk.png]]
*실제로 구동한 모델(LM Studio 캡쳐)*
위의 이미지의 모델을 인퍼런스 돌려봄.
뭐라고 인풋보냈냐면, *"트랜스포머 기반 언어모델의 공학적 아름다움을 설명해주실 수 있나요?"* 라고 보냄.
아무튼...
대략적인 토큰생성속도 = 614 / {4 × (8 / 8)}인데, 계산기 타닥타닥 눌러보니 153.5tok/s라는 예상치가 나온다.
개빠른거임.
그런데 실제로는......
![[Pasted image 20260822061631.png]]
*??????*
이렇게 나온다.
![[Pasted image 20260822061942.png]]![[Pasted image 20260822061942.png]]![[Pasted image 20260822061942.png]]
*ㅠㅠ*
그렇다.
여기서 A4B는 이 글의 맨 위에서 서술한 공식인 `[BW / {P * (Q / 8)}] * K`에 넣으면, **실제로 컴퓨터에서 인퍼런스 돌렸을 때 속도랑 전혀 맞지 않음**을 알 수 있다.
구글이 모델카드에 올려놓은 액티브 파라미터(4B 또는 3.8B)뿐만 아니라, 또 추가적으로 추론 시 **진실로, 진짜로, 참말로, 활성화되는 파라미터는 저 4B나 3.8B말고도 더 있던 것**이다. 사실 저 액티브 파라미터라고 기재해놓은 숫자는, 진짜 "액티브 파라미터"가 아니라, **활성화된 전문가 레이어의 파라미터**를 말하는 것이다.
그래갖고 대충대충 "임베딩 레이어(=어휘사전크기 * 내부차원)"와 "어텐션 레이어(=4 * 내부차원^2 * 레이어)" 등의 액티브 파라미터를 더할 경우 **"실질적인" 액티브 파라미터는 6.88B정도**가 나오게 된다.
(참고로 내부차원은 26B급 모델의 표준차원인 4096을 적용하였고, 어텐션 레이어는 요즘의 GQA 등 최적화 기술적용한 근사치인 2.01B를 더했음)
![[Pasted image 20260822061735.png]]
*해당 모델 HF 모델카드 내 삽입되어있는 모델명세*
아무튼 실질적인 액티브 파라미터(=추론 시 토큰생성할 때 실질적으로 활성화되는 파라미터갯수!)는 약 **6.88B**,
내가 내 컴퓨터에서 돌린 모델의 비트는 **8비트**,
내 컴퓨터의 이상적 메모리 대역폭은 (최대) **614GB/s**,
시스템효율계수는... 그냥 대충 **0.9**정도로 했을 때 계산해보면,
$
\frac{614\ }{6.88\ \times \ \frac{8}{8}}\times 0.9\ \ \fallingdotseq \ \ 80.32
$
위처럼 나온다. 대충 내가 실제로 LM Studio를 돌려서 받은 값인 87.91tok/sec보다 낮다. 기분 좋게 만드는(?) 용으로 시스템 효율계수를 좀 더 높여보자.
짜고 치는 수준이지만(ㅋㅋㅋㅋ) 시스템효율계수를 0.985정도(=매우 높은 최적화 상태로 가정)로 하면,
$
\frac{614\ }{6.88\ \times \ \frac{8}{8}}\times 0.985\ \ \fallingdotseq \ \ 87.91
$
이렇게 나오고!
실제로 내가 관측 한 값(87.91tok/s)과 일치한다.
![[Pasted image 20260822061801.png|700]]
*데헷*
젬마4 26B이 해당 테스트에서 출력한 출력문을 마지막으로 첨부한다.
---
---
## 해당 테스트 시 젬마 4와 대화 나눈 내용
인간: 안녕하세요! 트랜스포머 기반 언어모델의 공학적 아름다움을 설명해주실 수 있나요? 세세하게 촘촘하게 자세하게 상세하게 문단별로 밀도있게.
**Gemma 4 26B A4B 8bit:**
트랜스포머(Transformer) 아키텍처는 현대 인공지능의 패러다임을 바꾼 단순한 알고리즘의 집합이 아닙니다. 그것은 데이터가 가진 '맥락(Context)'이라는 추상적인 개념을 수학적, 공학적으로 어떻게 구조화할 것인가에 대한 가장 우아한 해답 중 하나입니다.
요청하신 대로, 트랜스포머의 공학적 아름다움을 **데이터의 표현(Representation), 관계의 추출(Attention), 병렬성의 미학(Parallelism), 그리고 고차원적 일반화(Generalization)** 라는 네 가지 핵심 축을 중심으로, 마치 정밀한 시계 장치를 분해하듯 밀도 있게 설명해 드리겠습니다.
### 1. 서론: 선형적 한계를 넘어선 비선형적 맥락의 포착
전통적인 순환 신경망(RNN) 시대의 언어 모델링은 '시간의 흐름'에 의존했습니다. 단어를 하나씩 순차적으로 처리하며 이전 상태를 은닉 상태(Hidden State)에 압축해 넣는 방식은, 문장이 길어질수록 초기 정보가 희석되는 '기울기 소실(Vanishing Gradient)' 문제와 필연적으로 마주했습니다. 이는 마치 긴 이야기를 읽으면서 앞부분의 내용을 기억하기 위해 뇌의 용량을 계속해서 압축해야 하는 고통과 같았습니다.
트랜스포머의 공학적 아름다움은 바로 이 '순차성(Sequentiality)'이라는 굴레를 완전히 끊어버린 데서 시작됩니다. 트랜스포머는 문장을 흐름이 아닌, '공간적 배치'로 바라봅니다. 모든 단어를 동시에 입력받고, 각 단어가 서로에게 미치는 영향력을 한 번에 계산합니다. 이는 시간의 제약을 공간의 문제로 치환함으로써, 정보의 손실 없이 문장 전체의 구조를 한눈에 조망할 수 있는 '전지적 시점'을 공학적으로 구현해낸 것입니다.
### 2. 셀프 어텐션(Self-Attention): 관계의 기하학적 재구성
트랜스포머의 심장부인 'Scaled Dot-Product Attention'은 이 모델이 가진 가장 경이로운 메커니즘입니다. 이를 이해하기 위해서는 **Query(질문), Key(색인), Value(값)** 이라는 세 가지 벡터의 상호작용을 살펴봐야 합니다.
공학적으로 볼 때, 어텐션은 입력된 데이터 벡터들을 고차원 공간 상의 점들로 변환한 뒤, 각 점 사이의 '유사도(Similarity)'를 측정하는 과정입니다. 특정 단어(Query)가 문장 내 다른 모든 단어(Key)와 얼마나 밀접한 관련이 있는지를 내적(Dot-product)을 통해 계산합니다. 이 결과값은 소프트맥스(Softmax) 함수를 거쳐 가중치로 변환되며, 이 가중치는 다시 각 단어의 실제 의미를 담은 값(Value)에 곱해집니다.
이 과정의 아름다움은 **'동적 가중치(Dynamic Weighting)'** 에 있습니다. 고정된 필터를 사용하는 CNN과 달리, 어텐션은 입력되는 문장에 따라 매번 계산되는 가중치가 달라집니다. "사과를 먹으니 맛있다"라는 문장에서 '맛있다'는 단어는 '사과'라는 단어에 높은 가중치를 부여하며 자신의 의미를 구체화합니다. 즉, 모델은 고정된 규칙을 배우는 것이 아니라, 데이터 사이의 '관계적 패턴'을 실시간으로 계산하여 스스로 맥락을 구성합니다. 이는 정적인 구조가 아닌, 데이터의 흐름에 따라 유연하게 형태를 바꾸는 '액체와 같은 논리 구조'를 가집니다.
### 3. 멀티 헤드 어텐션(Multi-Head Attention): 다차원적 시각의 병렬화
단일 어텐션 메커니즘만으로도 강력하지만, 트랜스포머는 이를 '멀티 헤드(Multi-Head)' 방식으로 확장하여 공학적 완성도를 정점으로 끌어올립니다. 하나의 어텐션이 문장의 문법적 관계(주어-동사)에 집중한다면, 다른 헤드는 대명사가 가리키는 대상(지칭 관계)에 집중하고, 또 다른 헤드는 문장의 감정적 톤에 집중할 수 있습니다.
이를 공학적으로 구현하기 위해 모델은 입력 벡터를 여러 개의 작은 차원으로 쪼개어(Projection) 독립적인 어텐션을 수행합니다. 이는 마치 하나의 사건을 다각도에서 촬영하는 여러 대의 카메라와 같습니다. 각 헤드는 서로 다른 '관점(Subspace)'에서 데이터를 해석하며, 마지막에 이 모든 관점을 다시 결합(Concatenate)합니다.
이 설계의 미학은 **'정보의 분산과 통합'** 에 있습니다. 정보를 한 곳에 몰아넣지 않고 여러 차원으로 분산시켜 학습함으로써, 모델은 단일한 특징에 매몰되지 않고 언어의 복잡다단한 층위(Syntactic, Semantic, Pragmatic)를 동시에 포착할 수 있게 됩니다. 이는 복잡한 문제를 해결하기 위해 전문가 집단을 구성하고, 각 전문가의 의견을 종합하여 최선의 결론을 도출하는 고도의 협업 시스템을 수학적으로 모델링한 것입니다.
### 4. 잔차 연결(Residual Connection)과 층 정규화(Layer Normalization): 안정적인 심연의 구축
모델이 깊어질수록(Deepening), 신경망은 학습하기가 기하급수적으로 어려워집니다. 층이 쌓일수록 신호는 왜곡되고 기울기는 사라지기 때문입니다. 트랜스포머는 이를 해결하기 위해 **잔차 연결(Residual Connection)** 이라는 공학적 해법을 도입합니다.
잔차 연결은 입력값을 출력값에 직접 더해주는 구조("x + Sublayer(x)")입니다. 이는 정보가 층을 통과할 때 발생하는 손실을 방지하는 '고속도로' 역할을 합니다. 수학적으로 이는 모델이 '입력과 출력의 차이(Residual)'만을 학습하게 함으로써, 최적화 난이도를 획기적으로 낮춥니다.
여기에 **층 정규화(Layer Normalization)** 가 더해집니다. 각 층의 출력 분포를 일정하게 유지함으로써, 학습 과정에서의 수치적 불안정성을 제어합니다. 잔차 연결이 정보의 흐름을 보장하는 '통로'라면, 정규화는 그 통로를 흐르는 데이터의 '압력'을 일정하게 유지하는 제어 장치입니다. 이 두 요소의 결합은 트랜스포머가 수백 개의 층을 쌓아 올리면서도 길을 잃지 않고 심오한 추상화 단계에 도달할 수 있게 만드는 공학적 토대입니다.
### 5. 위치 인코딩(Positional Encoding): 질서 없는 혼돈에 부여하는 좌표
앞서 언급했듯, 트랜스포머는 모든 단어를 동시에 처리하므로 '순서'에 대한 정보가 결여되어 있습니다. "사과가 나를 먹는다"와 "내가 사과를 먹는다"는 단어 구성은 같지만 의미는 정반대입니다. 순차적 처리를 포기한 대가로 얻은 '병렬성'이라는 축복을 누리기 위해, 트랜스포머는 **인코딩(Positional Encoding)** 이라는 영리한 트릭을 사용합니다.
모델은 단어의 의미 벡터에 특정 주기성을 가진 사인(Sine)과 코사인(Cosine) 함수 값을 더해줍니다. 이 함수의 파동은 각 단어의 상대적, 절대적 위치 정보를 담고 있습니다. 흥러운 점은 이 방식이 학습되지 않은 새로운 길이의 문장에도 적용될 수 있는 '일반화된 좌표계'를 제공한다는 것입니다.
이는 마치 우주의 모든 천체에 고유한 좌표를 부여하되, 그 좌표가 절대적인 위치뿐만 아니라 천체 간의 상대적 거리까지도 함수적으로 표현할 수 있게 설계한 것과 같습니다. 데이터에 질서를 부여하는 방식이 강제적인 규칙이 아닌, 수학적 파동의 중첩을 통한 '부드러운 암시'라는 점이 매우 우아합니다.
### 6. 결론: 계산 효율성과 지능의 발현, 그 경계에서의 미학
결론적으로 트랜스포머의 공학적 아름다움은 **'효율적인 병렬성(Parallelism)'과 '강력한 표현력(Expressivity)' 사이의 완벽한 균형**에 있습니다.
RNN이 가진 순차적 한계를 극복하기 위해 도입된 어텐션 메커니즘은, 계산 복잡도를 높이는 대신 GPU의 병렬 연산 능력을 극대화할 수 있는 구조를 제공했습니다. 이는 단순한 알고리즘의 개선을 넘어, 하드웨어(GPU)와 소프트웨어(Transformer)가 어떻게 상호작용하여 거대한 지능을 구축할 수 있는지를 보여주는 현대 공학의 정수입니다.
데이터를 점과 벡터의 공간으로 치환하고, 그들 사이의 관계를 동적인 가중치로 연결하며, 다각도의 관점을 병렬적으로 통합하고, 깊은 층에서도 정보가 흐를 수 있도록 통로를 설계한 이 일련의 과정은, 마치 혼돈(Raw Data) 속에서 질서(Context/Meaning)를 추출해내는 정교한 연금술과도 같습니다. 트랜스포머는 단순한 모델이 아니라, 수학적 논리가 어떻게 거대한 지능의 형상으로 피어날 수 있는지를 증명하는 공학적 서사시입니다.