[논문 리뷰] Kimi K3: Open Frontier Intelligence


메타정보

항목 내용
저자 Kimi Team (Moonshot AI, 400여 명 공동 저자)
학회 arXiv · 2026 · 오픈 웨이트 (모델 가중치 공개)
arXiv 또는 DOI 2607.24653
Code moonshotai/Kimi-K3
리뷰 일자 2026-07-31

TL;DR

  • Kimi K3 은 2.8조(2.78T) 파라미터 규모의 native multimodal Mixture-of-Experts 모델로, 토큰당 104B(104.2B)만 활성화하며 1M 토큰 컨텍스트를 지원하는 오픈 웨이트 프런티어 모델이다.
  • 세 축의 아키텍처 혁신 — 시퀀스 방향의 Kimi Delta Attention (KDA), 깊이 방향의 Attention Residuals (AttnRes), 폭 방향의 Stable LatentMoE — 을 결합해 Kimi K2 대비 전체 scaling 효율을 약 2.5배 끌어올렸다.
  • 코딩·에이전트·지식·추론·비전 전반에서 Claude Fable 5 와 GPT-5.6 Sol 바로 아래에 위치하면서, 다른 모든 오픈·독점 모델을 일관되게 앞선다. WebDev Arena 에서는 오픈 모델 최초로 리더보드 1위를 차지했다.

소개 (Introduction)

대형 언어 모델(LLM)의 성능을 끌어올리는 방법은 오랫동안 “배포 전에 더 많은 연산을 투입한다” 는 것, 즉 더 큰 모델을 더 많은 데이터로 학습하는 것이었다. 그런데 reasoning 모델의 등장이 test-time 연산이라는 두 번째 scaling 축을 열었다. OpenAI 의 o-시리즈, Anthropic 의 extended thinking, DeepSeek-R1, Kimi K1.5 가 모두 대규모 강화학습으로 정교한 추론 행동을 이끌어냈고, Kimi K2.5 의 Agent Swarm 은 순차적 추론에서 병렬 에이전트 조율로 test-time scaling 을 한 단계 더 확장했다.

문제는 이 두 축의 발전 속도가 오픈소스 생태계에서 크게 어긋나 있다는 점이다. test-time 축(reasoning, 에이전트 RL)은 빠르게 따라잡았지만, 첫 번째 축인 pre-trained foundation 은 여전히 1T-급 파라미터 근처에 머물러 있었다. 점점 정교해지는 reasoning 과 에이전트 RL 기법이 비슷한 규모의 pre-trained foundation 위에서만 돌아가면, 오픈소스는 서로 수렴해 버리고 가장 강력한 독점 시스템과의 격차는 벌어진다. Kimi K3 는 이 두 축을 함께 프런티어로 밀어붙이려는 시도다. 3T-급 파라미터라는 전례 없는 pre-trained foundation 을 구축하면서, 동시에 1M 컨텍스트에서의 reasoning · reasoning effort · long-horizon 상호작용을 함께 scaling 한다.

이 논문은 학술 논문이라기보다 47페이지짜리 기술 보고서에 가깝다. 아키텍처, pre-training, post-training, 인프라, 평가, 케이스 스터디까지 프로덕션 프런티어 모델을 만드는 전체 스택을 다룬다. 지금 읽을 가치가 있는 이유는 명확하다. 선형 어텐션(linear attention)을 3T 규모에서 실제로 작동시킨 사례, auxiliary-loss-free MoE 라우팅을 896개 expert 로 확장한 방법, 1M 토큰 에이전트 RL 을 몇백 개 GPU 안에서 돌리는 시스템 설계 — 이 모든 것이 한 문서에 담겨 있고, 무엇보다 가중치가 공개되어 있다.

핵심 기여 (Key Contributions)

  • 오픈 프런티어에서의 pre-training. KDA, AttnRes, Stable LatentMoE, 정제된 데이터·학습 레시피를 결합해 104B 활성 · 1M 컨텍스트의 2.8T native multimodal MoE 를 학습했고, Kimi K2 대비 전체 scaling 효율을 약 2.5배 개선했다.
  • multi-effort test-time scaling 을 위한 강화학습. general · agentic · coding 세 도메인과 여러 reasoning-effort 레벨에 걸쳐 RL 을 수행한 뒤, 그 결과를 단일 모델로 통합했다(Multi-Teacher On-Policy Distillation).
  • 조 단위 파라미터, million-token 지능을 위한 인프라. KDA 시스템 co-design, 2.8T MoE pre-training 을 위한 MoonEP 와 메모리 효율 인프라, million-token 에이전트 궤적을 위한 resumable sandbox 기반 co-located RL 시스템을 도입했다.
  • 오픈 프런티어 모델. Kimi K3 의 전체 가중치를 공개해 프런티어 지능을 연구·배포·혁신에 열어놓았다.

리뷰어 입장에서 가장 의미 있다고 보는 건 선형 어텐션을 최전선 규모까지 밀어붙인 실증이다. KDA 같은 delta-rule 계열 선형 어텐션은 그동안 작은 모델에서만 검증됐는데, Kimi K3 는 이를 2.8T 하이브리드 백본의 주력(전체 어텐션 레이어의 3/4)으로 삼았다. “선형 어텐션은 규모가 커지면 무너진다” 는 통념에 대한 대규모 반례라는 점에서 이 보고서의 무게중심이 여기에 있다.

관련 연구 / 배경 지식

Kimi K3 를 이해하려면 세 갈래의 배경이 필요하다.

선형 어텐션과 delta rule. 표준 softmax 어텐션은 시퀀스가 길어질수록 KV 캐시가 선형으로 커지고 연산은 제곱으로 늘어난다. 선형 어텐션(Katharopoulos et al., 2020)은 어텐션을 고정 크기 recurrent state 로 압축해 이 비용을 없앤다. Delta rule(Schlag et al., 2021; Yang et al., DeltaNet)은 이 state 를 단순히 누적하는 대신, 새 정보와 기존 state 의 “차이” 만큼만 갱신해 표현력을 크게 높인 계열이다. Kimi Linear(Kimi Team, 2025)가 여기에 channel-wise forget gate 를 더했고, Kimi K3 의 KDA 는 그 직계 후손이다.

