테마 선택

📚 지식 노트

AI·하드웨어·주변기기·게임·컴퓨터 시스템·이론 컴퓨터 과학·수학·개발과 운영·보안·응용 분야에 대해 알아 두면 좋은 내용을 정리한 노트다. 위에서 분야를 고르고 아래에서 노트를 고른다.

대규모 언어 모델(LLM)

LLM이 글을 토큰으로 자르는 방법부터 사전 학습과 스케일링 법칙, 사람 선호에 맞추는 사후 학습, 빠르고 싸게 돌리는 추론 기법, 긴 컨텍스트와 전문가 혼합, 추론 모델, 평가의 함정까지를 숫자로 계산해 가며 정리한다.

목차 (17)
  1. 토큰화: 글을 조각으로 자르기
  2. 다음 토큰 예측과 디코더 전용 트랜스포머
  3. 사전 학습 데이터와 스케일링 법칙
  4. 사후 학습: SFT, RLHF, DPO, 헌법 AI
  5. 파라미터 효율 미세 조정: LoRA
  6. 지식 증류: 큰 모델로 작은 모델 가르치기
  7. 샘플링: 온도와 top-p
  8. KV 캐시
  9. 양자화
  10. 추측 디코딩
  11. 긴 컨텍스트: RoPE와 길이 늘리기
  12. 전문가 혼합(MoE)
  13. 추론 모델과 테스트 시간 계산
  14. 모델 공개의 정도: 오픈 가중치와 오픈 소스
  15. 평가와 벤치마크, 오염
  16. 흔한 오해
  17. 핵심 논문

LLM이 무엇이고 어떻게 쓰는지는 AI 기초 노트에, 어텐션과 트랜스포머 블록의 속은 딥러닝 노트에 있다. 이 노트는 그 사이, 언어 모델을 만들고 돌리는 쪽의 구조를 다룬다. 학습·서빙에 드는 GPU와 비용은 AI 인프라 노트에서 이어진다.

토큰화: 글을 조각으로 자르기

모델은 글자를 직접 보지 않고 토큰 번호의 줄을 본다. 낱말 단위로 자르면 어휘가 끝없이 늘고 처음 보는 낱말을 다룰 수 없으며, 글자 단위로 자르면 줄이 너무 길어진다. 그 사이를 메우는 것이 BPE(byte pair encoding)다. Sennrich 등(2016)이 번역에 들여온 방법으로, 말뭉치에서 가장 자주 이웃한 두 조각을 하나로 합치는 일을 정한 횟수만큼 되풀이한다.

BPE 단계 그림: low, lower, newest, widest 네 낱말이 글자 조각에서 시작해 가장 잦은 쌍을 합칠 때마다 조각이 길어지고 오른쪽 병합 규칙 목록이 늘어난다낱말 × 빈도토큰 조각배운 병합 규칙low × 5low_lower × 2lower_newest × 6newest_widest × 3widest_아직 없음low × 5low_lower × 2lower_newest × 6newest_widest × 3widest_1. e + slow × 5low_lower × 2lower_newest × 6newest_widest × 3widest_1. e + s2. es + tlow × 5low_lower × 2lower_newest × 6newest_widest × 3widest_1. e + s2. es + t3. est + _low × 5low_lower × 2lower_newest × 6newest_widest × 3widest_1. e + s2. es + t3. est + _4. l + olow × 5low_lower × 2lower_newest × 6newest_widest × 3widest_1. e + s2. es + t3. est + _4. l + o5. lo + wlow × 5low_lower × 2lower_newest × 6newest_widest × 3widest_1. e + s2. es + t3. est + _4. l + o5. lo + w6. n + e_ 는 낱말 끝 표시다. 색칠한 칸이 이번 단계에 새로 생긴 토큰이다.
1 / 7

처음에는 모든 낱말을 글자 하나씩으로 자르고 끝에 낱말 끝 표시(_)를 붙인다.

BPE 학습. 말뭉치의 낱말을 글자로 자른 뒤, 가장 자주 이웃한 두 조각을 새 토큰 하나로 합치는 일을 되풀이한다. 합친 순서가 곧 병합 규칙이고, 규칙 수가 어휘 크기를 정한다. 말뭉치는 Sennrich 등(2016)의 예다.

위 여섯 번의 병합을 배우고 나면 말뭉치에 없던 lowest도 low + est_로 잘린다. 자주 쓰는 낱말은 통째로 한 토큰이 되고, 드문 낱말은 아는 조각들로 나뉜다. 실제 모델의 어휘는 이런 병합을 수만~수십만 번 해서 만든다.

  • 바이트 단위 BPE: GPT-2 이후 많은 모델은 글자 대신 UTF-8 바이트 256개에서 출발한다. 어떤 글자든 바이트로는 나타낼 수 있으니 ‘모르는 글자’ 토큰이 생기지 않는다.
  • 토큰 ≠ 글자: 요금, 컨텍스트 창, 생성 속도가 모두 토큰으로 매겨진다. 영어는 흔히 한 낱말이 토큰 하나 남짓이지만 언어마다 크게 다르다. 같은 문장을 옮긴 글의 토큰 수가 언어에 따라 최대 15배까지 차이 났다는 측정이 있다(Petrov 등 2023).
  • 한국어의 비용: 한글 한 글자는 UTF-8로 3바이트다. ‘오늘 날씨가 좋다.’는 10글자지만 24바이트다. 어휘가 한국어 병합을 많이 배웠다면 낱말 하나가 토큰 한두 개로 줄지만, 영어 위주로 학습한 어휘에서는 글자 하나가 토큰 여러 개로 쪼개진다. 같은 내용이라도 한국어가 토큰을 더 쓰는 경우가 많다.
