0%

영상 정리 · sudoremove

Kimi K3 구조 뜯어보기 — 트랜스포머는 어디까지 기워졌나

46분 세미나를 처음부터 끝까지 따라 읽는 글

원본 · 이 글의 근거
  • 원본: https://www.youtube.com/watch?v=njM0LT4s6_0 · sudoremove 채널 · 46분 09초 · 2026-08-07 업로드
  • 원 제목: 「모델 구조 공부하시는 분들께 권하는 리포트, Kimi K3」
  • 이 글의 근거: 유튜브에 올라온 한국어 자막 전문(자막 조각 1,783개, 약 2만 3천 자). 자동자막이 아니라 올린 사람이 직접 단 자막이라 고유명사가 거의 깨지지 않았다
  • 말하는 사람은 둘이다. 영상 설명글에 "Featuring: JB, Noto" 라고 적혀 있고, 대화에서 진행자가 상대를 "노토" 라고 부른다. 그래서 진행자 JB · 해설자 Noto(노토) 로 적는다. 본명은 자막으로 확정되지 않는다
  • 영상에 없는 내용을 넣은 곳에는 그때마다 "영상에 없음" 이라고 붙였다. 공식 저장소와 원 논문에서 확인한 것들이다
목차 · 16개 장
  1. 0장먼저 알아야 할 세 가지
  2. 1장2.8조 개짜리를 통째로 풀어 버렸다
  3. 2장어텐션을 줄이는 길은 두 갈래뿐이다
  4. 3장기우기의 역사 — DeltaNet에서 KDA까지
  5. 4장"그거 안 넣었으면 어땠을까요"
  6. 5장3대 1의 나머지 1 — MLA와 어텐션 싱크
  7. 6장93개 층을 왜 다 똑같이 더하나 — Attention Residuals
  8. 7장MoE 네 단계 — 전문가는 어떻게 늘고 어떻게 작아졌나
  9. 8장위치를 안 알려주기로 한다 — RoPE에서 NoPE로
  10. 9장학생이 자기 답으로 배운다 — On-Policy Distillation
  11. 10장지식 그래프로 문제를 지어낸다
  12. 11장왜 더 아껴 쓰게 되었나
  13. 12장이걸 누가 볼까 — 두 사람의 감상
  14. 맺음그래서 무엇이 남나
  15. 부록 A이 글에 나온 말 정리
  16. 부록 B이 정리를 믿을 때 주의할 것

이 글을 읽기 전에

이 세미나에는 좀 드문 태도가 있다. 모델을 소개하는 자리인데, 절반은 "그게 정말 효과가 있었는지 우리는 모른다" 는 이야기다.

보통 이런 영상은 "이런 신기술이 들어갔다, 그래서 좋아졌다" 로 끝난다. 이 영상은 14분 40초 지점에서 진행자가 이렇게 묻는다. "저거 굳이 안 넣고 그냥 크기만 키웠으면, 성능이 달랐을까요?" 그리고 두 사람은 그 질문에 답을 못 한다. 답을 못 하는 이유를 설명하는 데 4분을 쓴다.

그러니까 이 글은 두 겹으로 읽힌다. 겉으로는 Kimi K3 라는 모델의 부품 목록이고, 안쪽으로는 "요즘 큰 모델을 만드는 일이 어쩌다 검증 불가능한 직관 게임이 되었나" 라는 이야기다.

이 글은 영상의 순서를 그대로 따라간다. 낯선 말이 나오면 그 자리에서 풀고 넘어간다.

0장먼저 알아야 할 세 가지

이 셋만 알면 나머지는 다 따라온다. 이미 아는 것이면 1장으로 건너뛰어도 된다.

0-1. 어텐션 — 모든 단어가 모든 단어를 쳐다보는 일

요즘 AI 모델은 거의 다 트랜스포머(Transformer) 라는 뼈대 위에 서 있다. 2017년에 나온 설계다.

그 뼈대의 심장이 어텐션(attention) 이다. 우리말로는 "주의 집중" 인데, 하는 일은 간단하다. 글 속의 모든 낱말이 다른 모든 낱말을 한 번씩 쳐다보고, "너 나랑 얼마나 상관있어?" 를 계산한다.

"그 사람이 어제 산 책은 재미없었다" 에서 "재미없었다" 가 무엇을 가리키는지 알려면 "책" 을 봐야 한다. 어텐션은 그걸 사람이 알려주지 않아도 스스로 찾아낸다. 이게 트랜스포머가 이긴 이유다.

그런데 여기에 치명적인 문제가 하나 있다. 낱말이 두 배 늘면 계산은 네 배가 된다. 서로가 서로를 다 봐야 하니 당연하다. 10개면 100번, 100개면 1만 번, 100만 개면 1조 번이다.

이 영상 전체가 이 문제 하나를 붙들고 있다. 앞으로 나올 온갖 이름들 — 리니어 어텐션, DeltaNet, KDA — 은 전부 "이 계산을 어떻게 줄일까" 에 대한 서로 다른 답이다.

0-2. MoE — 2.8조 개를 갖되 1,040억 개만 쓴다

모델의 크기는 파라미터(parameter) 개수로 잰다. 학습으로 값이 정해지는 숫자 하나가 파라미터 하나다. 사람으로 치면 시냅스 하나쯤 된다. 많을수록 똑똑해지지만, 많을수록 돌릴 때 비싸다.

MoE(Mixture of Experts, 전문가 혼합) 는 이 맞바꿈을 깨려는 설계다. 파라미터 덩어리를 여러 조각으로 쪼개 놓고, 낱말 하나를 처리할 때마다 그중 몇 조각만 골라 쓴다. 나머지는 잠들어 있다.

조각 하나하나를 전문가(expert) 라 부르고, 어느 전문가를 깨울지 고르는 장치를 라우터(router) 라 부른다.

그래서 숫자가 둘로 갈린다.

Kimi K3 는 총 2.8조 개, 활성 1,040억 개 다. 갖고 있는 것의 3.7% 만 쓴다.

얼마나 적게 쓰느냐를 희소성(sparsity) 이라고 부른다. 이 말은 11장에서 다시 중요해진다.

0-3. 이 영상을 관통하는 말 하나: "기우기"

해설자 노토가 설명하는 방식이 이렇다. 새 기술 하나를 소개할 때마다, 그게 어떤 부작용을 낳았고 그 부작용을 막으려고 또 무엇을 덧붙였는지까지 이어서 말한다.

중간에 진행자 JB 가 이걸 한 마디로 정리한다.

"LLM 개발은 기우기다."

구멍 난 옷을 천 조각으로 기우고, 그 자리가 또 뜯어져서 다시 기우는 일. 이 영상에서 이 표현이 네 번쯤 나온다. 앞으로 나오는 모든 부품을 "무엇을 기우려고 붙인 천 조각인가" 로 읽으면 훨씬 쉽다.

1장2.8조 개짜리를 통째로 풀어 버렸다

공개된 것

Moonshot AI 라는 중국 회사가 2026년 7월 17일에 Kimi K3 를 내놓았다. 자기들이 붙인 표현은 "Open Frontier Intelligence" 다.

이 짧은 표현에 자랑이 두 개 겹쳐 있다고 노토는 말한다.

여기서 가중치(weight) 는 앞서 말한 파라미터 값들의 실제 숫자 뭉치다. 이걸 공개한다는 건 설명서가 아니라 완성품 자체를 넘긴다는 말이다. 받아서 자기 컴퓨터에서 돌리든 뜯어보든 마음대로다. 학습에 든 돈을 생각하면 대단한 일이라고 노토는 말한다.

Moonshot 이 여기까지 온 길

노토는 이 회사가 계단을 밟아 올라온 순서를 짚는다. 같은 채널에서 1년 전에 Kimi K2 를 다룬 적이 있어서다.

최적화기(optimizer) — 모델을 학습시킬 때 "파라미터 값을 어느 방향으로 얼마나 움직일까" 를 정하는 규칙이다. 오래도록 Adam 계열 하나가 표준이었는데, Muon 은 그걸 흔든 몇 안 되는 새 후보다. K3 에서도 Muon 계열을 썼다고 노토는 말한다.

몸집

K2 와 견주면 2.7배 커졌다.

항목값
총 파라미터2.8조 개
활성 파라미터1,040억 개 (낱말 하나당)
전문가896개 중 16개만 깨움
층수93층
컨텍스트100만 토큰

여기서 노토가 짚는 대목이 하나 있다. 활성 1,040억 개는 그 자체로 어지간한 통짜 모델 하나 크기다.

통짜 모델(dense model) — MoE 가 아닌, 모든 파라미터를 매번 다 쓰는 보통 모델. 즉 K3 는 "골라 쓰는 부분" 만으로도 남들의 모델 하나만 하다는 뜻이다.