Multi-head Latent Attention (MLA). DeepSeek-V2(DeepSeek-AI, 2024)가 제안한 MLA 는 각 토큰의 key-value 표현을 저차원 latent 벡터 $\mathbf{c}_t = \mathbf{W}_c \mathbf{x}_t$ 로 압축해 캐싱하고, 어텐션 계산 시 up-projection 으로 복원한다. KV 캐시 발자국을 줄이면서 전역 토큰-투-토큰 어텐션을 유지하는 방식이며, Kimi K2·K2.5 가 이미 채택했다. Kimi K3 는 이를 주기적 global-attention 레이어로만 남긴다.

Mixture-of-Experts 와 load balancing. DeepSeekMoE(Dai et al., 2024)의 shared + routed expert 구조가 표준이 됐다. MoE 의 고질적 문제는 load balancing 인데, 일부 expert 에만 토큰이 몰리면 학습이 불안정해지고 expert-parallel 학습이 느려진다. 전통적으로는 auxiliary loss 를 썼지만, DeepSeek-V3(DeepSeek-AI, 2024)가 auxiliary-loss-free 방식(expert 별 bias 를 sign-based 로 갱신)을 도입했다. Kimi K3 의 Quantile Balancing 은 이 아이디어를 정확한 quantile 해로 대체한 것이다.

이 세 갈래가 각각 KDA(시퀀스 mixing), AttnRes(레이어 mixing), Stable LatentMoE(채널 mixing)로 이어진다.

방법 / 아키텍처 상세

Kimi K3 아키텍처는 정보 흐름을 세 방향으로 scaling 하도록 설계됐다. 시퀀스 길이(KDA + Gated MLA 하이브리드 어텐션), 네트워크 깊이(Attention Residuals), 모델 폭(Stable LatentMoE)이다. 입력단에는 native vision 경로(MoonViT-V2)가 붙는다.

Figure 2: Kimi K3 아키텍처. 각 블록은 3개의 KDA 레이어와 1개의 Gated MLA 레이어로 구성되고, 각 어텐션 레이어는 Stable LatentMoE FFN 과 짝을 이룬다. Attention Residuals 는 learned pseudo-query (w) 로 embedding·현재 블록·이전 블록 출력에 대한 어텐션 가중치를 뽑아 깊이 방향의 선택적 정보 흐름을 만든다. Top left: Stable LatentMoE. Bottom left: KDA. Bottom right: native vision 경로.

Hybrid Attention: KDA 와 Gated MLA 의 3:1 조합

각 블록은 3개의 KDA 레이어 뒤에 1개의 Gated MLA 레이어를 두는 3:1 비율로 구성된다. 이 패턴이 백본 전체에 반복되고, 백본 끝에 Gated MLA 레이어가 하나 더 붙어 마지막 레이어는 항상 전역 어텐션을 수행한다. 전체적으로 69개 KDA + 24개 MLA 레이어(총 93 레이어)다. 직관은 단순하다. 대부분의 토큰 mixing 은 저렴한 선형 어텐션(KDA)으로 처리하되, 주기적으로 값비싼 전역 어텐션(MLA)을 끼워넣어 장거리 상호작용을 보존한다.

Kimi Delta Attention (KDA)

KDA 는 delta-rule recurrence 에 channel-wise forget gate 를 결합한다. hidden state $\mathbf{x}_t \in \mathbb{R}^d$, query·key $\mathbf{q}_t, \mathbf{k}_t \in \mathbb{R}^{d_k}$, value $\mathbf{v}_t \in \mathbb{R}^{d_v}$, recurrent state $\mathbf{S}_t \in \mathbb{R}^{d_k \times d_v}$ 에 대해 한 어텐션 head 는 다음과 같이 갱신된다.

\[\begin{aligned} \mathbf{S}_t &= (\mathbf{I} - \beta_t \mathbf{k}_t \mathbf{k}_t^\top)\,\mathrm{Diag}(\boldsymbol{\alpha}_t)\,\mathbf{S}_{t-1} + \beta_t \mathbf{k}_t \mathbf{v}_t^\top, \\ \bar{\mathbf{o}}_t &= \mathbf{S}_t^\top \mathbf{q}_t. \end{aligned}\]

여기서 $\boldsymbol{\alpha}_t \in (0,1)^{d_k}$ 는 채널별 one-step retention factor(각 채널이 이전 state 를 얼마나 유지할지), $\beta_t \in (0,1)$ 는 delta-rule write strength(새 정보를 얼마나 강하게 쓸지)다. $\mathrm{Diag}(\boldsymbol{\alpha}_t)$ 가 채널별 forget gate 로 이전 state 를 감쇠시키고, $(\mathbf{I} - \beta_t \mathbf{k}_t \mathbf{k}_t^\top)$ 가 delta rule 로 key 방향 성분을 지운 뒤 새 key-value 를 덮어쓴다.

head 별 입력 사영은 다음처럼 만들어진다.

\[\begin{aligned} \mathbf{q}_t, \mathbf{k}_t &= \mathrm{L2Norm}\big(\mathrm{Swish}(\mathrm{ShortConv}(\mathbf{W}_{q/k}\mathbf{x}_t))\big), \\ \mathbf{v}_t &= \mathrm{Swish}(\mathrm{ShortConv}(\mathbf{W}_v \mathbf{x}_t)), \\ \beta_t &= \mathrm{Sigmoid}(\mathbf{W}_\beta \mathbf{x}_t), \\ \mathbf{z}_t &= \mathbf{W}_\alpha^\uparrow \mathbf{W}_\alpha^\downarrow \mathbf{x}_t + \mathbf{b}_\alpha. \end{aligned}\]

query·key 는 ShortConv 뒤 Swish 를 거치고 L2 정규화되며, decay logit $\mathbf{z}_t$ 는 low-rank projection 으로 뽑는다. KDA 는 recurrent 이지만 chunk 단위로는 병렬화할 수 있어(Kimi Linear 의 chunkwise parallel form) GPU 에서 효율적으로 돈다.

Lower-bounded decay — 여기가 K3 의 핵심 개선이다. chunkwise 계산은 각 chunk 를 16-토큰 tile 로 쪼개는데, off-diagonal tile 은 Tensor Core 로 dense matmul 이 가능하지만 diagonal tile 은 position-pair 계산이 필요해 병목이 된다. 원인은 retention factor 의 누적곱 $\Gamma$ 의 역수 $1/\Gamma$ 가 유한 정밀도에서 overflow 할 수 있다는 점이다. Kimi Linear 는 unbounded negative-Softplus 매핑 $g_t = -e^{A} \mathrm{Softplus}(\mathbf{z}_t)$ 를 썼는데, Kimi K3 는 scaled sigmoid 로 log-decay 를 아래에서 묶는다.