글자 수와 UTF-8 바이트 수 비교: 영어 문장은 26글자가 26바이트로 같고, 한국어 문장은 10글자가 24바이트다영어 ‘The weather is nice today.’글자 수26UTF-8 바이트26한국어 ‘오늘 날씨가 좋다.’글자 수10UTF-8 바이트24바이트 단위 BPE는 바이트에서 출발한다. 한글 병합을 못 배운 어휘라면 글자 하나가 토큰 3개다.
같은 뜻의 두 문장. 영어는 글자 수와 바이트 수가 같지만, 한국어는 글자마다 3바이트라 바이트 단위 BPE의 출발점이 세 배 길다. 실제 토큰 수는 어휘가 배운 병합에 따라 정해진다.

내 글이 몇 토큰인지는 모델 회사의 토큰 계산기나 tiktoken 같은 라이브러리로 직접 세 보는 것이 가장 정확하다. 토크나이저는 모델마다 달라서 같은 글도 모델을 바꾸면 토큰 수가 바뀐다.

다음 토큰 예측과 디코더 전용 트랜스포머

LLM이 학습하는 과제는 하나다. 앞 토큰들을 보고 다음 토큰의 확률 분포를 맞히는 것이다. 학습 때는 글 한 편의 모든 위치에서 동시에 ‘다음 토큰’을 맞히게 하고, 정답 토큰에 준 확률의 로그를 손실로 쓴다(교차 엔트로피). 생성할 때는 분포에서 토큰 하나를 골라 뒤에 붙이고 다시 넣는 일을 되풀이한다(자기 회귀).

다음 토큰 예측의 반복: 지금까지의 토큰을 트랜스포머 디코더에 넣어 다음 토큰의 확률 분포를 얻고, 하나를 골라 뒤에 붙인 다음 같은 계산을 되풀이한다지금까지의 토큰오늘날씨가참디코더 전용 트랜스포머디코더 블록 × N앞 토큰만 본다다음 토큰 확률맑좋흐춥샘플링하나고르기고른 토큰(예: ‘맑’)을 뒤에 붙이고 처음부터 다시 — 답이 끝날 때까지 반복
생성의 반복. 매 걸음마다 지금까지의 토큰 전체를 보고 다음 토큰 하나의 확률을 낸다. 긴 답도 이 반복의 결과라 출력 토큰 수만큼 모델을 실행한다.
  • 디코더 전용: GPT 계열과 오늘날 대부분의 LLM은 트랜스포머의 디코더 블록만 쌓는다. 각 위치는 자기보다 앞 토큰만 볼 수 있게 가린다(인과 마스크). 그래서 한 번의 순전파로 모든 위치의 ‘다음 토큰’ 손실을 함께 계산할 수 있다.
  • 블록 하나: 어텐션(앞 토큰 중 무엇을 참고할지) + 피드포워드 신경망(위치마다 같은 변환) + 잔차 연결·정규화. 이 블록을 수십~백여 층 쌓는다. 자세한 계산은 딥러닝 노트에 있다.
  • 문맥 내 학습: GPT-3(2020)는 가중치를 바꾸지 않고 프롬프트에 예시 몇 개만 넣어도 새 과제를 푼다는 것을 보였다. 다음 토큰 맞히기를 충분히 크게 하면 이런 능력이 따라 나온다.

사전 학습 데이터와 스케일링 법칙

사전 학습 데이터는 웹 크롤링 글이 중심이고 책·논문·코드·위키 등을 섞는다. 그대로 쓰지 않고 거르는 과정이 품질을 크게 좌우한다.

  • 정제: 언어 판별, 본문만 뽑기, 스팸·광고·저품질 글 거르기, 개인정보 지우기.
  • 중복 제거: 같은 글이 수없이 복사돼 있어 그대로 두면 외워 버린다. 문서와 문단 단위로 거의 같은 글까지 걷어 낸다.
  • 섞는 비율: 코드·수학처럼 적지만 값진 데이터는 여러 번 보게 비중을 올린다. 비율 자체가 실험으로 정하는 설계 값이다.

스케일링 법칙은 모델 크기(N, 파라미터 수), 데이터(D, 학습 토큰 수), 계산량(C)을 늘리면 손실이 거듭제곱 꼴로 매끄럽게 준다는 관찰이다. 학습 계산량은 C ≈ 6·N·D FLOPs로 어림한다(토큰 하나에 순전파 2N, 역전파 4N). 이 식이 있으면 큰 학습을 하기 전에 작은 실험으로 결과를 내다볼 수 있다.

  • Kaplan 등(2020)은 계산이 늘면 대부분을 모델 크기에 쓰라고 했다. 최적 크기가 C0.73에 비례하므로 계산이 10배면 모델은 5.4배, 데이터는 1.9배만 늘린다.
  • Hoffmann 등(2022, Chinchilla)은 학습률 일정을 학습 길이에 맞춰 다시 실험해, 모델과 데이터를 같은 비율로 키워야 한다고 고쳤다. 계산 10배면 둘 다 3.2배다. 결과를 줄이면 파라미터 하나당 약 20토큰이다.
세 모델의 크기와 학습 토큰: GPT-3는 1750억 파라미터에 3000억 토큰, Gopher는 2800억 파라미터에 3000억 토큰, Chinchilla는 700억 파라미터에 1조 4000억 토큰으로 파라미터당 20토큰을 썼다파라미터(십억)학습 토큰(십억)토큰÷파라미터GPT-33.2 × 10²³1753001.7Gopher5.0 × 10²³2803001.1Chinchilla5.9 × 10²³701,40020.0모델 이름 아래는 6·N·D로 어림한 학습 계산량(FLOPs)이다.
GPT-3·Gopher는 파라미터당 2토큰도 안 되는 데이터로 학습했다. Chinchilla는 Gopher와 비슷한 계산량을 4분의 1 크기 모델과 4배 넘는 데이터에 써서 더 좋은 성능을 냈다.