진행자 JB 가 바로 계산해 본다. 전문가가 896개인데 16개면 2% 도 안 된다. 얼마 전까지 화제였던 Qwen3-Next 는 총 800억에 활성 30억이었으니 3.75% 였다. K3 는 그보다 더 아껴 쓴다. 왜 그렇게 갔는지는 11장에서 다시 나온다.

토큰(token) — 모델이 글을 잘라 세는 단위다. 대략 짧은 단어 하나쯤이라고 보면 된다. 이 글에서 "낱말" 이라고 쓴 것이 사실은 다 토큰이다.

컨텍스트 — 모델이 한 번에 눈앞에 펼쳐 놓을 수 있는 글의 양. 100만 토큰이면 책 여러 권 분량이다. 노토는 이게 이제 특별한 자랑거리는 아니라고 덧붙인다. DeepSeek 도 MiMo 도 이미 100만이다.

영상에 없음 — 공식 저장소에서 확인

Moonshot 의 공개 저장소를 열어 보면 층 구성이 더 구체적으로 적혀 있다. 93층 중 69층이 KDA, 24층이 Gated MLA 다. 이 두 이름은 3장과 5장에서 설명한다.

이 숫자가 재미있는 이유는 4장 끝에 나온다. 두 사람이 "왜 3대 1인데 마지막에 하나가 더 붙지?" 하고 갸웃하는 대목이 있는데, 69와 24는 그 추측과 정확히 맞아떨어진다.

또 저장소에는 영상이 다루지 않은 두 가지가 더 있다. 공유 전문가 2개(7장에서 설명할 개념이다), 그리고 가중치는 MXFP4, 활성값은 MXFP8 이라는 정밀도 설정이다. 뒤엣것은 "숫자 하나를 몇 비트로 저장하느냐" 의 문제로, 낮출수록 싸지지만 정확도가 깎인다.

벤치마크 — 그리고 두 사람이 실제로 보는 것

벤치마크(benchmark) — 모델들에게 같은 시험지를 풀려 점수를 매긴 것.

노토는 K3 가 GPT-5.5, Opus 4.8 과 견줄 만하고 어떤 문제에서는 더 낫다고 말한 뒤, 곧바로 화제를 돌린다. 둘 다 벤치마크 표를 별로 안 본다는 것이다. 대신 각자 하나씩만 챙겨 본다.

노토가 보는 것 — 터미널 벤치. 모델에게 일을 시켰을 때 명령줄 도구를 얼마나 잘 부리는지를 재는 시험이다. 노토가 든 예가 구체적이다. "영상 어디서 받아서 화질 바꾸고 오디오 분리하고 자막 인식 돌려라" 를 시키면, 영상 받는 도구도 써야 하고 포맷 바꾸는 도구(FFmpeg)도 써야 한다. 그게 전부 터미널에서 일어난다. 그래서 이 점수가 실제 쓸모에 가장 가깝다고 본다.

JB 가 보는 것 — 프론트엔드 아레나. "웹페이지 하나 만들어 줘" 를 한 번에 얼마나 알아서 잘하느냐다. 발표 자료도 요즘은 웹페이지로 만드니 실용적이라는 것이다. K3 가 여기서 눈에 띄게 좋아서 말이 많았다고 한다.

둘이 공통으로 말하는 기준은 하나다. 점수표가 아니라, 내가 실제로 시키는 일과 닮은 시험을 본다.

값

영상이 말하는 가격은 입력 100만 토큰당 3달러, 출력 15달러 수준이다. DeepSeek 만큼 싸지는 않지만 꽤 저렴하다는 평가다.

여기서 노토가 오픈 모델 판의 구조를 한 줄로 설명한다. 가중치가 풀리자마자 GPU 를 굴리는 여러 회사가 앞다퉈 서비스를 시작했고, 값이 다 비슷하게 맞춰졌다는 것이다. 이유가 있다.

남의 모델을 돌려 파는 회사는 연구개발비를 뽑을 필요가 없다. 그래서 얼마든지 싸게 낼 수 있다.

실제로는 값을 확 낮추는 대신 속도를 올리는 쪽으로 갔다고 한다. 초당 토큰 수가 거의 두 배가 됐다. 마진은 남겨야 하니까.

그런데 이 리포트를 왜 권하나

여기가 이 영상의 제목이 나온 자리다. JB 가 "덩치 커진 것 말고 볼 만한 게 있냐" 고 묻자 노토가 답한다.

중국 모델들을 볼 때마다 느끼는 건데, 어텐션이든 활성화든 그 시점의 제일 좋은 기법을 전부 붙여서 만든다. 차곡차곡 붙이니까 블록처럼 느껴지고, 하나만 봐도 흐름을 다 알 수 있다. 그래서 공부하기에 좋은 예시다.

즉 K3 리포트의 값어치는 "새로운 발명" 이 아니라 "지난 몇 년의 성과가 한 군데 모여 있다" 는 데 있다. 이 글이 앞으로 하는 일도 그 목록을 하나씩 푸는 것이다.

노토가 꼽은 핵심 부품은 다섯이다. 어텐션 층의 변화, 어텐션에 덧붙는 또 하나의 부품, MoE 구조의 변화, 위치 인코딩의 변화 — 그리고 멀티모달 부분은 건너뛴다.

2장어텐션을 줄이는 길은 두 갈래뿐이다

이제 본론이다. 노토가 먼저 지도를 그린다.

어텐션을 발전시키는 방향은 사실 이것밖에 없습니다.

0장에서 본 문제로 돌아가자. 기본 어텐션은 모든 낱말이 모든 낱말을 본다. 그래서 정확하지만 너무 무겁다. 이대로는 컨텍스트를 못 늘린다. 100만 토큰끼리 다 비교하면 계산이 감당이 안 된다.

줄이는 방법은 원리상 둘뿐이다.

길 하나 — 눌러 담기 (Linear · Recurrent)

지금까지 나온 내용을 벡터 하나에 우겨 넣어 두고, 새 낱말은 그것 하나하고만 비교한다.

원래는 100만 개와 다 비교해야 했는데, 이제는 "지금까지의 요약본" 딱 하나와 비교하면 된다. 낱말이 늘어도 계산이 비례해서만 늘어난다. 그래서 리니어(linear, 선형) 어텐션 이라 부른다.

이 요약본을 리커런트 스테이트(recurrent state) 라고 부른다. Mamba 계열 모델이 쓰는 말이기도 하다.

노토는 이 구조가 사실상 RNN 이라고 말한다.

RNN(순환 신경망) — 트랜스포머 이전에 쓰던 방식이다. 글을 앞에서부터 한 낱말씩 읽으면서 기억 하나를 계속 갱신해 나간다. 트랜스포머가 "다 한꺼번에 본다" 로 이걸 밀어냈는데, 계산을 줄이려다 보니 결국 그 자리로 돌아온 셈이다. JB 가 "그게 RNN에서 따왔다는 게 좀 웃기지 않아요?" 하고 웃는 대목이 있다.

길 둘 — 안 보기 (Sliding Window)

다른 쪽은 아예 발상을 바꾼다. 멀리 있는 건 안 본다.

가까운 낱말 몇 개만 보고, 먼 것은 시야에서 가려 버린다. 나중에 따로 합친다. 이걸 슬라이딩 윈도우(sliding window) 라 한다. 창문을 하나 놓고 그 안만 보며 미끄러뜨린다는 뜻이다.

근거는 이렇다. 같은 계산 자원이라면, 어차피 상관없을 먼 것을 힐끗 보느니 상관있을 가까운 것을 자세히 보는 게 낫다.

진영이 갈렸다

노토는 이 두 갈래에 실제 모델을 붙여 준다.

길하는 일가는 회사
리니어 · 리커런트다 보되 눌러 담아서 본다Qwen, Kimi
슬라이딩 윈도우가까운 것만 자세히 본다Mistral, Gemma

여기서 나온 곁가지 하나 — 모델마다 맞는 하네스가 다를 것이다

지도를 그려 놓고 보니 JB 가 생각을 하나 꺼낸다. 이건 리포트에 없는, 두 사람이 그 자리에서 만든 추측이다.

하네스(harness) — 말의 힘을 마차에 전하는 마구다. AI 쪽에서는 모델을 실제 일에 물려 쓰는 바깥 장치를 가리킨다. 대화 기록을 어떻게 남기고, 길어지면 어떻게 줄이고, 도구를 어떤 순서로 부를지를 정하는 껍데기다.

JB 의 생각은 이렇다. 눌러 담는 모델과 잘라 내는 모델은 맞는 하네스가 서로 다를 것이다.