\[\begin{aligned} \mathbf{g}_t^h &= g_{\min}\,\mathrm{Sigmoid}\big(e^{A_h}\mathbf{z}_t^h\big) \in (g_{\min}, 0)^{d_k}, \\ \boldsymbol{\alpha}_t^h &= \exp(\mathbf{g}_t^h) \in (e^{g_{\min}}, 1)^{d_k}. \end{aligned}\]

$A_h$ 는 head 별 learnable log-scale, $g_{\min} = -5$ 는 고정값이며 $A_h$ 는 0 으로 초기화한다. $g_{\min} = -5$ 이면 모든 retention factor 가 $\alpha \approx 6.7 \times 10^{-3}$ 이상이고, 16-토큰 tile 에 걸친 누적 log-decay 는 $(-80, 0)$ 안에 머문다. 대응하는 역수 rescaling factor 가 $e^{80}$ 보다 작아 BF16 dynamic range 안에 들어오므로, diagonal tile 도 off-diagonal tile 도 모두 dense Tensor Core matmul 로 처리할 수 있고 position-pair diagonal 경로가 사라진다.

Figure 3: (a) Kimi Linear 는 unbounded negative-Softplus 를, Kimi K3 는 scaled sigmoid 로 log-decay 를 아래에서 묶는다. (b) Kimi Linear 는 diagonal tile 마다 명시적 position-pair 계산이 필요하지만, K3 의 bounded range 는 모든 causal tile 을 dense Tensor Core matmul 로 돌릴 수 있게 한다.

Full-rank gate. KDA 는 마지막으로 출력 게이트를 Kimi Linear 의 low-rank 파라미터화에서 input-dependent full-rank projection 으로 바꾼다. head-wise RMSNorm 을 적용한 뒤,

\[\mathbf{y}_t = \mathbf{W}_o\big[\mathrm{Sigmoid}(\mathbf{W}_g \mathbf{x}_t) \odot \mathrm{RMSNorm}(\bar{\mathbf{o}}_t)\big].\]

Gated MLA

Gated MLA 는 DeepSeek-V2 의 MLA 를 계승하되 두 가지를 바꾼다. 첫째, Kimi Linear 의 하이브리드 설계를 따라 모든 MLA 레이어에 No Position Encoding (NoPE) 를 적용한다. MLA 레이어에는 어떤 명시적 위치 인코딩도 걸지 않고, 중간의 KDA 레이어들이 position-sensitive · recency-aware mixing 을 제공한다. 덕분에 컨텍스트를 늘릴 때 RoPE frequency base 재조정이나 YaRN 같은 위치 인코딩 수정이 아예 필요 없다 — 이것이 1M 컨텍스트로의 직접 외삽(extrapolation)을 가능케 하는 결정적 설계다.

둘째, MLA 에도 input-dependent channel-wise full-rank 출력 게이트를 붙인다. ungated MLA 출력 $\bar{\mathbf{o}}_t$ 에 대해,

\[\mathbf{y}_t = \mathbf{W}_o\big[\mathrm{Sigmoid}(\mathbf{W}_g \mathbf{x}_t) \odot \bar{\mathbf{o}}_t\big].\]

추가로, flash attention 의 편향된 rounding error 를 잡기 위해 학습 중 어텐션 출력을 FP32 로 유지한다.

Attention Residuals (AttnRes): 깊이 방향의 어텐션

표준 residual connection 은 깊이에 걸친 모든 이전 정보를 단일 state $\mathbf{h}_l$ 로 압축한다 — 시간에 대한 RNN 과 비슷한 병목이다. Transformer 가 시퀀스 방향에서 recurrence 를 어텐션으로 대체했듯, AttnRes(Kimi Team, 2026)는 같은 방법론을 깊이 방향에 적용한다. 각 레이어가 모든 이전 레이어에서 표현을 균일하게 누적하는 대신 선택적으로 retrieve 한다.

각 레이어 $l$ 에 대해 learnable pseudo-query $\mathbf{q}_l = \mathbf{w}_l \in \mathbb{R}^d$ 를 두고, key·value 는 $i=0$ 이면 토큰 embedding $\mathbf{h}_1$, $1 \le i \le l-1$ 이면 레이어 $i$ 의 출력 $f_i(\mathbf{h}_i)$ 로 둔다. 어텐션 가중치는 $\phi(\mathbf{q}, \mathbf{k}) = \exp(\mathbf{q}^\top \mathrm{RMSNorm}(\mathbf{k}))$ 라는 softmax kernel 을 따른다. RMSNorm 이 magnitude 가 큰 레이어가 가중치를 독식하는 걸 막는다.

문제는 이 full 형태가 $O(Ld)$ 메모리(모든 레이어 출력을 살려둬야 함)를 요구한다는 점이다. 이를 줄이기 위해 Block AttnRes 는 $L$ 개 레이어를 $S = L/N$ 크기의 $N$ 개 블록으로 나눈다. 블록 안에서는 레이어 출력을 하나의 partial sum $\mathbf{b}_n^i$ 로 줄이고($\mathbf{b}_0 = \mathbf{h}_1$ 로 두어 embedding 은 항상 소스에 포함), 블록 사이에서만 $N$ 개 블록-레벨 표현에 대해 full 어텐션을 건다. 이로써 메모리는 $O(Nd)$ 로 떨어진다. Kimi K3 는 12-레이어 크기의 8개 블록으로 나누고, embedding 레이어를 세면 총 9개 블록이 된다. 경험적으로 $N \approx 8$ 이 모델 규모 전반에서 이점의 대부분을 회복한다.

Stable LatentMoE: 폭 방향의 sparse mixing

expert 풀과 active expert 수를 동시에 늘리면 expert 전문화의 공간이 넓어지지만, 전통적 MoE 에서는 선택된 각 expert 가 full-width $d$-차원 표현을 받으므로 라우팅 multiplicity 에 비례해 통신·expert-weight 트래픽이 폭발한다. LatentMoE(Elango et al., 2026)는 full model width 를 routed-expert width 에서 분리해 이 문제를 푼다. shared expert 는 공통 변환을 위해 full-width 경로를 유지하고, 특화된 routed expert 는 폭 $\ell$ 의 compact latent space 에서 동작한다. 덕분에 채널 mixing 을 896개 routed expert, 토큰당 16개 active(sparsity 56) 까지 확장할 수 있다.