예로, Gopher(280B, 300B 토큰)의 계산량은 6 × 280B × 300B ≈ 5.04 × 10²³ FLOPs다. 이 예산을 ‘파라미터당 20토큰’으로 나누면 C = 6·N·20N에서 N ≈ 65B, D ≈ 1.3T 토큰이 나온다. 실제 Chinchilla는 70B·1.4T(5.88 × 10²³ FLOPs)로 거의 같은 자리다.

다만 ‘20토큰’은 학습 계산만 아끼는 기준이다. 모델은 학습 뒤 수없이 실행되므로, 요즘은 추론 비용을 줄이려고 작은 모델에 이보다 훨씬 많은 토큰을 쓰는 경우가 흔하다. 예를 들어 Llama 2는 7B 모델에도 2조 토큰을 썼다(파라미터당 약 286토큰).

사후 학습: SFT, RLHF, DPO, 헌법 AI

사전 학습만 한 모델은 글을 이어 쓸 뿐 질문에 답하는 조수가 아니다. 질문을 받으면 비슷한 질문 목록을 이어 쓰기도 한다. 이를 대화형 조수로 바꾸는 단계가 사후 학습이다.

  1. SFT(지도 미세 조정, 지시 튜닝): 사람이 쓴 ‘지시 → 좋은 답’ 예시로 다시 학습한다. 양은 사전 학습에 비하면 아주 적다.
  2. 보상 모델: 같은 질문의 답 둘을 보여 주고 사람이 더 나은 쪽을 고른다. 이 선호 쌍으로 ‘답의 점수’를 내는 모델을 학습한다. 보통 Bradley–Terry 모형을 쓰는데, 점수 차가 1이면 높은 쪽이 선호될 확률을 σ(1) ≈ 0.73로 본다.
  3. 강화 학습(PPO): 모델이 답을 쓰면 보상 모델이 점수를 매기고, 점수가 오르게 정책을 고친다. 원래 모델에서 너무 멀어지지 않게 KL 벌점을 함께 건다. 보상 모델의 빈틈만 파고드는 답(보상 해킹)을 막기 위해서다.

이 세 단계가 InstructGPT(2022)가 정리한 RLHF다. 사람 평가에서 1.3B InstructGPT의 답이 175B GPT-3의 답보다 더 선호됐다. 크기보다 ‘무엇을 원하는지’ 맞추는 학습이 컸다는 뜻이다.

사후 학습 흐름: 사전 학습 모델을 지시와 좋은 답 예시로 SFT한 뒤, RLHF는 선호 쌍으로 보상 모델을 학습하고 PPO로 정책을 최적화하며, DPO는 선호 쌍으로 정책을 바로 학습한다RLHF (InstructGPT 방식)DPO사전 학습다음 토큰 맞히기SFT지시·좋은 답 예시보상 모델 학습사람이 고른 선호 쌍PPO 강화 학습보상↑, KL로 덜 벗어남DPO: 선호 쌍으로 정책을 바로 학습보상 모델·강화 학습 단계가 없다
사후 학습의 두 길. 둘 다 SFT 모델과 사람의 선호 쌍에서 시작한다. RLHF는 보상 모델을 따로 학습하고 강화 학습으로 정책을 고치며, DPO는 같은 목표를 선호 쌍의 분류 손실 하나로 바로 푼다.
  • DPO: Rafailov 등(2023)은 RLHF의 목표식을 다시 풀면 최적 정책이 보상 모델 없이 닫힌 꼴로 나온다는 것을 보였다. 그래서 선호 쌍마다 ‘좋은 답의 확률은 올리고 나쁜 답의 확률은 내리는’ 분류 손실만으로 학습한다. 답을 생성하며 점수를 매기는 강화 학습 단계가 없어 단순하고 안정적이다.
  • 헌법 AI와 RLAIF: Constitutional AI(Anthropic, 2022)는 사람이 일일이 고르는 대신 원칙 목록(헌법)을 주고, 모델이 그 원칙으로 자기 답을 비평·수정하고 선호를 매기게 했다. 이렇게 AI가 매긴 선호로 하는 강화 학습을 RLAIF라 부르고, Lee 등(2023)은 요약 등 과제에서 사람 피드백과 비슷한 결과를 냈다.
  • 사후 학습이 어디까지 안전을 보장하는지, 보상 해킹·아첨 같은 한계는 AI 안전과 정책 노트에서 다룬다.

대화도 결국 토큰 한 줄이다. 사후 학습 때 시스템·사용자·조수 메시지를 <|user|> 같은 특수 토큰으로 감싼 정해진 모양(채팅 템플릿)으로 이어 붙여 학습하므로, 모델은 “조수 차례” 표시 뒤에 답을 이어 쓰는 법을 익힌다. 시스템 프롬프트도 따로 저장되는 설정이 아니라 이 줄의 맨 앞에 붙는 글이다. 템플릿은 같은 바탕 모델에서 나온 모델끼리도 다를 수 있고, 틀린 템플릿을 쓰면 성능이 크게 떨어진다(Hugging Face 문서). 공개 모델을 직접 돌릴 때 라이브러리의 템플릿 기능을 쓰는 이유다.

파라미터 효율 미세 조정: LoRA

모든 가중치를 다시 학습하면 모델 크기만큼의 기울기와 옵티마이저 상태가 필요하고, 과제마다 모델 전체 사본이 생긴다. LoRA(Hu 등 2021)는 원래 가중치 W를 얼리고, 바뀌는 양을 가는 두 행렬의 곱 B·A(랭크 r)로 나타내 그것만 학습한다. 미세 조정으로 생기는 변화는 실제로 낮은 랭크로 잘 근사된다는 관찰이 바탕이다.