그렇다면 답이 갈릴 질문들이 생긴다. 대화 기록을 미리미리 줄이는 게 나은가, 최대한 몰아넣는 게 나은가. 도구를 쓴 기록을 다 남기는 게 나은가, 중요한 결과만 남기는 게 나은가.

이건 검증된 것이 아니다

두 사람도 "그럴 수도 있겠는데요" 하고 넘어간다. 리포트에 나온 내용이 아니라 대화 중 떠오른 가설이다. 다만 실제로 에이전트를 굴리는 사람이라면 시험해 볼 만한 질문이라, 이 글에도 그대로 옮겼다.

그리고 압축에는 대가가 따른다

JB 가 당연한 것을 묻는다. "압축하면 부작용이 있잖아요?"

있다. 그것도 두 가지다.

3장부터 나오는 모든 이름은 이 두 부작용을 기우려고 붙인 천 조각이다.

그래서 지금의 표준: 평소엔 싸게, 가끔 제대로

어느 쪽 길을 가든 정보가 새기 때문에, 요즘 모델들은 같은 타협을 한다.

평소에는 싼 어텐션으로 가다가, 몇 층에 한 번씩 원래의 무거운 어텐션을 끼워 넣어 전체를 한 번 훑는다.

잊어버린 걸 가끔 한 번씩 다시 보는 것이다. 매번 보면 비싸니까 가끔만. Nemotron 시리즈가 31대 1 같은 비율로 섞은 사례로 언급된다.

노토 자신도 이 설계를 마냥 좋게 보지는 않는다. "뭔가 좋은 설계라기보다 애드혹(임시방편) 같고 하이브리드 같다" 고 말한다. 다만 "현재까지 봤을 때는 그게 제일 좋은 것 같다" 고 덧붙인다.

Kimi K3 도 이 타협을 한다. 그 비율이 3대 1이다. 3장과 5장이 그 3과 1을 각각 설명한다.

3장기우기의 역사 — DeltaNet에서 KDA까지

이 장은 시간 순서다. 문제 하나가 해결될 때마다 새 문제가 생기고, 그걸 막으려고 또 하나를 붙이는 과정이 네 단계 이어진다.

0단계. 기본 어텐션의 두 가지 문제

노토가 기본 어텐션의 문제를 두 개로 짚는다. 하나는 이미 안다. 계산이 낱말 수의 제곱에 비례한다.

또 하나는 덜 알려진 것이다. 소프트맥스 때문에 다 더해야만 결과를 알 수 있다.

소프트맥스(softmax) — 여러 점수를 "합이 1인 비율" 로 바꾸는 계산이다. "이 낱말에 30%, 저 낱말에 5%" 처럼 나눠 주려면 전체 합을 알아야 한다. 그래서 다 계산할 때까지 아무것도 확정할 수 없다. 중간에 끊어서 나눠 처리하기가 어렵다는 뜻이다.

1단계. 리니어 어텐션 — 하나에 눌러 담는다

2장에서 본 그 방법이다. 지금까지의 맥락을 벡터 하나에 우겨 넣고, 새 낱말은 그것 하나와만 대응한다.

그런데 넣기만 하고 빼지 않는다. 계속 쌓이기만 하니 곧 뭉개진다.

2단계. DeltaNet — 틀린 것을 빼 준다

그래서 완화 게이트를 붙인다.

게이트(gate) — 문(門)이다. 무엇을 얼마나 통과시킬지 정하는 장치를 말한다. 여기서 하는 일은 노토의 표현대로 "오차를 빼 버리는" 것이다. 새 내용을 그냥 더하는 게 아니라, 기억에 이미 들어 있는 틀린 값을 덜어내고 넣는다.

"델타(delta)" 는 차이라는 뜻이다. 통째로 덮어쓰지 않고 차이만큼만 고친다고 해서 붙은 이름이다.

3단계. Gated DeltaNet — 문맥이 바뀌면 통째로 잊는다

고쳐도 남는 문제가 있다. 글의 화제가 확 바뀌는 지점이다.

앞의 내용이 요약본에 눌러 담겨 있으니, 화제가 바뀌어도 그게 계속 따라 들어와 방해한다.

그래서 감쇄 층을 하나 더 붙인다. 조금씩 고치는 게 아니라 기억 전체를 통째로 약하게 만드는 층이다. JB 가 이걸 "통편집" 이라고 부른다.

이렇게 만든 것이 GDN(Gated DeltaNet) 이다. 2025년 것이고, Qwen 에 들어간 그 방식이다.

여기서 JB 가 정리한다.

결국에는 자꾸 까먹는 거 만들고, 보완하는 거 만들고, 통편집하는 거 만들고 이런 거 하는 거죠.

4단계. KDA — 잊는 정도를 항목마다 따로 정한다

드디어 K3 의 것이다. KDA(Kimi Delta Attention) 는 GDN 에 한 겹을 더 얹는다.

GDN 은 기억 전체를 한꺼번에 약하게 만든다. KDA 는 기억의 항목마다 서로 다른 비율로 약하게 만든다. 원문 표현으로는 채널별(channel-wise) 감쇄다.

왜 그래야 하는지를 JB 가 잘 풀어 준다.

어떻게 해석하느냐에 따라 중요한 낱말이 바뀐다. 이렇게 보면 저 말이 쓸데없고, 저렇게 보면 이 말이 쓸데없다. 그러니 항목마다 뭘 살리고 뭘 죽일지를 따로 봐야 한다.

통째로 흐리게 만들면 살려야 할 것까지 같이 흐려진다. 어느 게 중요한지 미리 알 수 없으니, 항목별로 따로 조절할 수 있게 만들어 두고 학습으로 정하게 한다. 이게 KDA 다.

그래서 이건 트랜스포머인가

여기서 노토가 선을 하나 긋는다. 이 영상에서 제일 세게 말하는 대목이다.

이렇게 되면 이거 트랜스포머가 아니에요. 어텐션 구조라고 하기에는 너무 많이 와 버렸어요. 이미 많은 구조들이 붙어서. (…) RNN과 트랜스포머의 하이브리드 같은 느낌입니다.

바로 앞에서 "혁신이 아니라 계속 뭘 붙이기만 한다" 는 비판이 있다는 것도 언급한 뒤에 나온 말이다. 즉 노토의 입장은 이렇게 정리된다 — 혁신이냐 아니냐를 따질 게 아니라, 이미 다른 물건이 되었다는 사실을 봐야 한다.

K3 의 배치

KDA 를 세 층 쌓고 그 위에 MLA 를 한 층 얹는다. 이 3대 1 이 K3 어텐션 층의 기본 단위다. MLA 는 5장에서 설명한다.

여기서 두 사람이 잠깐 갸웃한다.

영상에 없음 — 저장소 숫자로 검산해 보면

공식 저장소는 KDA 69층, Gated MLA 24층, 합계 93층 이라고 적고 있다.

(KDA 3 + MLA 1) 을 한 묶음으로 23번 반복하면 KDA 69층, MLA 23층으로 92층이다. 여기에 MLA 한 층을 더 붙이면 정확히 69 / 24 / 93 이 된다.

즉 두 사람이 그림만 보고 말한 "마지막에 1이 하나 더 붙는다" 가 숫자로 맞다. 왜 그렇게 했는지는 여전히 리포트에 없다.

노토는 수식을 펼치려다 그만둔다. 이유가 재미있다. "수식을 자세히 설명하니까 라이브 시청자가 쑥 떨어지더라" 는 것이다. 대신 "어텐션을 어떻게 줄일 수 있느냐를 연구한 것" 이 요점이라고 정리하고 넘어간다.

4장"그거 안 넣었으면 어땠을까요"

이 장이 이 영상의 심장이다. 구조 설명이 잠깐 멈추고, 두 사람이 이 분야 전체에 대한 이야기를 한다.

질문

JB 가 묻는다.

KDA 같은 걸 안 넣고 그냥 예전처럼 Gated DeltaNet 으로 만들어요. 그런데 똑같이 2.8조로 크기를 키우고 희소성도 조절해서 학습시켰으면, Kimi K3 가 이 정도 성능이 나왔을까요?

즉 성능이 좋아진 게 새 부품 때문인가, 그냥 크게 만들었기 때문인가.

답 — 아무도 모른다. 그리고 알 방법이 없다

노토의 답은 짧다. 안 해 봤을 것이다.

이유는 돈이다. 그 크기에서 부품 하나를 빼고 다시 학습시켜 비교하는 실험은 학습을 한 번 더 하는 것이다. 프론티어 모델을 한 번 학습시키는 데 드는 비용을 생각하면, 부품 하나 검증하자고 할 수 있는 일이 아니다.