하지만 이런 극단적 sparsity 는 두 가지 실패 모드를 증폭한다. 첫째, routed 경로가 gated multi-branch FFN($\mathbf{W}^\downarrow$)과 $\mathbf{W}^\uparrow$ 를 거의 네 번 연속된 matmul 로 엮으면서, 2.8T 규모에서 routed branch 의 내부 활성값이 폭발한다. 둘째, $10^3$ 에 가까운 expert 의 load balancing 이 기존 auxiliary-loss-free bias 갱신이 잘 작동하는 영역을 벗어난다. Stable LatentMoE 는 세 컴포넌트로 이 둘을 잡는다.

Figure 5: Quantile Balancing 예시 (m=8 토큰, n=4 routed expert, k=1). (a) token-wise Top-k 라우팅은 load (4,3,1,0) 을 만든다 — 진한 원은 과열된 expert, 흐리고 점선인 원은 저활용·소멸 중인 expert. (b) 각 회색 막대는 biased score 의 margin 이고, 각 컬럼의 점선 빨간 선이 정확히 q=2 개 margin 만 넘도록 놓인 bias 조정이다. (c) 조정 후 균형 잡힌 load (2,2,2,2). 빨간 간선이 QB 로 바뀐 배정.

Normalized LatentMoE. 원래 LatentMoE 는 aggregated routed 표현 $\mathbf{u}$ 에 바로 $\mathbf{W}^\uparrow$ 를 적용하는데, 이 $\mathbf{u}$ 의 scale 은 선택된 expert 와 라우팅 가중치에 따라 크게 요동친다. Kimi K3 는 expert aggregation 과 up-projection 사이에 RMSNorm 을 끼워 이 scale 변동을 줄인다.

\[\begin{aligned} \mathbf{u} &= \sum_{i \in \mathcal{T}_k(\mathbf{x})} p_i\, E_i^{\text{routed}}(\mathbf{W}^\downarrow \mathbf{x}), \\ \mathbf{y} &= \sum_{j=1}^{N_s} E_j^{\text{shared}}(\mathbf{x}) + \mathbf{W}^\uparrow \mathrm{RMSNorm}(\mathbf{u}). \end{aligned}\]

Kimi K3 는 full-width shared expert 수를 모든 레이어에서 $N_s = 2$ 로 고정한다.

Sigmoid Tanh Unit GLU (SiTU-GLU). SwiGLU 는 두 곱셈 인자가 모두 unbounded 라, 큰 좌표가 겹치면 활성값 outlier 가 생기고 저정밀 연산에서 overflow 위험이 커진다. SiTU-GLU 는 smooth cap $\mathrm{softcap}(x, \beta) = \beta \tanh(x/\beta)$ 를 Swish gate 의 선형 인자와 up branch 에 각각 독립적으로 적용한다.

\[\begin{aligned} \mathrm{SiTU\text{-}GLU}(\mathbf{x}) = \Big[&\beta_1 \tanh\big(\tfrac{\mathbf{W}_g \mathbf{x}}{\beta_1}\big) \odot \mathrm{Sigmoid}(\mathbf{W}_g \mathbf{x})\Big] \\ &\odot \Big[\beta_2 \tanh\big(\tfrac{\mathbf{W}_u \mathbf{x}}{\beta_2}\big)\Big]. \end{aligned}\]

Kimi K3 는 gate branch 에 $\beta_1 = 4$, up branch 에 $\beta_2 = 25$ 를 쓴다. scaled tanh 는 원점 근처에서 근사적으로 선형이고 큰 값에서 유계라, SwiGLU 의 국소 응답을 보존하면서 두 인자를 모두 억제한다. 출력은 $\Vert \mathrm{SiTU\text{-}GLU}(\mathbf{x})\Vert _\infty \le \beta_1 \beta_2 = 100$ 으로 유계다.

Table 1: Kimi K2 와 Kimi K3 아키텍처 비교. 레이어 61→93, 총 파라미터 1.04T→2.78T, 활성 파라미터 32.6B→104.2B, routed expert 384→896, 토큰당 active expert 8→16, 학습 컨텍스트 128K→1M(8배).

Quantile Balancing (QB)

QB 는 Stable LatentMoE 의 load balancing 담당이다. auxiliary-loss-free 라우팅을 따르되, expert 별 bias $b_j$ 를 Top-k 선택에 쓰는 라우터 스코어에 더한다. 토큰 $\mathbf{x}_i$ 에 대해 라우터는 $\mathbf{s}_i = \mathrm{Sigmoid}(\mathbf{W}_r \mathbf{x}_i)$ 를 계산하고,

\[\mathcal{T}_i = \mathrm{argtopk}(\mathbf{s}_i + \mathbf{b}), \qquad p_{i,j} = \frac{s_{i,j}}{\sum_{r \in \mathcal{T}_i} s_{i,r}}, \quad j \in \mathcal{T}_i.\]

$\mathbf{b}$ 는 $p_{i,j}$ 에서 빠져 있으므로 dispatch 만 조절하고 mixture 가중치나 라우터의 gradient 기반 최적화는 건드리지 않는다. 기존 방법은 $\mathbf{b}$ 를 fixed-step sign 규칙으로 갱신했는데, 896개 expert 로 늘어난 LatentMoE 에서는 균형 잡힌 load 유지가 훨씬 어려워진다. QB 는 각 expert 의 bias 를 target load 에 맞는 라우터-스코어 quantile 로 직접 설정한다. target load $q = mk/n$(expert 당 토큰 수)에 대해, Top-$(k{+}1)$ biased score 의 cutoff 를 이용해 다음 bias 를 단 한 번의 forward pass 로 유도한다.

\[\begin{aligned} \widehat{b}_j^{(t+1)} &\leftarrow -\mathrm{quantile}_{1-k/n}\big(\mathbf{s}_{:,j} - \boldsymbol{\alpha}^{(t)}\big), \\ \mathbf{b}^{(t+1)} &\leftarrow \widehat{\mathbf{b}}^{(t+1)} - \mathrm{mean}\big(\widehat{\mathbf{b}}^{(t+1)}\big)\mathbf{1}. \end{aligned}\]