LoRA 도해: 고정한 4096×4096 가중치 W에 4096×8 행렬 B와 8×4096 행렬 A의 곱을 더한다. 학습 파라미터는 16,777,216개에서 65,536개로 준다W (d × k)사전 학습 가중치고정(학습 안 함)+B (d × r)×A (r × k)학습하는 것은가는 두 행렬뿐d = k = 4096, r = 8통째로 학습16,777,216개LoRA로 학습65,536개= 0.39%
LoRA. W는 그대로 두고 B·A만 학습한다. 학습이 끝나면 B·A를 W에 더해 하나로 합칠 수 있어 추론이 느려지지 않는다.
  • 4096×4096 행렬 하나에 r = 8이면 학습할 수는 16,777,216개에서 65,536개로, 0.39%가 된다.
  • 층 32개의 쿼리·값 행렬(Wq, Wv)에만 붙이면 32 × 2 × 65,536 = 4,194,304개, 7B 모델의 0.06%다. 논문은 GPT-3 175B에서 학습 파라미터를 1만 분의 1로, GPU 메모리를 3분의 1로 줄였다고 보고했다.
  • 과제마다 몇 MB짜리 B·A만 저장하고, 서빙 때 바꿔 끼운다. QLoRA는 얼린 W를 4비트로 양자화해 메모리를 더 줄인다.

지식 증류: 큰 모델로 작은 모델 가르치기

지식 증류는 큰 모델(선생)이 낸 출력을 작은 모델(학생)의 학습 목표로 쓰는 방법이다. Hinton 등(2015)이 여러 모델의 앙상블이 가진 지식을 배포하기 쉬운 모델 하나로 옮기는 방법으로 정리했다. 정답 하나만 보는 대신 선생이 매긴 확률 분포 전체(“고양이 0.7, 호랑이 0.2, 자동차 0.0”)를 따라 하면, 어떤 오답이 그나마 가까운지라는 정보까지 배운다.

  • LLM에서: 선생 모델의 확률 분포를 따라 하게 하거나, 더 단순하게 선생이 쓴 답·풀이를 SFT 데이터로 쓴다. 큰 모델의 솜씨 일부를 싸고 빠른 작은 모델로 옮기는 것이 목적이다.
  • 양자화·LoRA와의 차이: 양자화는 같은 모델을 적은 비트로 저장하고, LoRA는 같은 모델에 작은 차이만 학습한다. 증류는 구조가 다른 새 작은 모델을 학습한다.
  • 남의 모델 출력으로 학습하는 것은 서비스 이용 약관이 막는 경우가 있어, 쓰려는 모델의 약관을 확인한다.

샘플링: 온도와 top-p

모델이 내는 것은 어휘 전체에 대한 점수(로짓)다. 소프트맥스로 확률을 만들기 전에 로짓을 온도 T로 나누면 분포의 날카로움이 바뀐다. 늘 1등만 고르면(탐욕, greedy) 같은 말을 되풀이하기 쉽고, 분포 그대로 뽑으면 꼬리에 있는 엉뚱한 토큰이 가끔 나온다.

온도에 따른 다음 토큰 확률: 온도가 낮으면 1등 후보에 확률이 몰리고, 높으면 고르게 퍼진다. top-p 0.9로 남는 후보 수가 온도에 따라 2·3·4개로 바뀐다온도 0.50.79맑다0.16좋다0.04흐림0.01춥다0.00덥다top-p 0.9: 2개 남음온도 1.00.55맑다0.25좋다0.12흐림0.05춥다0.03덥다top-p 0.9: 3개 남음온도 1.50.43맑다0.25좋다0.16흐림0.09춥다0.07덥다top-p 0.9: 4개 남음
‘오늘 날씨가 …’ 다음 후보 다섯의 확률. 로짓은 같고 온도만 다르다. 색칠한 막대가 top-p 0.9가 남기는 후보로, 이 안에서만 다시 비율을 맞춰 뽑는다.
  • 온도: T = 0.5에서 1등 확률은 79%, T = 1.5에서는 43%다. 낮으면 일관되고 예측 가능한 답, 높으면 다양하지만 엇나갈 수 있는 답이 나온다. 0에 가까우면 사실상 탐욕 선택이다.
  • top-p(누클리어스, Holtzman 등 2019): 확률이 큰 후보부터 더해 p에 닿을 때까지만 남긴다. 분포가 날카로우면 후보가 적게, 평평하면 많이 남아 꼬리를 상황에 맞게 자른다. 위 그림에서 남는 수가 2·3·4개로 바뀐다.
  • top-k는 개수를 고정해 자른다. 실무에서는 온도와 top-p를 함께 쓰는 경우가 많고, 코드·수학처럼 답이 하나인 일에는 온도를 낮게 둔다.
  • 온도 0도 완전히 같지는 않다: 이론상 탐욕 선택은 늘 같은 답이지만, 실제 서버에서는 같은 요청에도 답이 갈린다. Thinking Machines Lab(2025)은 서버 부하에 따라 함께 묶이는 배치 크기가 바뀌고, 그에 따라 GPU 커널 안의 더하는 순서가 바뀌어 부동소수점 결과가 미세하게 달라지는 것이 주된 원인이라고 분석했다. 온도 0으로 같은 질문을 1,000번 보냈더니 서로 다른 답이 80가지 나왔고, 배치 크기와 상관없이 같은 결과를 내는 커널로 바꾸자 1,000개가 모두 같아졌다. 대신 처리 속도가 느려졌다.

KV 캐시