과학 실험이라면 이걸 제거 실험(ablation) 이라고 한다. 부품 하나를 빼 보고 결과가 어떻게 달라지는지 재는 것이다. 프론티어 규모에서는 이걸 할 수가 없다.

노토가 자기 의문을 그대로 말한다.

이렇게 어텐션을 갖다 끼워 넣어요. 이게 진짜 좋은 게 맞나? 정말 저게 필요한 게 맞나? 하면 우리가 모르잖아요. 안 해 봤기 때문에. 안을 봐야 아는데 볼 수가 없으니까.

노토가 대신 세운 가설

그래서 노토는 질문을 바꾼다. "성능에 기여했나" 가 아니라 "크기를 키우는 데 기여했나" 를 묻는다.

논리는 이렇다. 세 단계로 나눠 보면 이해가 쉽다.

  1. 이 부품들은 계산을 줄이려고 넣은 것이다
  2. 계산이 줄면 같은 돈으로 더 큰 모델을 학습시킬 수 있다
  3. 모델이 커지면 똑똑해진다 — 그래서 성능이 올랐다

즉 부품이 직접 똑똑하게 만든 게 아니라, 부품이 자리를 만들어 주었고 그 자리를 크기가 채웠다는 것이다.

그런데 이 가설도 확인이 안 된다

노토는 자기 가설의 약점까지 짚는다. "그래서 연산이 얼마나 줄었지?" 를 물으면 그것도 답이 안 나온다.

이유는 이 글이 지금까지 본 그대로다. 기우기 때문이다.

결국 어디서 줄이고 어디에 다시 썼는지가 얽혀서, 순효과를 떼어 낼 수가 없다. 노토의 결론은 "스위트 스팟을 찾는 연구들로 보이는데, 평가가 상당히 어렵다" 다.

JB 의 정리 — 그리고 인정

JB 가 요약한다. "이게 진짜 얼마나 가치 있는 연구이고 발견인가 하면, 평가하기가 너무 어렵다."

그리고 한 발 더 나간다. "이건 약간 주장이다." 이렇게 하면 좋다는 주장이지 증명이 아니라는 뜻이다.

노토는 논문을 오래 본 사람으로서 그걸 인정한다. 그리고 이 장의 결론이 나온다.

프론티어 모델링이 연구와 가장 다른 점이 그거예요. 실험을 통제하고 이렇게 저렇게 다 해 볼 수가 없는 상황이니까, 직관을 믿고 쭉 갈 수밖에 없는 거죠.

연구는 통제된 실험으로 인과를 밝힌다. 프론티어 모델 만들기는 그럴 수 없다. 한 번밖에 못 쏘는 화살이라, 설계자의 직관을 믿고 쏜 다음 결과만 본다. 잘 나오면 그 직관이 옳았다고 말할 뿐, 무엇 덕분인지는 끝내 모른다.

영상에 없음 — 다만 한 부품은 숫자가 있다

6장에 나올 Attention Residuals 는 별도의 논문으로 나왔고, 거기에는 제거 실험이 있다. 480억 파라미터 · 1.4조 토큰 규모에서 검증했고, 스케일링 법칙 기준 1.25배의 계산 이득이 있다고 보고한다.

다만 이 숫자가 두 사람의 논점을 뒤집지는 않는다. 480억에서 확인된 것이 2.8조에서도 같으리라는 보장이 없기 때문이다. 큰 데서 좋은 것과 작은 데서 좋은 것이 다르다는 이야기는 이 영상에도 5장 끝에 나온다.

5장3대 1의 나머지 1 — MLA와 어텐션 싱크

3장에서 KDA 셋을 쌓았다. 그 위에 얹는 하나가 MLA 다.

MLA — 키와 값을 작게 접어 둔다

MLA(Multi-head Latent Attention) 는 DeepSeek-V2 가 2024년에 내놓은 것이다.

어텐션은 낱말마다 세 가지를 만든다. 질의(Q), 키(K), 값(V) 이다. 도서관에 비유하면 Q 는 찾는 말, K 는 책 등에 붙은 색인, V 는 책의 내용 이다. Q 와 K 를 맞춰 보고 가장 잘 맞는 책의 V 를 가져온다.

문제는 K 와 V 를 계속 들고 있어야 한다는 것이다. 앞에 나온 낱말이 100만 개면 색인과 내용도 100만 벌이다. 이걸 KV 캐시 라 하고, 긴 글에서 메모리를 잡아먹는 주범이다.

MLA 의 답은 이렇다. K 와 V 를 작은 잠재 벡터로 접어서 저장하고, 쓸 때 다시 펼친다. 저장 공간이 확 준다.

잠재(latent) — 원본을 작은 차원으로 눌러 놓은 표현. 이 낱말이 7장에서 또 나온다.

여기에 게이트를 하나 더 — 그 이유가 lost in the middle

K3 는 여기에 게이트를 하나 더 붙였다. Qwen3-Next 와 Qwen3.5 에 들어간 것과 같은 방식이다. 이유가 흥미롭다.

어텐션을 그냥 이어 붙이면 어텐션 싱크 라는 현상이 생긴다.

어텐션 싱크(attention sink) — 모델의 주의가 글의 맨 앞과 맨 뒤로 쏠리고 가운데가 텅 비는 현상이다. 싱크(sink)는 물이 빠지는 배수구다. 주의가 몇 군데로 빨려 들어가 버린다는 뜻이다.

그 결과가 흔히 말하는 lost in the middle 이다. 긴 글을 주면 앞과 뒤는 잘 보는데 가운데 있는 내용을 놓친다. 100만 토큰짜리 컨텍스트가 있어도 가운데를 못 보면 소용이 없다.

그래서 층을 하나 더 붙여 이걸 완화했다는 연구들이 나왔고, K3 도 그걸 그대로 쓴다.

노토는 이 부품에 대해서만은 태도가 조금 다르다. "이건 좀 직관적으로 말이 되더라" 고 한다. 4장의 회의를 생각하면 눈에 띄는 평가다. 여러 모델에 반복해서 들어가고 있다는 점도 근거로 든다. "뭔가 그들은 알고 있는 모양입니다. 뭔가 좋긴 한가 봐요."

어텐션 층 정리 — 그리고 구글에 대한 한 마디

여기서 어텐션 층 이야기가 끝난다. 노토의 정리는 이렇다.

지금 LLM 들 — Kimi, Qwen, Nemotron — 은 전부 리니어나 슬라이딩 윈도우를 쓰다가 중간중간 전역을 섞어 주는 쪽으로 가고 있다.

그리고 두 길 중 어느 쪽이 이겼느냐는 이야기가 잠깐 나온다. JB 가 "Gemma 괜찮지 않나요?" 하고 슬라이딩 윈도우 쪽을 변호하자 노토가 조건을 붙인다.

큰 규모에서 좋은 것과 작은 규모에서 좋은 것은 다른 얘기다. 큰 규모, 진짜 프론티어에서는 (슬라이딩 윈도우가 이긴 걸) 본 적이 없는 것 같다.

JB 가 "구글이 들으면 기분 나쁘겠는데요" 하자, 노토는 "Gemini 가 좋은 게 잘 나오면 생각이 바뀔 수 있다" 고 물러선다. 즉 확정이 아니라 현재 시점의 관찰이라는 것이다.

6장93개 층을 왜 다 똑같이 더하나 — Attention Residuals

어텐션 층 이야기가 끝났는데 하나가 더 남았다. 노토가 "이건 좀 재밌는 얘기" 라고 소개한다.

먼저: 잔차 연결이 무엇인가

잔차 연결(residual connection) — 층을 하나 통과시킬 때 결과만 쓰지 않고 원래 값을 옆으로 그대로 흘려 더해 주는 배선이다.

식으로 쓰면 이렇다.

다음 층 입력 = 지금 값 + f(지금 값)

여기서 f 가 어텐션이나 MLP 다. MLP 는 층 안에서 계산을 담당하는 보통의 신경망 덩어리로, 이 문맥에서는 "어텐션 말고 나머지 계산부" 정도로 알면 된다.

이걸 풀어 보면 문제가 보인다

JB 가 "H 가 뭐죠?" 하고 되묻자 노토가 층을 하나씩 밟아 준다. 이 대목을 그대로 따라가 보자.

계속 밟아 나가면 결국 이렇게 된다. 지금 층의 입력은 지금까지 나온 모든 층의 결과를 전부 더한 값이다. 노토의 표현으로는 "시그마(∑)처럼 표현할 수 있다" 이고, JB 가 이걸 "레이어가 쌓이는 게 사실상 시그마로 붙는 거다" 라고 받는다.

그리고 전부 계수 1로 더해진다. 1층의 결과도, 92층의 결과도 똑같은 비중이다.