margin 이 biased cutoff $\alpha_i^{(t)}$ 를 raw score $s_{i,j}$ 에서 빼는 형태라, 이전 bias 는 cutoff 를 통해서만 갱신에 들어오고 update 는 다음 step 에서만 반영된다. 즉 배치가 자기 자신에서 유도된 bias 로 라우팅되는 일이 없다. bias 는 추론 시 고정된다. 부록 C 는 이 quantile 규칙이 bipartite b-matching polytope 의 최적 balanced assignment 에서 유도됨을 보이며, 학습 가능한 학습률 같은 하이퍼파라미터 없이 $10^3$ 에 가까운 expert 에서도 몇 step 만에 평형에 도달함을 설명한다. 실제 scale 에서는 margin 이 수백만 개라 exact quantile 은 불가능하므로, expert 별 histogram 을 single all-reduce 로 모아 quantile 을 복원하는 histogram estimation 을 쓴다.

Native Vision: MoonViT-V2

Kimi K3 는 텍스트·이미지·비디오를 단일 공유 백본이 한 컨텍스트 안에서 처리하는 native multimodal 모델이다. Kimi K2.5 와의 핵심 차이는 vision encoder MoonViT-V2 를 contrastive pre-trained SigLIP 초기화 없이 처음부터 next-token prediction 으로 학습한다는 점이다. Kimi K2.5 를 포함한 기존 관행은 SigLIP 같은 contrastive encoder 로 초기화했지만, 저자들은 학습 안정성 때문에 이를 버렸다. SigLIP-초기화 encoder 를 LLM 에 붙여 joint 최적화하면 vision-tower gradient norm 에 잦은 spike 가 생기는 반면, MoonViT-V2 는 학습 내내 안정적이다. 흥미롭게도 MoonViT-V2 는 SigLIP-초기화 baseline 과 vision 평가에서 대등해, 대규모 multimodal LM 에서 contrastive pre-training 이 초기화로서 불필요함을 시사한다.

MoonViT-V2 는 27-레이어, 약 0.4B(401M) 파라미터 vision transformer 로 RMSNorm 을 쓰고 linear·attention projection 의 bias 항을 모두 제거했다. 이미지·비디오는 fully shared 파라미터로 처리되며, projection 전에 $2 \times 2$ pixel-shuffle downsampling 으로 visual 토큰 수를 1/4 로 줄여 최대 $3584 \times 3584$ 픽셀 입력을 1M 컨텍스트 안에서 감당한다.

Per-Head Muon

Kimi K3 는 matrix 파라미터의 optimizer 로 Muon(Jordan et al., 2024)을 쓰되, 어텐션 projection 은 per-head 변형으로 정제한다. 전체 $Q, K, V$ projection matrix 에 Newton-Schulz orthogonalization 을 거는 대신, momentum matrix 를 head 차원으로 나눠 각 head 블록을 따로 orthogonalize 한다. full-matrix orthogonalization 은 모든 head 를 하나의 결합 블록으로 취급해 gradient 나 momentum scale 이 큰 head 가 공유 update 방향을 지배하는데, per-head 방식은 head 간 update scale 을 균등하게 만들어 큰 scale 에서 학습 안정성을 높인다.

학습 목표 / 손실 함수

Kimi K3 의 핵심 손실은 표준 next-token prediction 이지만, post-training 에서 세 가지 특화 목표가 등장한다.

Reasoning Effort RL 의 budget-penalized reward. reasoning effort 를 token efficiency 와 함께 조율하기 위해, 각 문제 $x$ 에 cold-start 모델로 추정한 초기 token budget $b_0(x)$ 를 붙인다. 전체 token budget $T(y)$ 가 scaled threshold $\tau \cdot b_0(x)$ 를 넘는 궤적은 task reward 를 $-1$ 로 덮어쓴다. 먼저 큰 $\tau$ 의 max-budget 변형으로 학습한 뒤 $\tau$ 를 줄여가며 high·low effort expert 를 얻는다.

Multi-Teacher On-Policy Distillation (MOPD). 9개 도메인·effort 특화 expert(3 도메인 × 3 effort)를 단일 모델로 통합한다. 도메인 $d$, effort $e$ 에 대응하는 teacher $\pi_{\text{teacher}}^{(d,e)}$ 와 student $\pi_\theta$ 사이의 per-token OPD reward 는 다음과 같다.

\[r_{\text{opd}}^d(y_t \mid e, x, y_{<t}) = \mathrm{clip}\Big(\mathrm{sg}\big(\log \tfrac{\pi_{\text{teacher}}^{(d,e)}(y_t \mid x, y_{<t})}{\pi_\theta(y_t \mid e, x, y_{<t})}\big),\, -R_{\max},\, R_{\max}\Big).\]

$\mathrm{sg}(\cdot)$ 는 stop-gradient, $R_{\max} > 0$ 은 극단적 advantage 신호를 억제하는 clipping threshold 다. 이 dense reward 가 partial rollout 같은 인프라 최적화와 자연스럽게 맞물린다.

LK loss(draft model fine-tuning). 추론 가속을 위한 EAGLE-3-스타일 draft 모델은 speculative decoding 의 per-token acceptance rate $\sum_x \min(p(x), q(x))$ 를 직접 최적화한다. 관습적 KL-divergence surrogate 는 이 rate 를 극대화한다는 보장이 없으므로, likelihood 기반 LK loss — acceptance rate 자체의 음의 로그 — 를 쓴다.

\[\mathcal{L}_{\text{LK}} = -\log \sum_{x \in \mathcal{V}} \min\big(p(x), q(x)\big).\]

$p, q$ 는 target·draft 모델의 next-token 분포이며 temperature 1 에서 평가한다.

학습 데이터와 파이프라인

Pre-training 데이터. Web Text · Code · Mathematics · Knowledge 4개 텍스트 도메인과 대규모 vision corpus(caption, interleaved image-text, OCR, perception, video, visual coding). 각 도메인은 rule-based heuristic, classifier 기반 quality scoring, deduplication, ablation 기반 sampling rate 로 필터된다. Kimi K2 의 rephrasing 레시피를 따라 knowledge·mathematics corpus 를 style·관점 다양화 prompting 으로 재작성한다. vision corpus 는 절대·정규화 $([0,1])$ 좌표 supervision 을 제공해 정밀한 localization 을 학습하며, SVG·3D asset·Webpage·Game·CAD 같은 도메인 특화 포맷의 programmatic multimodal 데이터를 대폭 늘렸다.