생성할 때마다 앞 토큰 전체를 다시 계산하면 낭비다. 어텐션에서 앞 토큰의 키(K)와 값(V)은 한 번 계산하면 바뀌지 않으므로 메모리에 쌓아 두고, 새 토큰은 자기 K·V만 계산해 덧붙인다. 이것이 KV 캐시다. 계산은 줄지만 메모리를 차지한다.

크기는 2(K와 V) × 층 수 × KV 헤드 수 × 헤드 차원 × 토큰 수 × 값 하나의 바이트다. 층 32·헤드 32·헤드 차원 128·FP16(Llama 2 7B와 같은 모양)이면 토큰 하나에 524,288바이트(0.5MiB)다. 4096토큰 요청 16개를 함께 처리하면 34.4GB로, 가중치 14GB보다 크다.

컨텍스트 길이별 KV 캐시 크기: 4K 토큰에서 MHA 2.1GB, GQA 0.5GB, 32K 토큰에서 MHA 17GB, GQA 4.3GB, 128K 토큰에서 MHA 69GB, GQA 17GB. 가중치는 14GB다헤드 32개(MHA)KV 헤드 8개(GQA)가중치 14GB4K 토큰2.1GB0.5GB32K 토큰17GB4.3GB128K 토큰69GB17GB층 32 · 헤드 차원 128 · FP16, 요청 하나 기준. 요청이 여럿이면 그 수만큼 곱한다.
KV 캐시는 컨텍스트 길이에 비례해 는다. 긴 컨텍스트에서는 가중치보다 커지므로, 키·값 헤드를 여러 쿼리 헤드가 나눠 쓰는 GQA로 줄인다.
  • GQA(Ainslie 등 2023): 쿼리 헤드는 그대로 두고 K·V 헤드를 몇 개로 줄여 여러 쿼리 헤드가 함께 쓴다. KV 헤드 8개면 캐시가 4분의 1이다. 최근 공개 모델 다수가 쓴다.
  • KV 캐시를 블록 단위로 나눠 관리하는 서빙 기법(PagedAttention)은 AI 인프라 노트에서 다룬다.

양자화

가중치를 16비트 대신 8비트·4비트 정수로 저장하면 메모리가 반·4분의 1로 준다. 토큰 하나를 만들 때마다 가중치 전체를 메모리에서 읽어야 하므로, 크기가 줄면 생성 속도도 빨라진다. 70B 모델이면 16비트 140.0GB, 4비트(128개마다 16비트 배율 하나) 36.1GB다.

70B 모델의 가중치 크기: 16비트(FP16) 140GB, 8비트 70GB, 4비트(그룹 128) 36GB. 4비트여야 80GB 메모리 하나에 들어간다메모리 24GB메모리 80GB16비트(FP16)140.0GB8비트70.0GB4비트(그룹 128)36.1GB가중치만 센 값이다. KV 캐시와 실행 버퍼가 따로 더 든다.
70B 모델 가중치의 크기. 16비트로는 80GB 메모리 하나에 들어가지 않고, 4비트면 들어간다. 24GB 메모리에는 4비트로도 들어가지 않는다.
  • 원리: 가중치 묶음(그룹)마다 배율 하나를 두고, 값을 배율로 나눠 가장 가까운 정수로 반올림해 저장한다. 그룹이 작을수록 정확하지만 배율 저장분이 는다.
  • 학습 뒤 양자화: GPTQ는 한 층씩 양자화하며 생긴 오차를 아직 양자화하지 않은 가중치로 보정하고, AWQ는 활성값이 큰 소수의 중요한 채널을 배율로 보호한다. 둘 다 다시 학습하지 않고 적은 보정 데이터만 쓴다.
  • 한계: 4비트 아래로 내려가면 품질이 눈에 띄게 떨어지기 쉽고, 떨어지는 정도는 모델·과제마다 다르다. 쓰려는 과제로 직접 비교해 보는 것이 안전하다.

추측 디코딩

토큰을 하나씩 만드는 디코딩은 매번 가중치 전체를 읽느라 메모리 대역폭에 묶이고, 계산 장치는 대부분 논다. 그런데 큰 모델은 토큰 하나를 만들 때나 여러 토큰을 한꺼번에 검사할 때나 가중치를 한 번 읽으면 된다. 추측 디코딩(Leviathan 등 2023, Chen 등 2023)은 이 빈틈을 쓴다.

추측 디코딩 단계 그림: 초안 모델이 네 토큰을 쓰고, 큰 모델이 한 번에 검사해 세 토큰을 받아들인 뒤 네 번째 자리를 자기 토큰으로 바꿔 한 번의 실행으로 네 토큰을 얻는다고양이가창가에초안 모델 실행 0번 · 큰 모델 실행 0번고양이가창가에앉아초안햇볕을초안쬐며초안잔다초안초안 모델 실행 4번 · 큰 모델 실행 0번고양이가창가에앉아검사햇볕을검사쬐며검사잔다검사초안 모델 실행 4번 · 큰 모델 실행 1번고양이가창가에앉아✓햇볕을✓쬐며✓잔다✗초안 모델 실행 4번 · 큰 모델 실행 1번고양이가창가에앉아✓햇볕을✓쬐며✓존다★초안 모델 실행 4번 · 큰 모델 실행 1번쓴 글초안받아들임 ✓버림 ✗큰 모델이 고름 ★
1 / 5

지금까지 쓴 글(2토큰). 큰 모델로만 쓰면 토큰 하나에 한 번씩 실행해야 한다.

추측 디코딩. 큰 모델은 토큰 하나를 만들 때나 여러 토큰을 검사할 때나 가중치를 한 번 읽으면 되므로, 초안을 한꺼번에 검사하면 실행 횟수가 준다. 받아들이는 규칙 덕분에 결과 분포는 큰 모델만 쓸 때와 같다.