Moonshot 이 마음에 안 들어 한 게 이 점이다. 층마다 하는 일이 분명히 다를 텐데 왜 다 똑같이 더하나.

그래서 왜 원래는 그냥 더했나 — 옛날 이야기

JB 가 좋은 질문을 한다. "처음엔 그게 좋으니까 그렇게 했을 거잖아요." 맞다. 두 사람이 역사를 두 겹으로 되짚는다.

첫째, 정규화를 어디에 두느냐의 역사다.

정규화(normalization) — 값들의 크기를 일정한 범위로 다시 맞추는 계산. 학습 중에 숫자가 널뛰지 않게 잡아 주는 안전장치다.

둘째, 더 옛날의 잔차다. 노토가 ResNet 을 꺼낸다. 영상 인식 쪽에서 잔차 연결을 유명하게 만든 모델이다. 그때 잔차를 쓴 이유는 학습이 잘되게 하려고였다. 층이 깊어지면 학습 신호가 아래층까지 닿지 못하는데, 옆으로 난 배선이 그 길을 만들어 준다.

노토는 지금 이야기하는 잔차와 그때의 잔차는 다른 얘기라고 선을 그으면서도, 통하는 직관을 하나 짚는다. 원래 값보다 "변화량(델타)" 이 정보가 더 민감하다는 것이다.

Moonshot 이 댄 이유

노토가 리포트에서 읽은 근거는 이렇다. 깊이가 깊어질수록 출력의 세기가 일정하게 유지되지 않더라는 것이다.

JB 가 바로 알아듣는다. "어텐션하고 정규화를 계속 하니까 깊어질수록 진폭이 작아지는 거군요." 그리고 옛날 문제 이름을 하나 떠올린다.

기울기 소실(vanishing gradient) — 층이 깊으면 학습 신호가 아래로 내려가면서 점점 작아져 결국 사라지는 문제. 딥러닝 초기에 층을 깊게 못 쌓게 만들었던 바로 그 벽이다.

JB 가 이어서 좋은 지적을 한다. 가중합으로 바꾸면 임베딩까지 위로 계속 보존할 수 있다는 것이다. 필요한 층에서 "1층 값을 좀 더 세게 가져오자" 고 스스로 정할 수 있게 된다.

그리고 왜 이제서야 문제가 됐는지도 정리된다. 예전에는 층이 몇 개 안 돼서 다 똑같이 더해도 티가 안 났다. 지금은 93층이다.

그래서 Attention Residuals

고친 방법은 간단하다. 임베딩부터 모든 중간 단계에 α(알파)라는 가중치를 붙여, 그냥 더하기가 아니라 가중합으로 만든다. 어느 층을 얼마나 가져올지를 모델이 학습으로 정한다.

이름이 Attention Residuals 인 이유가 여기 있다. 어텐션이 낱말들 사이에서 "무엇을 볼지" 를 고르듯, 이건 층들 사이에서 "무엇을 볼지" 를 고른다.

영상에 없음 — 원 논문의 표현

이 부품은 2026년 3월에 나온 별도 논문이다(영상에서도 "이것만 따로 논문을 썼다" 고 언급한다). 논문이 내세우는 표현은 시간–깊이 이중성 이다.

트랜스포머는 시간축에서 이미 한 번 이 일을 했다. RNN 의 고정된 순환을 어텐션으로 바꿔, 어느 낱말을 볼지 학습으로 정하게 했다. Attention Residuals 는 같은 일을 깊이축에서 한다. 고정된 잔차 누적을 어텐션으로 바꿔, 어느 층을 볼지 학습으로 정하게 한다.

영상은 "가중합으로 바꾼다" 까지만 말하는데, 논문은 그 가중치가 층들에 대한 소프트맥스 어텐션 이라고 못박는다. 이름이 왜 하필 Attention 인지가 여기서 분명해진다.

7장MoE 네 단계 — 전문가는 어떻게 늘고 어떻게 작아졌나

어텐션이 끝났다. 이제 MoE 다. 노토는 "아까보다 쉽다" 며 네 단계로 나눈다.

1단계. Switch Transformer — 한 명만 일하게 하자

MoE 를 트랜스포머에 제대로 붙인 첫 흐름이다.

구조는 이렇다. 어텐션까지는 그대로 두고, 그 뒤의 MLP 를 여러 벌 만들어 놓고 그중 하나만 일하게 한다. 이 "여럿 중 하나만 고른다" 를 top-1 이라 부른다.

여기서 처음으로 이 판의 규칙이 바뀐다. 모델을 확 키워도 계산량은 그만큼 안 는다.

다만 이때는 아직 소극적이었다. 노토의 표현으로 "거의 네 명 중 한 명" 수준이었다.

잠깐, 곁길 — 노암 셰이저

Switch Transformer 를 쓴 사람이 노암 셰이저(Noam Shazeer) 다. 두 사람이 여기서 잠시 딴 얘기를 한다.

트랜스포머 원 논문의 공저자 중 한 명이고, 구글에 있다가 나가서 Character.AI 를 차렸고, 그 회사가 큰 가치를 인정받은 뒤 구글이 다시 사서 그를 데려갔다. 노토는 "노암 셰이저 근무 조건으로 샀다고 한다" 고 전한다.

그리고 영상은 그가 지금 OpenAI 로 옮겼고 그게 화제라고 말한다. 두 사람은 계약 기간이 끝난 것 아니겠느냐고 추측하면서, "왜 나갔을까" 를 두고 구글 내부에 대한 의구심이 있다는 이야기를 덧붙인다.

이 이적 이야기는 확인하지 못했다. 실제 인물의 거취에 대한 내용이라, 부록 B에 미확인으로 남겨 둔다.

2단계. DeepSeekMoE — 전문가를 확 늘리고, 상근직을 하나 둔다

2024년 1월이다. DeepSeek 이 전문가 수를 256개 같은 규모로 확 늘린다.

이유는 이렇다. 전문가가 많으면 조합의 경우의 수가 많아지고, 그만큼 다양한 상황을 처리할 수 있다. 표현력이 세진다는 뜻이다.

그런데 부작용이 있다. 매번 다른 소수만 일하니 불안정해진다. 그래서 기운다.

공유 전문가(shared expert) 를 둔다. 매번 항상 일하는 전문가다. JB 가 이걸 "상근직 하나 두고 나머지가 그때그때 거드는 것" 이라고 옮긴다.

이 구조가 지금 사실상 표준이라고 노토는 말한다. K3 도 이걸 따른다(공유 전문가 2개 — 영상에 없음, 저장소 확인).

3단계. Latent MoE — 전문가에게 보내는 정보를 줄인다

엔비디아가 Nemotron 3 시리즈에서 내놓은 것이다.

발상이 앞과 다르다. 지금까지는 "전문가를 몇 명 쓸까" 였는데, 여기서는 "전문가에게 얼마나 보낼까" 를 건드린다.

원래는 정보가 통째로 전문가에게 들어갔다. Latent MoE 는 그 앞에 압축 단계를 하나 놓아 차원을 줄여서 보낸다. 5장의 MLA 가 K·V 에 한 일을, 여기서는 전문가 입력에 한다.

그래서 남는 계산으로 무엇을 하느냐가 핵심이다. 전문가 수를 늘리고 활성 개수를 늘린다.

JB 가 이 맞바꿈을 정확히 정리한다.

결국 흘러다니는 정보량을 줄이고 전문가 계산 파라미터 수를 늘리자는 거네요. 두 개의 곱하기가 컴퓨팅 리소스니까.

그리고 한 발 더 나간다. 정보량을 줄여도 된다는 말은 흘러다니던 정보에 쓸데없는 것이 많았다는 뜻이라는 것이다.

여기서 JB 가 관통하는 것을 발견한다

이 대목에서 JB 가 멈춘다.

지금 여기까지 설명한 게 다 결국 압축 이야기예요. 스케일링을 하려고 다 어딘가를 쳐내서 압축을 하고 있어요.

그러면서 3Blue1Brown 채널의 영상 시리즈 제목을 떠올린다. "Compression is Intelligence" — 압축이 곧 지능이다.

그리고 이 영상의 주제문이 나온다.

얼마나 압축을, 어디를 잘하느냐. 정보를 잃지 않고 중요한 것만 똑똑하게 남기느냐. 이게 제일 중요한 거다.

돌아보면 정말 그렇다. 리니어 어텐션은 맥락을 벡터 하나로 압축한다. MLA 는 K·V 를 압축한다. Latent MoE 는 전문가 입력을 압축한다. 그리고 그때마다 잃은 것을 메우려고 기웠다. 이 영상의 두 축이 여기서 만난다.

4단계. Stable LatentMoE — 압축하니 불안해서, 또 기운다