Scaling law. aligned 된 아키텍처·데이터·학습 개선은 최적 학습 regime 자체를 바꾸므로, batch size·learning rate·tokens-per-parameter ratio·모델 shape 를 재조정하는 전용 scaling-law 연구를 수행했다. 그 결과 cosine decay 가 WSD(Warmup Stable Decay)보다 일관되게 낮은 final loss 를 달성했다(각 schedule 을 독립적으로 튜닝한 공정한 비교 하에서). 이 개선들이 합쳐져 Kimi K2 대비 약 2.5배의 scaling 효율을 낸다.

Figure 7: Kimi K2 와 Kimi K3 의 fitted scaling-law 곡선. 같은 validation loss 를 K3 는 K2 의 약 2.5분의 1 FLOPs 로 달성한다.

Progressive context extension. pre-training 은 8k 토큰으로 시작해 64k 로 확장하고, cooldown 단계에서 256k → 1M 으로 늘린다. 4단계 curriculum 으로 컨텍스트 window 를 점진 확장하되, 값비싼 long-sequence 연산을 전체 budget 의 작은 fraction 으로 제한한다. NoPE 덕에 위치 인코딩 수정 없이 1M 으로 직접 외삽된다. long-context 데이터는 near-duplicate·binary blob·truncated file 등 저품질 콘텐츠가 많아 exact·fuzzy dedup + perceptual hashing + 구조 검증의 전용 cleaning 파이프라인을 거치고, 흩어진 정보에 걸쳐야 풀리는 task 를 합성해 어텐션이 국소 패턴으로 퇴화하는 걸 막는다.

단계 내용
Pre-training 컨텍스트 8k → 64k
Cooldown 컨텍스트 256k → 1M
Quantization QAT (MXFP4 weights, MXFP8 activations), SFT 부터
Optimizer Per-Head Muon + weight clipping (Kimi K2)
LR schedule cosine, 1% linear warmup
Weight decay 0.1

실험 결과

Kimi K3 는 네 축(Reasoning & Knowledge, Coding, Agentic, Vision)의 종합 벤치마크에서 평가됐다. 비교 대상은 독점 모델 Claude Fable 5 · GPT-5.6 Sol · Claude Opus 4.8 · GPT-5.5, 오픈 모델 GLM-5.2 다. 모든 Kimi K3 평가는 reasoning effort max, temperature 1.0 이다.

Figure 1: Kimi K3 주요 결과. 코딩·general·visual agent 전반에서 Kimi K3(파란 막대)가 프런티어 상위권에 위치한다.

Reasoning & Knowledge

대학원 수준 추론에서 Kimi K3 는 프런티어와 경쟁력이 있다. GPQA Diamond 93.5(GPT-5.5 와 공동 2위, 최고는 GPT-5.6 Sol 94.1), AA-LCR 74.7 로 최고 점수. 다만 research-level task 에서는 격차가 남는다. HLE-Full 은 tool 없이 43.5, tool 사용 시 56.0 으로 Claude Fable 5(53.3/63.0)와 GPT-5.6 Sol(44.5/58.0) 모두에 뒤진다. CritPt 는 23.4 로 Claude Fable 5·GPT-5.6 Sol·GPT-5.5 에 밀려, research-level 추론이 개선 여지가 큰 방향임을 보여준다.

Coding

Kimi K3 는 강한 에이전트 코딩 성능을 낸다. ProgramBench 77.8 로 최고, SWE-Marathon(GPU-kernel 지향 스위트)에서 42.0 으로 Claude Fable 5 보다 7점 앞선 최고 점수다. Terminal-Bench 2.1 은 88.3 으로 GPT-5.6 Sol(88.8)에 근소하게 뒤진 2위. DeepSWE 67.5 는 Claude Fable 5·GPT-5.6 Sol 뒤지만 Claude Opus 4.8·GPT-5.5 는 앞선다. long-horizon 벤치인 FrontierSWE 는 81.2 로 Claude Fable 5(86.6)에 이은 2위이며 다른 모든 모델을 크게 앞선다.

Agentic

에이전트 스위트에서 Kimi K3 는 광범위한 SOTA 를 달성한다. BrowseComp 91.2, DeepSearchQA 95.0(F1), ResearchRubrics 76.2, MCPMark-Verified 94.5, AutomationBench 30.8, SpreadsheetBench 2 34.8, $\tau^3$-Banking 33.4, Harvey Lab-AA 94.6(criterion pass rate) 모두 최고 점수다. 주요 예외는 Claude Fable 5 가 앞서는 GDPval-AA v2(1686, 3위)와 AA-Briefcase(1548, 2위) 정도다. CorpFin v2·OSWorld-Verified 는 Claude Fable 5 에 각각 0.2, 0.2점 차의 근소한 2위이고, 더 어려운 computer-use 벤치(OSWorld 2.0, SaaS-Bench)는 여전히 Claude Fable 5 나 GPT-5.6 Sol 이 이끈다.

Table 2: 독점·오픈 모델 대비 Kimi K3 성능. Bold 는 각 벤치 최고, underline 은 2위. Kimi K3 는 Claude Fable 5·GPT-5.6 Sol 바로 아래에서 다른 모든 모델을 일관되게 앞선다.

Vision

Kimi K3 의 multimodal 이해 능력은 Python tool 로 더 증폭된다. Math-Vision 은 94.3, tool 사용 시 97.8 로 오르고, 어려운 ZeroBench-main 에서 tool 없이 23.0(Claude Fable 5 와 동률), Python tool 사용 시 41.0 으로 뛴다. OmniDocBench 91.1 로 최고, Video-MME 90.0·MMVU 82.1 도 최고. WorldVQA ForceAnswer 51.0 은 Claude Fable 5(56.7) 뒤 2위로 GPT-5.6 Sol·Claude Opus 4.8 을 앞선다.

사이버 보안 평가