초안 토큰을 받아들일 확률을 α, 초안 길이를 γ라 하면 큰 모델 한 번 실행으로 얻는 토큰 수의 기댓값은 (1 − αγ+1) / (1 − α)다. α = 0.8, γ = 4면 약 3.36토큰이다. 초안 모델의 비용을 빼면 실제 속도 향상은 이보다 작고, 논문은 2~3배를 보고했다. 받아들이는 규칙이 큰 모델의 확률로 보정돼 있어 출력 분포는 큰 모델만 쓸 때와 똑같다. 품질을 잃지 않는 가속이라는 점이 양자화와 다르다.

긴 컨텍스트: RoPE와 길이 늘리기

트랜스포머의 어텐션은 순서를 모르므로 위치 정보를 따로 넣는다. 오늘날 공개 LLM 대부분은 RoPE(회전 위치 임베딩, Su 등 2021)를 쓴다. 쿼리·키 벡터의 차원을 둘씩 짝지어, 위치 m에서 각 쌍을 m × θi만큼 돌린다. θi = 10000−2i/d라 앞쪽 쌍은 빨리, 뒤쪽 쌍은 느리게 돈다.

RoPE 도해: 같은 차원 쌍에서 q는 위치 2와 7, k는 위치 5와 10만큼 돌아간다. 두 경우 모두 위치 차가 3이라 사이 각도가 0.95라디안으로 같다q (위치 2)k (위치 5)위치 2와 5: 사이 각 0.95 radq (위치 7)k (위치 10)위치 7과 10: 사이 각 0.95 rad차원 64개 중 i = 4인 쌍(위치 하나당 0.316 rad). 어텐션 점수는 사이 각에만 달린다.
RoPE의 한 차원 쌍. 두 벡터를 각자 위치만큼 돌리면 내적(어텐션 점수)은 둘 사이 각도, 곧 위치 차에만 달린다. 그래서 모델이 절대 위치가 아닌 거리를 배운다.
  • 길이 늘리기: 학습 때 보지 못한 긴 위치에서는 회전 각이 낯선 값이 돼 성능이 무너진다. 위치 보간(Chen 등 2023)은 위치를 바깥으로 늘리는 대신 학습한 범위 안으로 줄여 넣는다. 2048토큰으로 학습한 모델을 8192토큰에 쓰려면 위치에 0.25를 곱하고, 짧은 미세 조정으로 적응시킨다. 이후 주파수 쌍마다 다르게 늘리는 방법들이 이어졌다.
  • 긴 컨텍스트의 비용: 어텐션 계산은 길이의 제곱으로, KV 캐시는 길이에 비례해 는다. 그리고 창이 길다고 그 안의 내용을 고르게 잘 쓰는 것은 아니다. 중간에 묻힌 정보를 놓치는 경향이 보고돼(Liu 등 2023), 긴 문서는 검색해서 필요한 부분만 넣는 방식(에이전트와 활용 노트의 RAG)과 함께 쓴다.

전문가 혼합(MoE)

MoE는 피드포워드 층을 여러 개의 ‘전문가’로 두고, 라우터가 토큰마다 그중 몇 개만 골라 계산한다. 파라미터(지식을 담는 그릇)는 크게 늘리면서 토큰 하나에 드는 계산은 고른 전문가 몫만큼만 든다.

MoE 라우팅 도해: 라우터가 전문가 8개에 점수를 매겨 2번과 5번 전문가만 고르고, 두 출력을 0.60와 0.40의 비율로 섞는다토큰라우터전문가별 점수전문가 1전문가 2× 0.60전문가 3전문가 4전문가 5× 0.40전문가 6전문가 7전문가 8+출력고르지 않은 전문가 6개는 이 토큰에서 계산하지 않는다. 다음 토큰은 다른 전문가를 고를 수 있다.
라우터가 전문가 8개에 점수를 매기고 상위 2개만 쓴다. 고른 둘의 점수에만 소프트맥스를 적용해 섞는 비율을 정한다(Mixtral 방식).
  • 그림의 라우터는 2번과 5번 전문가를 골라 0.60 : 0.40로 섞는다. 고르지 않은 6개는 계산하지 않는다.
  • 총 파라미터와 활성 파라미터: Mixtral 8x7B는 층마다 전문가 8개 중 2개를 쓴다. 어텐션 등은 함께 쓰므로 ‘8 × 7B’가 아니라 총 47B이고, 토큰 하나가 쓰는 것은 13B다. 계산은 13B 모델 수준이지만 메모리에는 47B를 다 올려야 한다.
  • 부하 균형: 라우터가 몇몇 전문가만 편애하면 나머지가 놀고 그 전문가에 일이 몰린다. Switch Transformer는 토큰마다 전문가 하나만 고르는 단순한 방식에, 고르게 나눠 쓰도록 하는 보조 손실을 더해 이 문제를 다뤘다.

추론 모델과 테스트 시간 계산