K3 의 것이다. 이름 그대로 Latent MoE 에 안정화 장치를 붙인 것이다.

노토는 처음에 "이것저것이 너무 많아서 설명하면 안 될 것 같다" 고 넘어가려다, JB 가 "왜요?" 하고 붙잡아 결국 설명한다. 세 가지다.

JB 가 앞의 둘을 이렇게 요약한다. "너무 많이 잃거나, 너무 많이 튀어나오거나, 너무 하나에만 집중하거나 하는 걸 쳐내 주는 것."

분위수 — JB 가 놀란 대목

세 번째만 두 사람 다 처음 본다고 말한다.

분위수(quantile) — 값들을 크기순으로 줄 세웠을 때 몇 등쯤인지를 나타내는 통계다. "상위 10%" 같은 표현이 분위수다.

이걸 라우터에 쓴다는 건, 전문가를 고를 때 점수의 절대값이 아니라 순위를 보겠다는 뜻이다. 점수 분포가 통째로 커지거나 작아져도 순위는 흔들리지 않으니, 고르는 기준이 안정된다.

JB 의 반응이 솔직하다. "랭킹 도입하는 건 진짜 처음 봐요."

노토의 정리는 이렇다. MoE 는 "누가 일할지" 를 정하는 그 애매한 지점에서 문제가 계속 나오고, 이건 거기에 개입하는 장치다.

8장위치를 안 알려주기로 한다 — RoPE에서 NoPE로

다섯 부품 중 마지막이다.

왜 위치를 따로 알려줘야 하나

먼저 이게 왜 필요한지부터다. 어텐션은 순서를 모른다.

모든 낱말이 모든 낱말을 동시에 보는 구조라서, 그것만으로는 "개가 사람을 물었다" 와 "사람이 개를 물었다" 가 구분되지 않는다. 그래서 낱말마다 "너는 몇 번째다" 라는 정보를 따로 넣어 준다. 이게 위치 인코딩(positional encoding) 이다.

1단계. 사인파 — 4천 토큰의 벽

초기 트랜스포머는 사인파(파도 모양 그래프)로 위치 벡터를 만들어 더했다. 잘해 봐야 4천 토큰 정도가 한계였다. 값의 정밀도가 부족했다.

2단계. RoPE — 회전시킨다

RoPE(Rotary Positional Embedding) 는 위치 정보를 더하는 대신 벡터를 위치만큼 회전시킨다. 그러면 두 낱말의 회전 차이가 곧 둘 사이의 거리가 된다.

이게 크게 성공했다. Llama 2, Llama 3 가 4천에서 8천으로, 다시 3만 2천까지 늘려 나갔다. 노토는 "아직도 3만 2천이 제일 많이 쓰인다" 고 덧붙인다.

3단계. YaRN — 배운 적 없는 자리를 메운다

RoPE 에도 벽이 있다. 학습 때 본 3만 2천을 넘어가면 곧장 망가진다. 배운 적 없는 자리라서다.

그래서 YaRN 을 붙인다. RoPE 의 중간 단계를 늘리고, 중요한 부분마다 따로 배율을 조정해 배운 적 없는 자리도 해석할 수 있게 만든다. 2023년 것이고, 이게 100만 토큰까지 가는 표준이 됐다.

여기서 JB 가 또 그 말을 한다.

이건 진짜 기우기죠. 애초에 늘려 놓고 이렇게 사이를 기우는 거니까. LLM 개발은 기우기다.

그리고 YaRN 의 진짜 문제를 노토가 짚는다. 모델을 다 만든 다음에 다시 늘리는 후처리 작업이 따로 들어간다는 것이다. 학습 파이프라인에 단계가 하나 더 붙는다.

4단계. NoPE — 아예 빼 버린다

먼저 이름부터 정리하자. 노토가 강조한다.

NoPE 는 기술 이름이 아닙니다. No Positional Encoding, 안 쓴다는 뜻입니다. 밈 같은 거죠.

발상은 이렇다. 붙이고 끼우는 이 과정 자체가 병목이라면, 애초에 안 붙이면 되지 않나.

근거는 이렇다. 다음 낱말을 맞히는 훈련 자체가 이미 위치 정보를 담고 있을 것이다. 앞의 내용이 차곡차곡 쌓여 가는 구조이니, 그 쌓임 자체가 순서를 말해 준다는 것이다.

노토는 여기에 자기 해석을 하나 더한다. 어텐션이 이미 거리에 따라 차등을 두게 만들어져 있으니, 위치 인코딩이 필요 없을 수도 있다.

중간 단계 — RoPE와 NoPE를 섞던 시절

한때는 두 가지를 섞는 흐름이 있었다. 층에 따라 슬라이딩 윈도우 쪽에는 위치 인코딩을 붙이고, 전역으로 보는 층에서는 뺐다.

이유가 말이 된다. 가까운 것만 볼 때는 "내가 어디쯤인지" 를 알아야 한다. 반면 전체를 다 보는 층에서는 이미 순서 정보가 쌓여 있으니 굳이 필요 없고, 오히려 RoPE 를 씌우면 효율이 떨어진다.

그리고 K3 는 아예 NoPE 만 쓴다.

이 대목은 자막이 흔들린다

이 부분에서 화자가 "RoPE 를 붙이고 나중에 NoPE 를 붙인다" 는 식으로 말하는데, 같은 문장 안에서 두 이름이 뒤바뀐 것으로 보이는 대목이 있다. 위 설명은 문맥상 말이 되는 쪽으로 옮긴 것이다.

확실한 것은 결론 하나다. K3 는 NoPE 다.

9장학생이 자기 답으로 배운다 — On-Policy Distillation

구조 이야기는 끝났다. 노토가 "다음에 따로 다루면 좋을 주제" 로 예고편처럼 꺼내는 것이 증류 다.

보통의 증류

증류(distillation) — 큰 모델(선생)의 지식을 작은 모델(학생)에 옮기는 방법이다.

보통은 이렇게 한다. 선생이 낸 답을 잔뜩 모아서, 학생이 그걸 따라 하도록 학습시킨다. 모범 답안을 베껴 쓰는 공부다.

On-Policy 증류 — 순서를 뒤집는다

요즘 쓰는 방식은 반대다.

학생이 먼저 자기 답을 낸다. 그 답은 당연히 나쁘다. 그러면 선생이 그걸 보고 "그렇게 하는 거 아닌데" 하고 고쳐 준다.

on-policy — 강화학습 용어로, 지금 이 모델이 실제로 하는 행동을 가지고 배운다는 뜻이다. 남이 만든 데이터가 아니라 자기가 만든 데이터로 배운다.

차이가 중요하다. 모범 답안만 베끼면 학생이 실제로 어디서 틀리는지는 영영 안 고쳐진다. 자기 답을 내놓고 지적받으면 자기 약점 위에서 배우게 된다.

선생이 여럿이면 멀티 티처 라 부른다.

여기서 K3 의 특이한 점

JB 가 묻는다. "선생과 학생이 다 K3 예요?"

노토의 답이 흥미롭다. 선생은 특정 분야만 집중해서 더 학습시킨 K3 다. 수학만 파고든 K3 하나, 다른 것만 파고든 K3 하나 하는 식이다. 그렇게 만든 여러 전문가 선생이 일반 K3 를 가르친다.

JB 가 이걸 뒤집어 본다.

내가 프론티어라고 생각하면, 나보다 나은 선생이 없잖아요. 그럼 선생이 나 자신인데 — 가중치가 수학만 열심히 공부한 나 자신인 거네요.

세상에서 제일 잘하는 모델은 배울 곳이 없다. 그래서 자기 자신을 분야별로 특화시켜 선생으로 삼는다.

노토는 조건을 하나 덧붙인다. 증류는 선생과 학생의 어휘가 비슷해야 잘된다. 그래서 자기 자신 계열을 쓰는 게 자연스럽다는 것이다.

이 방식을 큰 모델에 붙인 사례로 MiMo 2.5, DeepSeek-V4, 그리고 K3 가 언급된다. 자세한 설명은 Thinking Machines 의 블로그 글을 권한다.

곁가지 — 머징

비슷한 계열로 머징(merging) 도 잠깐 나온다. 수학 잘하는 모델, 코딩 잘하는 모델, 읽기 잘하는 모델을 섞어서 하나로 만드는 것이다.

JB 가 "한동안 하다가 요즘 안 하지 않나요?" 하자 노토가 엔비디아 논문에서 최근 것을 본 것 같다고 답한다. 확정적인 이야기는 아니다.

10장지식 그래프로 문제를 지어낸다

K2 때 "학습 데이터를 사람 없이 만드는" 기여가 있었다고 1장에서 봤다. K3 에도 그 갈래가 있다.