Kimi K3 는 두 단계로 사이버 능력을 평가받았다. Tier 1(취약점 발견)에서는 운영체제 커널·데이터베이스·AI 서비스·웹 프레임워크·블록체인·VPN 등 수십 개 배포 시스템에서 후보 취약점 수백 개를 찾았고, human review 를 거친 것 중 약 70% 가 진짜로 확인됐으며 6개 프로젝트에 걸쳐 16개의 기존 미공개 취약점을 포함한다. Tier 2(exploit 개발)에서는 36개 task 중 14개(38.9%)를 풀어 GLM-5.2(8/36, 22.2%)를 앞섰지만, user-space 에 성공이 몰려 있고 kernel track 은 두 모델 다 3/4 이상을 못 푼다. UK AISI 와 NIST CAISI 의 독립 공동 평가도 일관된 결론을 냈다 — ExploitBench 에서 32% 대 24% 로 GLM-5.2 를 앞서지만, end-to-end exploit 완성에서는 프런티어 사이버 모델에 뒤진다. 저자들은 이를 능력의 lower bound 로 규정한다.

Third-party 평가

  • Artificial Analysis: Intelligence Index v4.1 = 57.1, 580개 모델 중 4위(GPT-5.6 Sol effort 변형을 하나로 세면 3위). Claude Fable 5(59.9)·GPT-5.6 Sol(58.9) 아래, 나머지 전부 위.
  • Vals AI: GDP-weighted 산업 벤치에서 Vals Index 74.7 로 39개 중 2위(Claude Fable 5 75.1 뒤).
  • Arena: WebDev Arena 1678 Elo 로 99개 중 1위 — 이 리더보드를 정상에 올린 첫 오픈 모델이며, Claude Fable 5(1634)를 앞선다. Text Arena 8위, Agent Arena 4위.

비용 효율

Kimi K3 는 네 스위트 모두에서 cost-efficiency 프런티어 위 또는 근처에 있다. Kimi Code Bench 2.0 에서 Claude Fable 5 보다 4점 뒤지지만 비용은 38% 수준이고, high effort 로는 Claude Opus 4.8 의 max 점수를 약 1/3 비용에 맞춘다. BrowseComp 에서는 $2.03/task 로 91.2 를 내 GPT-5.6 Sol(90.4%)의 절반, Claude 모델들의 max effort 대비 한 자릿수 배 저렴하다.

Figure 13: 4개 스위트에서 점수 대 태스크당 추론 비용. Kimi K3(별)는 near-top 점수를 프런티어 비용의 일부만으로 낸다.

결과 분석 / Ablation

RL FLOPs 를 키울수록 무엇이 좋아지는지가 이 보고서에서 가장 흥미로운 관찰이다.

Figure 8: RL 중 다양한 공개·in-house 평가의 점수와 평균 assistant step. RL FLOPs 를 키우면 tool-call step 이 일관되게 늘고, 그와 함께 모델의 전반적 능력이 향상된다.

Coding Experience·General Tool Use·Web Development·Agentic Search·Professional Workflows·Office Deliverables·Agentic Chart Understanding·Agentic Visual Puzzles 여덟 개 축 모두에서, RL FLOPs 가 늘수록 점수(파란선)와 평균 tool-call step(빨간 점선)이 함께 올라간다. 이는 단순히 정답률이 오르는 게 아니라 모델이 더 많은 tool 호출을 통해 문제를 능동적으로 파고드는 행동 자체가 학습된다는 뜻이다. long-horizon 에이전트 능력이 reasoning-effort 절제와 함께 emergent 하게 나타나는 것이다.

아키텍처 측면의 해석도 뚜렷하다. lower-bounded decay 를 뺐다면 diagonal tile 이 position-pair 계산으로 남아 KDA 의 chunkwise 커널이 병목에 걸렸을 것이고, NoPE 를 뺐다면 1M 외삽마다 RoPE 재조정·YaRN 이 필요했을 것이다. Stable LatentMoE 의 세 컴포넌트(RMSNorm, SiTU-GLU, QB) 각각은 극단적 sparsity 의 서로 다른 실패 모드 — 활성값 폭발과 load imbalance — 를 겨냥한 방어책으로, 896개 expert 를 실제로 학습 가능하게 만드는 핵심이다. in-house 평가에서 Kimi K3 의 강점은 orchestration·research 형 에이전시(Swarm Bench 76.3, Deep Research Bench 90.0)에 뚜렷이 몰려 있고, Kimi Webdev Bench 에서는 blind expert 심사에서 Claude Opus 4.8 대비 +31.0 포인트 우위를 보인다.

인프라: 조 단위 규모를 실제로 돌리는 법

세 가지 시스템 도전 — 하이브리드 KDA 어텐션, 3T-급 sparse multimodal 학습, million-token 에이전트 워크로드 — 을 한 모델에서 동시에 만나는 건 드문 일이다.

  • KDA co-design. FlashKDA(CUTLASS 기반 chunkwise 커널)가 intra-chunk 연산과 cross-chunk state 전파를 overlap 하고, KDA Context Parallelism (KCP)이 각 segment 의 state transition 을 로컬로 계산 후 associatively 합성해 fixed-size all-gather 만으로 recurrent-state 를 동기화한다. delta rule 은 token-dependent matrix 를 곱하므로 vanilla linear attention 의 단순 합산 방식이 안 통하는데, KCP 는 이를 cumulative transition 과 로컬 생성 state 두 조각으로 분해해 푼다.
  • MoonEP. perfect load balance 를 dynamic redundant expert 로 달성하는 expert-parallel 스킴. rank 당 $E/R$ 개 redundant expert slot 이 항상 feasible plan 을 보장함을 증명(부록 E)했고, zero-copy 통신과 static shape 로 per-layer host 동기화를 없앤다. 워스트 케이스에서도 통신 버퍼가 $S \times K$ 로 고정된다.
  • 1M 에이전트 RL. co-located RL, external KV cache pool(reusable prefix 를 CPU DRAM 으로 write-back), rollout auto-throttling, 그리고 Firecracker microVM 기반 sandbox AgentENV. AgentENV 는 pause/resume(waiting 중 sandbox 가 자원 0 소비, 전체 lifetime 의 최대 98%)·fork(reward judging 용)·snapshot 을 지원한다. 학습·평가 전체에서 1,505,678 개 이미지에 걸쳐 총 51,219,741 개의 sandbox 가 생성됐다.
  • 추론 서빙. KDA-aware prefix cache 가 fixed-size recurrent state 를 MLA KV 와 같은 paged pool 에 담고, KDA decode·Block AttnRes·Stable LatentMoE 전용 커널이 per-token latency 를 줄이며, cache-aware affinity scheduling 과 budget-based admission control 이 이 효율을 예측 가능한 프로덕션 서빙으로 옮긴다.