답하기 전에 긴 ‘생각’ 토큰을 먼저 쓰도록 학습한 모델을 흔히 추론 모델이라 부른다. 2024년 OpenAI o1 이후 여러 회사가 내놓았다. 핵심은 학습에 쓰는 계산이 아니라 답할 때 쓰는 계산(테스트 시간 계산)을 늘려 성능을 올린다는 점이다. 생각을 단계별로 쓰게 하는 프롬프트 기법(사고의 사슬)과 여러 번 풀어 다수결하는 방법은 에이전트와 활용 노트에 있다. 추론 모델은 그런 행동을 학습으로 몸에 익힌 것이다.

  • 강화 학습으로 생긴 추론: 학습 방법이 가장 자세히 공개된 예가 DeepSeek-R1이다. 수학·코드처럼 정답을 규칙으로 채점할 수 있는 문제에서 정답 여부만 보상으로 주는 강화 학습을 했더니, 생각이 점점 길어지고 스스로 검토하거나 방향을 바꾸는 행동이 나타났다. 사람이 쓴 풀이 예시 없이 생긴 행동이라는 점이 핵심이다.
  • 계산을 어디에 쓸까: Snell 등(2024)은 검증 모델로 여러 답 중 고르기, 답을 고쳐 쓰기 같은 방법의 효과가 문제 난이도에 따라 다르다는 것을 보였다. 난이도에 맞춰 계산을 나누면 단순히 N개 뽑아 최고를 고르는 방식보다 4배 넘게 효율적이었고, 작은 모델이 어느 정도 풀 수 있는 문제에서는 같은 계산량의 14배 큰 모델을 이기기도 했다.
  • 공짜가 아니다: 생각 토큰도 출력 토큰이라 시간과 요금이 그만큼 든다. 쉬운 질문에는 낭비이고, 생각이 길다고 늘 맞는 것도 아니다.
생각 토큰의 비용: 답 300토큰에 생각 토큰을 0·2,000·10,000개 붙이면 초당 50토큰일 때 6초·46초·206초가 걸린다생각답 300토큰생각 06초생각 2,00046초생각 10,000206초가정: 초당 50토큰으로 생성한다. 비용도 출력 토큰 수에 비례해 같은 비율로 는다.
같은 300토큰 답 앞에 생각 토큰을 붙이면 기다리는 시간과 비용이 출력 토큰 수에 비례해 는다. 생성 속도는 설명을 위한 가정값이다.

초당 50토큰이면 생각 없이 바로 답하는 데 6초, 생각 1만 토큰을 붙이면 206초다. 그래서 많은 서비스가 생각 길이(추론 노력)를 고르게 하거나, 질문 난이도에 따라 자동으로 정한다.

모델 공개의 정도: 오픈 가중치와 오픈 소스

뉴스에서 “오픈 소스 모델”이라 부르는 것의 대부분은 학습된 가중치 파일을 내려받을 수 있게 한 오픈 가중치 모델이다. 가중치가 있으면 직접 돌리고 미세 조정할 수 있지만, 무엇으로 어떻게 학습했는지는 모른다. 소프트웨어의 오픈 소스 정의를 관리하는 OSI는 Open Source AI Definition 1.0에서 세 가지를 모두 요구한다.

공개 범위얻는 것할 수 없는 것
API만모델을 불러 쓰기내 서버에서 돌리기, 가중치 고치기
오픈 가중치내려받아 실행, 양자화, 미세 조정학습 과정 재현, 학습 데이터 검토
OSI 정의의 오픈 소스 AI가중치(파라미터) + 학습·실행 전체 코드 + 숙련자가 비슷한 모델을 다시 만들 수 있을 만큼 자세한 데이터 정보—

오픈 가중치라도 라이선스가 제각각이다. 상업 이용을 자유롭게 허락하는 것부터, 사용자 수·용도에 제한을 두거나 출력으로 다른 모델을 학습하지 못하게 하는 것까지 있다. 모델 이름에 “open”이 붙었다는 것만 보지 말고 라이선스 원문을 확인한다. 가중치 공개가 안전에 어떤 문제를 낳는지는 AI 안전과 정책 노트의 흔한 오해 절에 있다.

평가와 벤치마크, 오염

모델을 비교할 때는 정답이 정해진 시험 묶음(벤치마크)을 쓴다. 지식 객관식인 MMLU, 함수를 짜고 테스트로 채점하는 HumanEval, 실제 GitHub 이슈를 고치는 SWE-bench가 대표적이다. 정답이 없는 대화 품질은 사람이 두 모델의 답을 나란히 보고 고르게 하는 Chatbot Arena 방식으로 잰다.

  • pass@k: 코드 문제는 k번 생성해 하나라도 테스트를 통과하면 푼 것으로 친다. n개를 생성해 c개가 맞았을 때의 추정값은 1 − C(n−c, k) / C(n, k)다. 10개 중 3개가 맞으면 pass@1은 0.30, pass@5는 0.92다. 어떤 k로 쟀는지에 따라 같은 모델의 점수가 크게 달라진다.
  • 포화: 모델이 좋아지면서 오래된 벤치마크는 점수가 천장에 붙어 차이를 가르지 못한다. 그래서 더 어려운 새 벤치마크가 계속 나온다.
  • 오염: 웹에서 모은 학습 데이터에 시험 문제와 답이 섞여 들어가면 모델이 푼 것이 아니라 외운 것을 재게 된다. GPT-3 논문은 시험 문제와 학습 데이터의 13-그램이 겹치는지로 오염을 검사했다.
오염 검사 도해: 시험 문제의 낱말 4-그램 9개 중 6개가 학습 글에 그대로 있어, 앞의 낱말들이 학습 글과 겹친다학습 글(웹에서 긁어 온 문서)철수는 사과 세 개를 샀고 영희는 두 개를 샀다 그리고 집에 갔다시험 문제철수는사과세개를샀고영희는두개를샀다모두몇개인가낱말 4-그램 9개 중 6개(67%)가 학습 글에 그대로 있다 → 오염 의심
낱말 4-그램으로 본 오염 검사의 원리. 시험 문제의 연속한 낱말 묶음이 학습 글에 그대로 있으면 겹친 것으로 센다. 실제 검사는 더 긴 n-그램과 큰 색인으로 한다.

그림의 문제는 4-그램 9개 중 6개가 학습 글에 있다. 이런 검사는 글자를 조금만 바꾼 변형이나 번역된 문제는 놓치므로, 공개 직후에 만든 새 문제로 다시 재 보거나 문제를 비공개로 두는 벤치마크가 함께 쓰인다. 숫자 하나보다 내 과제와 비슷한 예제로 직접 비교하는 것이 결국 가장 믿을 만하다.