방법은 이렇다. 지식 그래프를 하나 만들어 놓고, 거기서 표본을 뽑아 문제를 지어낸다.

지식 그래프(knowledge graph) — 개념들을 점으로 놓고 관계를 선으로 이어 놓은 그물이다. "생물의학" 같은 분야를 통째로 그물로 만들어 두는 것이다.

여기서 화제를 이리저리 옮겨 다니며 문제를 만든다. 노토가 든 예가 이렇다. "인문학 쪽 코딩 문제" 같은 건 세상에 없다. 그러면 그물에서 그쪽으로 건너가 키워드를 찾고, 검색해서 문제를 만들고, 시험해 본다.

왜 하필 그래프인가

JB 가 묻는다. "그래프가 멋있어서요?"

노토가 두 가지를 든다.

JB 가 여기서 트리와 그래프의 차이를 짚어 이해를 완성한다.

트리처럼 카테고리로만 분류하면 옆 가지와 얼마나 가까운지를 보기 힘들다. 다른 분야에 있는 연관된 지식을 잘 버무려야 범용 문제가 나오니까, 그래프를 먼저 만든 거겠다.

트리(tree) 는 위아래로만 갈라지는 분류표다. 같은 부모 밑이 아니면 서로 얼마나 가까운지 알 수 없다. 그래프 는 아무 점끼리나 이을 수 있으니 분야를 가로지르는 연결이 표현된다. 범용 문제를 만들려면 그게 필요하다.

11장왜 더 아껴 쓰게 되었나

본론이 끝나고 JB 가 남은 질문 하나를 꺼낸다. 왜 더 희소해졌는가.

1장에서 본 숫자다. 총 파라미터 대비 활성 파라미터의 비율이 이전 세대보다 더 낮아졌다.

노토의 답

리포트가 대는 이유는 7장의 2단계에서 본 것과 같다. 다양한 패턴을 넣을 수 있으니까. 매번 다른 조합이 일하게 되니 대응력이 좋아진다는 것이다.

대가는 있다. 학습이 힘들어진다.

그런데 두 사람이 여기서 한 번 엇갈린다

이 짧은 실랑이가 볼 만하다. 같은 사실을 두 가지로 셀 수 있기 때문이다.

결론은 JB 쪽으로 정리된다. 전문가 하나하나의 크기가 줄었고(7장의 Latent MoE), 개수는 늘었다. 그래서 개수로 세면 별로 안 줄었지만 파라미터 비율로 세면 확실히 줄었다. 노토도 "맞네요, 그 말이" 하고 받는다.

그리고 노토가 궁금해하는 대목이 남는다. 예전에 "희소성이 몇 퍼센트일 때 최선인가" 를 다룬 스케일링 법칙 실험들이 있었는데, 그 값이 바뀐 것이 신기하다는 것이다.

스케일링 법칙(scaling law) — 모델 크기·데이터 양·계산량을 얼마씩 늘리면 성능이 얼마나 오르는지를 정리한 경험 법칙이다. 큰 모델을 만들기 전에 어디에 돈을 쓸지 정하는 근거로 쓴다.

왜 그 값이 바뀌었는지는 리포트에 없다. 4장의 문제가 여기서 다시 나타난다.

12장이걸 누가 볼까 — 두 사람의 감상

마무리에서 JB 가 감상을 묻는다. 노토의 답이 예상 밖이다.

노토 — 이제 이걸 공부하는 사람이 있을까

이렇게 많이 발전했구나 하는 것도 있지만, 이걸 과연 얼마나 많은 사람이 볼까 하는 생각이 들어요. 옛날에 Llama 2, 3 는 정말 중요한 모델이라 공부를 했잖아요. 근데 이건 과연 사람들이 공부할까?

JB 가 "모델 만드는 사람만 보겠죠" 하고 받자 노토가 되묻는다. "근데 우리는 Llama 2, 3 도 안 만들면서 봤잖아요."

그때는 만들지 않는 사람도 구조를 공부했다. 지금은 그러지 않게 되었다. 이 세미나 자체가 그 물음 위에 서 있는 셈이다.

다만 노토는 "트랜스포머 아류 아니냐" 는 식의 비판은 이미 지난 이야기라고 선을 긋는다. 3장에서 "이건 트랜스포머가 아니다" 라고 한 것과 같은 맥락이다.

노토의 관심은 다른 데로 옮겨 갔다

에이전트와 강화학습이 모든 분야의 격전지가 되다 보니, 환경을 설계하고 데이터를 만드는 쪽이 재밌어요. 모델 안쪽을 열심히 쳐다보는 건 힘들다. 재밌긴 하지만 힘들다.

이 영상에서 가장 시간을 많이 쓴 두 대목이 9장(증류)과 10장(데이터 합성)이 아니라 3~8장(구조)이었던 것을 생각하면, 해설자 본인의 관심은 이미 바깥으로 나가 있다는 고백이다.

JB — 리포트를 직접 열어 봤더니

JB 도 테크 리포트를 열어 봤다고 한다. "일단 내용이 너무 많고, 하나하나가 좀 어렵고, 진짜 정신이 나갈 것 같다."

그래서 이렇게 정리한다. "열심히 압축해서 잘 전달해 주는 분을 모시고 듣는 게 최고 효율이다." 노토가 "증류네요" 하고 받는다. 9장에서 방금 배운 말이 여기서 회수된다.

못 다룬 것

노토가 스스로 밝힌다. 설명하지 않은 부분이 많고, 특히 서빙에 대한 부분이 남아 있다.

서빙(serving) — 다 만든 모델을 실제로 여러 사용자에게 돌려 주는 일. 요청을 어떻게 묶고, GPU 여러 대에 어떻게 나누고, 캐시를 어떻게 관리할지의 문제다. 2.8조 개짜리 모델을 3달러에 팔 수 있느냐는 사실 여기서 갈린다.

그리고 잡담 — Moonshot 은 음악을 좋아한다

마지막 잡담이 하나 붙는다. Moonshot AI 사무실은 공간 이름이 전부 밴드 이름이고, Kimi 의 구독 요금제 이름은 음악 빠르기 말이다. 알레그레토, 알레그로, 비바체 같은 식으로 사용량과 가격에 붙어 있다.

그럴 만한 이유가 있다. Moonshot AI 의 창업자 양즈린(Zhilin Yang)이 드러머였다고 한다.

마지막 조언 — KDA 가 어렵다면

JB 가 "RoPE 는 얼추 이해했는데 KDA 는 어렵다" 고 하자 노토가 답한다.

Gated DeltaNet 을 검색해서, 만든 사람이 쓴 블로그를 먼저 보세요. 아주 잘 써 놨습니다.

3장에서 본 순서 그대로다. GDN 을 이해하면 KDA 는 거기에 한 겹 얹은 것이라 훨씬 쉬워진다.

맺음그래서 무엇이 남나

한 문장으로

Kimi K3 의 구조는 새 발명이 아니라 지난 몇 년의 압축 기법을 한자리에 쌓아 올린 것이고, 그 각각이 정말 기여했는지는 만든 사람도 증명할 수 없다.

이 말은 어디까지 믿을 만한가

앞부분은 확인된다. KDA 는 Kimi Linear 논문의 것이고, MLA 는 DeepSeek-V2 의 것이고, Latent MoE 는 Nemotron 의 것이고, YaRN 은 2023년 것이다. 출처가 다 있다.

뒷부분은 성격이 다르다. "증명할 수 없다" 는 것 자체가 두 사람의 판단이다. 근거는 "그 규모에서 제거 실험을 하려면 학습을 한 번 더 해야 한다" 는 비용 논리인데, 이건 설득력 있지만 Moonshot 내부에서 무엇을 해 봤는지는 밖에서 알 수 없다.

실제로 Attention Residuals 한 부품은 별도 논문에 480억 규모의 검증과 1.25배라는 숫자가 있다. 그러니 "아무것도 검증 안 됐다" 는 과장이다. 정확히 말하면 이렇다 — 부품별 검증은 작은 규모에서 이뤄지고, 그것들을 다 합친 2.8조 규모에서는 아무도 검증하지 않는다.

다음에 무엇을 하면 되나

이 영상은 실행할 것을 주는 영상이 아니다. 대신 읽는 순서를 준다. 노토가 영상 안에서 직접 권한 것을 순서대로 놓으면 이렇다.

  1. Gated DeltaNet 저자의 블로그 글 — KDA 를 이해하려면 여기가 먼저다. 노토가 직접 권한 출발점이다
  2. Kimi Linear 논문(arXiv 2510.26692) — KDA 가 처음 실린 곳. K3 리포트가 아니다
  3. Attention Residuals 논문(arXiv 2603.15031) — 이것만 따로 나온 논문이라 제일 깔끔하게 읽힌다
  4. Thinking Machines 의 on-policy distillation 글 — 9장 내용
  5. K3 테크 리포트 본문 — 위를 다 본 다음에 봐야 읽힌다. JB 도 그냥 열었다가 "정신이 나갈 것 같다" 고 했다