케이스 스터디도 주목할 만하다. Kimi K3 는 GPU 커널 최적화로 AttnRes latency 를 283.6ms → 114.4ms 로 줄였고, MiniTriton 이라는 컴팩트 Triton-계열 컴파일러를 개발했으며, 48시간 autonomous 실행으로 하이브리드 아키텍처 추론 칩(nano-kpu, 4mm², 100MHz, decode throughput >8,700 tokens/s)을 설계·검증했다.

한계와 비판적 평가

  • research-level 추론의 격차. 저자들도 인정하듯 HLE-Full·CritPt 에서 Claude Fable 5·GPT-5.6 Sol 에 뒤진다. 대학원 수준(GPQA)은 따라잡았지만 그 위 research-level 은 여전히 프런티어 독점 모델의 영역이다.
  • 재현성의 실질적 벽. 가중치는 공개됐지만 2.8T 파라미터 · 104B 활성 모델을 실제로 서빙하려면 MoonEP·FlashKDA·AgentENV 같은 전용 인프라 스택이 필요하다. “오픈 웨이트” 가 “오픈 접근성” 을 뜻하지는 않으며, 대부분의 연구자·조직에게 이 모델을 프런티어 effort 로 돌리는 건 여전히 비현실적이다.
  • 평가의 self-report 편향. 다수의 in-house 벤치(Kimi Code Bench 2.0, Kimi Webdev Bench, Swarm Bench 등)가 저자 팀이 직접 설계·채점한 것이라 자기 강점 영역에 유리하게 curated 됐을 가능성이 있다. Kimi Webdev Bench 의 blind 심사는 이를 일부 완화하지만, in-house 스위트 전반의 baseline 선택 편향은 검증하기 어렵다.
  • kernel-track exploit 의 실패. 사이버 평가에서 kernel-track exploit 은 두 모델 다 3/4 이상을 못 풀었고, end-to-end exploit 완성은 여전히 병목이다. 저자들이 능력의 lower bound 로 규정한 만큼, 이 결과는 특정 model version·평가 coverage 에 조건부다.
  • 비용 효율 비교의 조건성. cost-efficiency 우위는 harness·effort·측정 시점(2026년 7월 API 가격)에 크게 의존한다. Kimi K3 는 Kimi Code, 다른 모델은 Claude Code/Codex harness 로 평가돼 harness 간 이질성이 남는다.

시사점 / Takeaways

  • 선형 어텐션은 이제 프런티어 규모에서 작동한다. KDA 를 어텐션 레이어의 3/4 로 삼은 2.8T 하이브리드가 전역-어텐션 독점 모델과 겨룬다는 사실은, delta-rule 선형 어텐션이 “작은 모델 전용” 이라는 통념을 실증적으로 뒤집는다. lower-bounded decay 라는 작은 파라미터화 변경이 diagonal tile 을 Tensor Core 로 옮겨 이 규모를 실용화한 결정적 한 수였다.
  • NoPE + KDA 하이브리드가 1M 외삽을 공짜로 만든다. 위치 인코딩을 KDA 의 recurrent gating 에 위임하면 RoPE 재조정·YaRN 없이 1M 으로 직접 외삽된다. long-context 설계의 무게중심이 위치 인코딩 튜닝에서 어텐션 하이브리드 구성으로 옮겨가고 있음을 보여준다.
  • auxiliary-loss-free 라우팅은 정확한 quantile 해로 진화한다. Quantile Balancing 은 sign-based bias 갱신을 bipartite matching 의 최적해로 대체해, 896개 expert 라는 극단적 sparsity 에서도 학습률 없이 몇 step 만에 load 평형에 도달한다. MoE 라우팅 연구가 heuristic 에서 최적화 이론으로 이동하는 신호다.
  • RL FLOPs 를 키우면 tool 사용 행동 자체가 emergent 하게 학습된다. 여덟 개 에이전트 축에서 점수와 평균 tool-call step 이 함께 오르는 패턴은, 에이전트 능력이 단순 정답률이 아니라 능동적 도구 활용 행동의 emergence 임을 시사한다.
  • 오픈 웨이트가 오픈 접근성은 아니다. 5,100만 개 sandbox, 전용 EP·attention 커널 스택, 3T-급 인프라를 요구하는 모델의 “공개” 는, 커뮤니티가 실제로 재현·활용하기 위한 시스템 소프트웨어 공개(FlashKDA, MoonEP, AgentENV 등)가 가중치만큼이나 중요함을 재확인시킨다.

설치 및 사용법

Kimi K3 가중치는 Hugging Face 에 공개되어 있다. 다만 2.8T 파라미터 · 104B 활성 모델이라, 실제 서빙에는 상당한 멀티-GPU 인프라와 저자들이 함께 공개한 전용 커널(FlashKDA, MoonEP)이 필요하다.

# 개념 예시 — 실제 서빙에는 MoonEP/FlashKDA 등 전용 인프라 필요
from transformers import AutoModelForCausalLM, AutoTokenizer

model_id = "moonshotai/Kimi-K3"
tokenizer = AutoTokenizer.from_pretrained(model_id, trust_remote_code=True)
model = AutoModelForCausalLM.from_pretrained(
    model_id, trust_remote_code=True, torch_dtype="auto", device_map="auto"
)

messages = [{"role": "user", "content": "1M 컨텍스트 요약 태스크를 설명해줘."}]
inputs = tokenizer.apply_chat_template(messages, add_generation_prompt=True, return_tensors="pt")
output = model.generate(inputs.to(model.device), max_new_tokens=512)
print(tokenizer.decode(output[0], skip_special_tokens=True))

참고 자료

더 읽어보기




Enjoy Reading This Article?

Here are some more articles you might like to read next:

  • [논문 리뷰] Accurate Decoding of Natural Sentences from Non-Invasive Brain Recordings
  • [논문 리뷰] Agentic Method for Deterministic Validation of Legacy Code Migration
  • [논문 리뷰] RAGU: A Multi-Step GraphRAG Engine with a Compact Domain-Adapted LLM
  • [논문 리뷰] Hierarchical Self-Improvement: A Framework for Task-Specific Evolvable Agent Harnesses
  • [논문 리뷰] NVIDIA-labs OO Agents: Native Python Object-Oriented Agents