채점 방식은 환각과도 이어진다. Kalai 등(2025)은 대부분의 벤치마크가 정답에만 점수를 주고 “모르겠다”에는 오답과 같은 0점을 주므로, 모르면 그럴듯하게 찍는 모델이 점수가 높아진다고 지적했다. 시험에서 빈칸보다 찍기가 유리한 것과 같다. 그래서 새 환각 시험을 더 만드는 것보다, 기존 리더보드의 채점을 바꿔 모른다고 밝힌 답이 찍어서 틀린 답보다 불리하지 않게 하자고 제안했다.

흔한 오해

  • "LLM은 글자를 본다" — 토큰을 본다. 한 낱말이 토큰 한두 개로 뭉쳐 있어 “이 낱말에 r이 몇 개인가”, 글자 거꾸로 쓰기 같은 글자 단위 과제에 의외로 약하다(위 토큰화 절).
  • "컨텍스트 창이 100만 토큰이면 답도 그만큼 길게 쓴다" — 컨텍스트 창은 입력과 출력을 합친 한도이고, 한 번에 낼 수 있는 출력 토큰 수는 서비스마다 따로, 훨씬 작게 정해 둔다. 창이 길다고 그 안을 고르게 잘 쓰는 것도 아니다(긴 컨텍스트 절).
  • "파라미터가 많을수록 똑똑하다" — 같은 계산이라면 작은 모델에 데이터를 더 쓰는 편이 나았고(Chinchilla), 사후 학습과 증류로 작은 모델이 큰 옛 모델을 앞서는 일도 흔하다. MoE는 총 파라미터와 실제로 계산에 쓰는 파라미터가 다르다.
  • "추론 모델의 생각은 실제 계산 과정을 그대로 보여 준다" — 꼭 그렇지 않다. Chen 등(2025)은 문제에 몰래 힌트를 넣었을 때, 모델이 힌트를 써서 답을 바꾸고도 생각 글에 그 힌트를 밝힌 비율이 대개 20%에 못 미쳤다고 보고했다. 생각 글은 유용한 단서지만 완전한 설명은 아니다.
  • "미세 조정하면 새 지식을 확실히 넣을 수 있다" — 미세 조정은 형식·말투·좁은 과제 솜씨를 익히는 데 강하고, 자주 바뀌는 사실을 넣기에는 RAG가 싸고 고치기 쉽다. 고르는 기준은 에이전트와 활용 노트에 있다.

핵심 논문

요지는 직접 정리한 한 줄이다. 더 자세한 요약은 논문 노트에 모은다.

논문연도한 줄 요지
Neural Machine Translation of Rare Words with Subword Units (Sennrich 등)2016잦은 글자 쌍을 합쳐 어휘를 만드는 BPE를 번역에 들여와, 처음 보는 낱말도 조각으로 나눠 다룰 수 있게 했다.
Scaling Laws for Neural Language Models (Kaplan 등)2020손실이 파라미터·데이터·계산량의 거듭제곱으로 매끄럽게 준다는 것을 재고, 계산이 늘면 모델을 주로 키우라고 권했다.
Language Models are Few-Shot Learners (GPT-3)2020175B 모델이 예시 몇 개만 프롬프트에 넣어도 새 과제를 푸는 문맥 내 학습을 보였다.
LoRA (Hu 등)2021가중치를 얼리고 저랭크 행렬 두 개만 학습해, 미세 조정의 학습 파라미터와 메모리를 크게 줄였다.
RoFormer: Rotary Position Embedding (Su 등)2021위치를 벡터 회전으로 넣어 어텐션 점수가 상대 거리에만 달리게 했다. 오늘날 공개 LLM 대부분이 쓴다.
Switch Transformers (Fedus 등)2021토큰마다 전문가 하나만 고르는 단순한 MoE로, 계산은 그대로 두고 파라미터를 조 단위까지 늘렸다.
Training Compute-Optimal LLMs (Chinchilla, Hoffmann 등)2022계산량이 정해지면 모델과 데이터를 같은 비율로 키워야 하고, 당시 큰 모델들은 데이터가 모자랐다고 보였다.
Training LMs to Follow Instructions with Human Feedback (InstructGPT)2022SFT → 보상 모델 → PPO의 RLHF 3단계를 정리했고, 1.3B 모델이 175B GPT-3보다 더 선호됐다.
Constitutional AI (Bai 등)2022사람 대신 원칙 목록을 보고 AI가 답을 비평·수정하고 선호를 매기게 해 해로운 답을 줄였다.
GPTQ (Frantar 등)20222차 정보로 오차를 보정하며 한 층씩 양자화해, 175B 모델을 3~4비트로 줄여도 품질을 지켰다.
Fast Inference via Speculative Decoding (Leviathan 등)2023작은 모델의 초안을 큰 모델이 한 번에 검사해, 출력 분포를 바꾸지 않고 생성을 2~3배 빠르게 했다.
Direct Preference Optimization (Rafailov 등)2023RLHF의 목표를 다시 풀어 보상 모델과 강화 학습 없이 선호 쌍의 분류 손실 하나로 정책을 학습했다.
AWQ (Lin 등)2023활성값이 큰 소수의 중요한 가중치 채널을 배율로 보호해 4비트 가중치 양자화의 손실을 줄였다.
Mixtral of Experts (Jiang 등)2024층마다 전문가 8개 중 2개를 고르는 공개 MoE로, 총 47B 중 13B만 쓰면서 Llama 2 70B와 겨뤘다.
DeepSeek-R12025정답을 자동으로 채점할 수 있는 문제의 강화 학습만으로 긴 추론과 스스로 검토하는 습관이 생겨남을 보였다.
더 읽을거리