그리고 달라 보이게 되는 것

이 글을 읽고 나면 모델 발표문을 읽는 눈이 하나 생긴다.

새 모델이 나와서 부품 이름을 열거하면, 이제 이렇게 물을 수 있다. "그건 무엇을 압축한 것이고, 압축하다 잃은 것을 무엇으로 기웠고, 그게 정말 기여했는지 확인한 실험이 있나."

대개 마지막 질문의 답은 없다. 그걸 알고 읽는 것과 모르고 읽는 것의 차이가 이 46분의 값이다.

부록 A이 글에 나온 말 정리

말뜻장
어텐션모든 낱말이 모든 낱말을 보고 관련도를 계산하는 것. 낱말 수의 제곱에 비례해 비싸진다0장
파라미터 / 활성 파라미터모델이 가진 숫자 전부 / 낱말 하나 처리할 때 실제로 쓰는 것0장
MoE · 전문가 · 라우터파라미터를 조각내 두고 몇 개만 골라 쓰는 설계 / 그 조각 / 고르는 장치0장
희소성(sparsity)가진 것 중 얼마나 적게 쓰는지. K3 는 3.7%0장·11장
토큰(token) · 컨텍스트모델이 글을 잘라 세는 단위 / 한 번에 눈앞에 펼쳐 놓을 수 있는 양1장
가중치(weight)학습으로 정해진 파라미터 값의 실제 숫자 뭉치. 이걸 공개하면 오픈 웨이트1장
통짜 모델(dense)MoE 가 아닌, 매번 전부 쓰는 보통 모델1장
최적화기(optimizer)학습 중 파라미터를 어느 방향으로 얼마나 옮길지 정하는 규칙. Muon 등1장
리니어 어텐션 · 리커런트 스테이트지금까지의 맥락을 벡터 하나에 눌러 담고 그것과만 비교하는 방식 / 그 벡터2장
슬라이딩 윈도우가까운 낱말만 보고 먼 것은 안 보는 방식. Mistral·Gemma 계열2장
하네스(harness)모델을 실제 일에 물려 쓰는 바깥 장치. 기록·요약·도구 호출을 관리한다2장
소프트맥스여러 점수를 합이 1인 비율로 바꾸는 계산. 전체를 다 봐야 결과가 나온다3장
게이트(gate)무엇을 얼마나 통과시킬지 정하는 장치3장
DeltaNet · GDN · KDA기억을 고치는 게이트 / 통째로 잊는 층을 더한 것 / 항목마다 다른 비율로 잊게 한 것3장
제거 실험(ablation)부품 하나를 빼 보고 결과 차이를 재는 실험. 프론티어 규모에서는 못 한다4장
MLA · KV 캐시K·V 를 작게 접어 저장하는 어텐션 / 앞 낱말들의 K·V 를 들고 있는 메모리5장
어텐션 싱크 · lost in the middle주의가 앞뒤로 쏠리는 현상 / 그래서 가운데 내용을 놓치는 증상5장
잔차 연결(residual)층을 통과시키면서 원래 값을 옆으로 흘려 더해 주는 배선6장
정규화 · pre-norm · post-norm값 크기를 다시 맞추는 계산 / 그걸 더하기 전에 하느냐 후에 하느냐6장
Attention Residuals층들을 다 똑같이 더하지 않고 가중합으로 바꾼 것. 어느 층을 볼지 학습으로 정한다6장
Switch Transformer · top-1MLP 를 여러 벌 두고 하나만 쓰는 첫 MoE 흐름 / 하나만 고르는 방식7장
공유 전문가(shared expert)매번 항상 일하는 전문가. 불안정을 막는 상근직7장
Latent MoE전문가에게 보내는 정보를 압축하고, 남는 계산으로 전문가를 늘리는 설계7장
분위수(quantile)값을 순서대로 줄 세웠을 때의 순위. 라우터가 절대값 대신 순위를 보게 한다7장
위치 인코딩 · RoPE · YaRN · NoPE순서를 알려주는 장치 / 회전으로 알려주는 방식 / 그걸 늘려 쓰는 후처리 / 아예 안 쓰는 것8장
증류 · on-policy선생 모델의 지식을 학생에게 옮기는 것 / 학생이 자기 답을 내고 고침받는 방식9장
지식 그래프 · 트리개념을 점과 선으로 이은 그물 / 위아래로만 갈라지는 분류표10장
스케일링 법칙크기·데이터·계산을 얼마씩 늘리면 성능이 얼마나 오르는지의 경험 법칙11장
서빙(serving)완성된 모델을 실제 사용자들에게 돌려 주는 일. 이 영상에서 안 다룬 부분12장

부록 B이 정리를 믿을 때 주의할 것

1. 숫자의 출처

숫자누가 주장확인했나
2.8조 / 1,040억 / 896 중 16 / 93층 / 100만 토큰Moonshot AI공식 저장소에서 확인함. 전부 일치
KDA 69층 · Gated MLA 24층 · 공유 전문가 2개 · MXFP4/MXFP8Moonshot AI저장소에서 확인함. 영상에는 없는 숫자다
K2 대비 2.7배영상(리포트 인용)따로 검증 안 함
2026년 7월 17일 공개영상따로 검증 안 함
입력 100만 토큰당 3달러 / 출력 15달러영상검증 안 함. 값은 수시로 바뀐다
초당 토큰 수가 거의 두 배영상검증 안 함. 비교 대상이 불분명하다
GPT-5.5 · Opus 4.8 과 견줄 만함Moonshot AI 의 벤치마크모델 제작자가 낸 점수다. 제3자 검증 아님
Attention Residuals: 480억 파라미터 · 1.4조 토큰 · 1.25배 계산 이득Moonshot 의 별도 논문논문에 있는 값. 영상에는 없다. 저자 자신의 실험이다
Qwen3-Next 는 800억에 활성 30억영상검증 안 함

2. 고유명사 — 자막이 한글로 옮겨 적은 것들

이 자막은 자동자막이 아니라 올린 사람이 직접 단 것이라 영문 이름이 대부분 그대로 적혀 있다. 다만 소리 나는 대로 적힌 것 몇 개는 아래처럼 옮겼다.

자막이 글에서는근거
노암 샤지르노암 셰이저 (Noam Shazeer)트랜스포머 원 논문 공저자·Switch Transformer 저자로 알려진 이름
양즈린양즈린 (Zhilin Yang)영상이 "Moonshot AI 의 대표·파운더" 라고 명시
양송린양송린 (Songlin Yang)영상이 "Gated DeltaNet 을 만든 사람이 쓴 블로그" 의 저자로 지목. 철자 미확인
"몰프"옮기지 않았다추론 비용을 말하며 나온 서비스 업체 이름으로 보이는데 무엇인지 확정 못 했다. 그래서 본문에서 업체명을 뺐다
"에미레이트"옮기지 않았다"어텐션, 액티베이션, 무슨 에미레이트" 라는 나열 중 하나인데 무슨 기술 이름인지 모르겠다. 문맥상 부품 이름 나열이라 본문에서 뺐다

3. 확정하지 못한 것

4. 왜 한국어 자막을 골랐나

이 영상은 한국어가 원어다. 영어 자막도 올라와 있지만 한국어를 옮긴 것이다.

그리고 둘 다 올린 사람이 직접 단 자막이라 자동자막보다 훨씬 정확하다. 그래도 원어를 썼다. 번역은 한 단계라도 거치면 숫자와 뜻이 바뀔 여지가 생기기 때문이다.

5. 이 글이 영상에 없는 내용을 넣은 곳

다섯 군데다. 전부 "영상에 없음" 표시를 붙여 두었다.

  1. 1장 — KDA 69층 / Gated MLA 24층, 공유 전문가 2개, MXFP4·MXFP8 (공식 저장소)
  2. 3장 — 69/24/93 검산. 두 사람의 "마지막에 1이 더 붙는다" 추측이 숫자로 맞는다는 확인
  3. 4장 — Attention Residuals 논문의 480억 규모 검증과 1.25배 수치
  4. 6장 — 같은 논문의 "시간–깊이 이중성" 설명과, 가중치가 소프트맥스 어텐션이라는 점
  5. 맺음 — 위 둘을 근거로 "아무것도 검증 안 됐다는 것은 과장" 이라고 단서를 단 부분

그 밖의 판단·평가는 전부 영상에서 두 사람이 한 말이다. 이 글쓴이의 의견은 넣지 않았다.