MiniMax-M3.1-Flash는 MiniMax-M3 계열의 최신 모델로, 추론, 코딩, 에이전트, 비전 작업 전반에서 개선되었습니다. 또한 추론 효율성을 위해 설계되었으며, 네이티브 NVFP4 KV 캐시, NVFP4 양자화된 MoE 가중치, 그리고 speculative decoding을 위한 DSpark 초안 모델을 갖추고 있습니다.
vLLM은 NVIDIA Blackwell GPU, 전용 Rubin 커널을 갖춘 NVIDIA Rubin GPU, AMD MI350 시리즈 GPU에서 MiniMax-M3.1-Flash를 출시 첫날(day 0)부터 지원하며, 에이전트 워크로드에서 강력한 성능을 제공합니다.
요약
- MiniMax Sparse Attention (MSA) 함께 NVFP4 KV 캐시 인덱서(indexer)와 어텐션 경로 양쪽 모두에 대해, 그리고 NVFP4 MoE 가중치 그리고 a DSpark 기안자.
- Blackwell MSA 커널 새로운 CUDA 13.4를 사용하십시오
QMUL4NVFP4를 커널 내부에서 FP8로 역양자화(dequantize)하도록 지시: 최대 1.7배 더 빠름 인덱서 QK 디코딩 및 1.3배 더 빠름 희소 어텐션 디코드. - NVFP4 MegaMoE MXFP8 공유 전문가 융합과 조기 TMEM 해제를 적용한 결과: 20% 더 낮은 커널 지연 시간 프리필(prefill) 단계와 프리필 처리량 7% 향상.
- 인덱서 디코드 컨텍스트 병렬화(DCP): 최대 3.3배 더 빠름 4× GB300에서 512K 컨텍스트 기준 스파스 레이어당 인덱서.
- QKV GEMM + norm + RoPE + KV-insert 융합: 1.1–1.6배 더 빠름 512+ 토큰의 프리필과 약 P50 TTFT 19% 감소 TP4에서.
- FlashInfer PrimiTS DSpark 드래프터의 백엔드 주의: 1.3–2배 더 빠름 FlashAttention 4보다도, 5% 낮음 총 순방향 시간.
- Rubin (SM107) MSA 커널 vLLM에도 통합되어 최고 수준의 성능을 제공합니다.
- AMD MI350 시리즈: NVFP4 네이티브 MSA 커널, 인덱서 디코드 컨텍스트 병렬 처리, 듀얼 배치 오버랩, 그리고 모노 커널은 다음을 제공합니다. 2–3× 전반적인 성능 향상.
- 에이전틱 서빙(Agentic Serving): NVIDIA GB300에서 최대 사용자당 418.9 tok/s 지연 시간에 민감한 쪽 끝; NVIDIA Rubin에서는 최대 사용자당 724.9 tok/s 그리고 GPU당 191.5K total tok/s; AMD MI355X에서는 최대 달러당 총 133.3M 토큰 "TCO"는 SemiAnalysis AgentX 벤치마크 기준입니다.
- Day-0 RL 지원: NVFP4 체크포인트에서 veRL, FSDP2 및 LoRA를 사용한 엔드투엔드 RL.
빠른 시작
두 벤더 모두에 대해 사전 빌드된 이미지가 제공됩니다:
- NVIDIA:
vllm/vllm-openai:minimax-m31-flash - AMD:
vllm/vllm-openai-rocm:minimax-m31-flash
모델은 코드가 리뷰되어 업스트림에 병합된 후에야 nightly PyPI wheel에서 사용할 수 있으며, 이는 보통 약 1주일이 걸립니다. 전체 레시피는 다음에 있습니다 vLLM Recipes, 그리고 체크포인트는 다음에 위치합니다: MiniMaxAI/MiniMax-M3.1-Flash.
NVIDIA에서 TP4
최상의 성능을 위해 CUDA 13.4 툴킷을 사용할 것을 권장합니다.
vllm serve MiniMaxAI/MiniMax-M3.1-Flash \
-tp 4 \
--reasoning-parser minimax_m3 \
--block-size 128 \
--kv-cache-dtype nvfp4 \
--attention-config '{"indexer_kv_dtype": "nvfp4"}' \
--speculative-config '{"method":"dspark","num_speculative_tokens":7,"attention_backend":"FLASHINFER_TS","kv_cache_dtype":"fp8","draft_sample_method":"probabilistic"}' \
--disable-hybrid-kv-cache-managerAMD에서 TP4
vllm serve MiniMaxAI/MiniMax-M3.1-Flash \
-tp 4 \
--reasoning-parser minimax_m3 \
--block-size 128 \
--kv-cache-dtype nvfp4 \
--attention-config '{"indexer_kv_dtype": "nvfp4", "indexer_decode_cp": true}' \
--quantization-config.moe mxfp8 \
--speculative-config '{"method":"dspark","num_speculative_tokens":3,"attention_backend":"TRITON_ATTN","kv_cache_dtype":"fp8","draft_sample_method":"probabilistic"}' \
--disable-hybrid-kv-cache-managerMSA 입문서
MiniMax-M3 모델 계열은 전체 어텐션(full attention)을 블록 희소 어텐션(block-sparse attention)의 변형(arXiv 2606.13392)으로 대체하여 추론을 더 효율적으로 만듭니다. KV 캐시는 128 토큰 블록으로 분할됩니다. 경량 인덱서(indexer)는 컨텍스트 내 모든 키에 대해 GQA 그룹당 하나의 인덱스 쿼리로 단일 공유 인덱스-키 헤드를 사용해 점수를 매긴 다음, 그 점수들을 블록당 하나의 점수로 맥스 풀링(max-pool)합니다. 이후 메인 어텐션은 정확하게 실행되지만, 상위 16개 블록에 대해서만 수행되며 가장 최근 블록은 항상 유지됩니다. 이렇게 하면 컨텍스트 길이와 관계없이 각 쿼리가 최대 2,048개의 키로 제한됩니다.
그 효과는 메모리 대역폭에 의해 제한되는 디코드(decode)에서 가장 큽니다. 각 스텝에서 여전히 전체 컨텍스트에 대한 인덱스 키를 스캔하지만, 이는 토큰당 레이어당 128바이트에 불과하며, 덴스 어텐션이 읽는 1,024바이트의 K/V(FP8, 4 KV 헤드 × 128 차원)의 8분의 1입니다. 그 후 전체 K/V는 선택된 2,048개 토큰에 대해서만 읽힙니다. 긴 컨텍스트 디코드에서 스텝당 HBM 트래픽은 덴스 어텐션이 읽는 양의 약 12.5%로 감소합니다.
그림 1: MiniMax Sparse Attention. 각 GQA 그룹의 인덱서가 자신의 상위 KV 블록을 선택하고, 해당 그룹의 모든 쿼리 헤드는 그 블록들에 대해서만 정확하게 어텐션을 수행합니다. 단계별로 살펴보세요.
MiniMax-M3.1 아키텍처의 새로운 점
MiniMax-M3.1은 이전 세대에 비해 추론 효율을 크게 개선했습니다: NVFP4 KV 캐시를 위해 네이티브로 양자화 인식(quantization-aware) 학습되었고, 라우팅된 MoE 가중치는 NVFP4로 저장됩니다. NVFP4 전문가(experts)는 체크포인트를 451.5 GB(MiniMax-M3-MXFP8)에서 250.1 GB로, 즉 44.6% 더 작게 줄입니다. NVFP4 KV 캐시는 토큰당 61,440바이트(FP8) 대신 34,560바이트를 필요로 하며, 이는 토큰당 43.75%의 절약입니다. 함께 보면, DEP4 배치와 256K 토큰 시퀀스를 갖춘 4개의 NVIDIA B300 GPU에서 M3.1은 76개의 동시 시퀀스를 수용하는 반면, FP8 KV 캐시를 사용하는 M3은 28개를 수용하므로, 동일한 하드웨어에서 약 2.7배 더 많은 시퀀스를 처리할 수 있으며, 이는 곧바로 서빙 처리량을 높입니다.
그림 2: MiniMax-M3.1은 인덱서와 희소 어텐션 모두를 위해 NVFP4 KV 캐시를 사용하도록 양자화 인식 학습되었습니다. KV 캐시 dtype, 병렬화, GPU 또는 컨텍스트 길이를 변경하여 몇 개의 시퀀스가 수용되는지 확인해 보세요.
성능 최적화
vLLM은 여러 하드웨어 플랫폼에서 MiniMax-M3.1에 대해 강력한 성능을 제공합니다. NVIDIA GPU에서는 NVFP4 KV 캐시에 최적화된 커널을 제공합니다. 우리의 MSA 저장소(vllm-project/MSA)에는 서로 다른 워크로드와 연산에 맞게 튜닝된 커널이 포함되어 있습니다. 여기에는 MSA 인덱서 프리필(prefill) 및 디코드(decode), 스파스 어텐션 프리필 및 디코드, 그리고 MSA 전용 top-k 커널이 포함됩니다.
그림 3: Blackwell에서 디코드 시(M ≤ 32) MiniMax-M3.1 스파스 디코더 레이어 하나를 커널별로 나타낸 것입니다. 번호가 매겨진 배지는 이 글에서 다루는 최적화를 표시하며, 클릭하면 해당 커널이 강조됩니다.
NVIDIA Blackwell 최적화 MSA 커널
KV 캐시는 NVFP4로 저장되고 쿼리는 FP8로 유지되므로, 행렬 곱셈에 네이티브 NVFP4 텐서 코어 명령어를 사용할 수 없습니다. 대신 커널은 NVFP4 KV 캐시를 FP8로 역양자화(dequantize)한 후 FP8 MMA를 실행합니다. 역양자화 비용을 낮게 유지하기 위해, 우리는 CUDA 13.4에서 도입된 새로운 Blackwell 전용 PTX 명령어인 mul.e4m3x4.e2m1x4.e4m3x4 (SASS QMUL4)를 사용합니다. 이 명령어는 네 개의 NVFP4 값을 스케일 팩터로 스케일링하여 단일 명령어로 네 개의 FP8 값을 생성합니다. 이는 이전의 FP16 왕복 경로보다 훨씬 적은 CUDA 코어 명령어를 사용합니다. 그 결과 인덱서 QK 디코드 커널에서 최대 1.7배, 스파스 어텐션 디코드 커널에서 1.3배의 속도 향상을 얻었습니다.
NVFP4 MegaMoE
MegaMoE는 현대의 전문가 병렬(expert-parallel, EP) 배포를 위한 핵심 빌딩 블록입니다. 우리는 DeepGEMM의 MegaMoE를 NVFP4 정밀도로 확장하고 퓨즈드(fused) MXFP8 공유 전문가와 함께 포크(vllm-project/DeepGEMM)로 오픈소스화했습니다. MegaMoE에 NVFP4 지원을 추가하는 것은 단순한 dtype 교체가 아닙니다. NVFP4는 요소당 바이트를 절반으로 줄이고, 이전의 FP8×FP4 경로에 비해 텐서 코어 처리량을 두 배로 늘립니다. 따라서 커널의 나머지 부분도 함께 변경해야 하며, 그렇지 않으면 파이프라인의 균형이 무너집니다.
그러한 변경 중 하나는 FC1 에필로그(epilogue)에서 TMEM 스테이지를 조기에 해제하는 것입니다. 이전에는 에필로그가 완료된 후에만 TMEM 스테이지가 해제되었습니다. 에필로그는 전적으로 레지스터에서 실행되기 때문에 이러한 대기는 불필요합니다. TMEM은 어떤 산술 연산이 수행되기 전에, 즉 accumulator가 레지스터에 로드되는 즉시 해제될 수 있습니다. 이를 통해 NVFP4 연산 속도 향상이 가장 중요한 프리필에서 전체 커널 지연 시간이 20% 단축됩니다. 또한 전체 프리필 처리량이 7% 향상됩니다.
NVFP4 인덱서 DCP (decode context parallelism)
저지연(low-latency) 서빙에서는 각 GPU가 전체 컨텍스트에 대해 자체 인덱스 헤드를 스코어링합니다. 4개의 GPU에 걸쳐 이는 모든 인덱서 레이어가 전체 인덱스 캐시를 4번씩 읽는다는 것을 의미합니다. 인덱서 DCP는 대신 컨텍스트를 기준으로 작업을 분할합니다. 각 GPU는 4분의 1 페이지에 대해 4개 헤드 전부를 스코어링합니다. 그런 다음 NVLink를 통해 헤드별 로컬 top-16을 해당 헤드를 소유한 GPU로 전송하고, 그 GPU가 후보들을 병합하여 최종 top-16을 만듭니다. 선택은 정확하게 유지되며, 4× NVIDIA GB300 GPU에서 512K 컨텍스트일 때 인덱서가 스파스 레이어당 최대 3.3배 빠르게 실행됩니다.
QKV GEMM + norm + RoPE + KV 삽입 퓨전
MiniMax-M3.1의 QKV 및 인덱서 프로젝션은 이전에 전체 QKV 텐서를 HBM에 기록했습니다. 그런 다음 두 번째 커널이 norm, RoPE 및 KV 캐시 삽입을 위해 이를 다시 읽었습니다. 우리는 전체 체인을 에필로그에서 FP32 accumulator를 헤드별로 처리하는 단일 GEMM 커널로 퓨전했습니다. 에필로그는 쿼리와 인덱스 쿼리에 norm과 RoPE를 적용합니다. 또한 K, V 및 인덱스 키를 NVFP4로 양자화하여 캐시에 직접 기록합니다. QKV 텐서는 HBM에 닿지 않습니다. GB300에서 512 토큰 이상의 프리필 배치가 1.1–1.6배 빠르게 실행되며, TP4에서 P50 TTFT(time-to-first-token)가 약 19% 감소합니다.
DSpark drafter를 위한 FlashInfer PrimiTS
MiniMax-M3.1은 DSpark를 추측 디코딩(speculative decoding) drafter로 사용하며, 이는 4096 토큰 슬라이딩 윈도우로 비인과(non-causal) GQA를 실행합니다. 이전에 vLLM은 디코드 셰이프에 최적화되지 않은 FlashAttention 4에서 drafter를 실행했습니다. 우리는 이를 FlashInfer의 PrimiTS 백엔드로 전환했습니다. PrimiTS는 FlashAttention 4보다 1.3–2배 빠르며 전체 포워드 시간을 5% 단축합니다.
NVIDIA GB300에서의 에이전틱 워크로드 벤치마크
vLLM은 에이전틱 서빙 워크로드에서 강력한 성능을 제공합니다. 우리는 NVIDIA GB300에서 day-0 이미지를 SemiAnalysis AgentX 벤치마크(자세한 내용은 이전 글인 previous post에 있음)로 벤치마크했습니다. 프론티어의 지연 시간 민감 구간에서 MiniMax-M3.1-Flash는 사용자당 초당 418.9 토큰을 유지합니다. 프론티어의 더 안쪽 구간에서는 GPU당 초당 총 38.6K 토큰을 서빙하면서 각 사용자에게 초당 200 토큰 이상을 유지합니다. 처리량 구간의 끝에서는 GPU당 초당 153.8K 토큰에 도달하며, 이는 가장 상호작용이 많은 지점의 약 24배이고, 이때도 각 사용자는 여전히 초당 약 127 토큰을 받습니다.
그림 4: NVIDIA GB300에서 MiniMax-M3.1-Flash의 AgentX 파레토 프론티어로, 7개의 추측 토큰과 3.16–3.26 토큰(첫 토큰 포함)의 합성 수용 길이를 사용합니다. 지표를 보려면 점 위에 마우스를 올리십시오.
NVIDIA Rubin 최적화 MSA
우리는 이 모델을 NVIDIA Rubin GPU에서도 최적화했습니다. NVFP4에서 FP8로의 변환 오버헤드를 완화하기 위해, 우리는 NVFP4를 FP16으로 직접 변환하고 인덱서의 스코어 MMA를 FP16으로 실행합니다. 이를 통해 역양자화 명령어를 약 3분의 1 줄이고, FP8 MMA를 실행하기 위한 E4M3 재반올림을 수행하지 않는 정확한 스코어를 얻습니다.
쿼리가 ≤4개일 때, 단일 헤드 인덱서 디코드 커널은 더 나아갑니다: K 값마다 한 번씩 적용하는 대신 SM107의 packed fma.rn.f32x2.f16x2,를 MMA 결과마다 한 번씩 각 블록 스케일에 적용합니다. 또한 SM당 3개의 CTA를 실행함으로써 더 많은 지연 시간 은닉(latency hiding)이 가능해집니다. Rubin의 더 큰 공유 메모리(Blackwell의 228 KB 대비 328 KB)와 추가 Tensor Memory 컬럼(Blackwell의 512 대비 576)이 이를 가능하게 합니다.
마지막으로, Rubin은 Blackwell보다 SM이 더 많기 때문에 작업 플래너가 SM 수를 기준으로 타일 크기를 정하여, 작업이 Rubin의 212개 SM 전체에 고르게 분산됩니다.
프리필 sparse attention 또한 locality 도메인 최적화의 이점을 얻습니다. 우리는 CUDA 가상 메모리 API를 통해 부분 버퍼를 할당하여 2 MB 페이지가 두 도메인 사이에서 교대로 배치되도록 하고, 결합된 커널은 해당 타일의 데이터가 있는 도메인에 SM이 위치한 CTA에 각 타일을 넘깁니다. Rubin에서 프리필 & 디코드 attention 커널은 명령당 K=64의 dense FP8 MMA를 사용하는데, 이는 MMA 명령 수를 절반으로 줄이고 Blackwell의 FP8 처리 속도의 2배로 실행됩니다.
NVIDIA Rubin에서의 에이전틱 워크로드 벤치마크
NVIDIA Rubin에서 MiniMax-M3.1-Flash는 동일한 벤치마크에서 프론티어를 한층 더 밀어냅니다. 지연 시간에 민감한 영역에서는 사용자당 초당 724.9 토큰을 유지합니다. 프론티어의 더 앞쪽에서는 GPU당 초당 총 157.3K 토큰을 처리하면서 각 사용자에게 초당 200 토큰 이상을 유지해 줍니다. 처리량 영역에서는 각 사용자가 여전히 초당 약 134 토큰을 경험하는 가운데 GPU당 초당 191.5K 토큰에 도달하며, 이는 동일한 사용자당 속도 기준 GB300의 약 1.5배입니다.
그림 5: NVIDIA Rubin에서 MiniMax-M3.1-Flash의 AgentX 파레토 프론티어. 점 위에 마우스를 올리면 구성과 지표를 볼 수 있습니다.
AMD GPU 지원
AMD GPU에서는 NVFP4 KV 캐시 지원을 제공하여, AMD 배포 환경에서도 저정밀 포맷을 사용해 KV 캐시 메모리를 절감할 수 있습니다. 디코드를 위해서는 긴 컨텍스트 디코드를 가속하는 indexer DCP와 저지연 추론을 가속하는 mono 커널을 추가했습니다. 프리필을 위해서는 시퀀스 병렬화와 듀얼 배치 오버랩이 엔진 내부 통신을 줄이고, 새로운 KV 캐시 레이아웃은 각 KV 블록이 단 한 번의 전송으로 디코드 노드로 이동할 수 있게 합니다. MSA 및 mono 커널은 FlyDSL 팀의 도움을 받아 FlyDSL, 즉 GPU 커널용 AMD의 Python DSL로 구축되었습니다.
NVFP4 MSA 커널
MiniMax-M3.1은 메인 attention과 indexer 모두에 대해 NVFP4 KV 캐시(QAT)로 학습되었지만, CDNA4에는 NVFP4를 역양자화하는 네이티브 명령이 없습니다. MSA 커널을 빠르게 유지하기 위해 우리는 역양자화를 테이블 조회로 변환했습니다. 가능한 E4M3 스케일은 256개, E2M1 크기는 8개뿐이므로, 우리는 스케일이 적용된 모든 값을 FP8로 이미 반올림한 상태로 LDS의 2 KB 테이블에 미리 계산해 둡니다. 한 번의 v_perm_b32 바이트 순열과 부호 비트를 위한 한 번의 XOR만으로 4개의 FP4 값을 FP8로 변환합니다. 또한 커널은 이를 공유하는 최대 64개 요청에 대해 공유 접두사 페이지를 한 번만 역양자화합니다. 이러한 요소들이 결합되어, sparse decode attention이 선택된 블록을 FP8로 변환하여 FP8 attention 커널을 실행하는 것보다 최대 2.5배 빨라집니다.
NVFP4 indexer DCP
우리는 NVIDIA에서와 마찬가지로 AMD에서도 동일한 indexer 디코드 컨텍스트 병렬화를 사용하며, CDNA4에서는 추가적인 이점을 제공합니다. DCP가 없으면 TP4의 각 GPU가 전체 컨텍스트에 대해 자체 인덱스 헤드를 스코어링하므로 인덱스 캐시가 4번 읽힙니다. 또한 행렬 코어가 충분히 활용되지 않습니다. DSpark-3 디코드 스텝은 요청당 4개의 쿼리 행만 있어 16×16×128 FP8 MFMA의 16개 열 중 4개만 채웁니다. DCP를 사용하면 각 GPU가 컨텍스트의 4분의 1에 대해 4개 헤드 전부를 스코어링하므로, 4헤드 × 4행이 16개 열 전부를 채웁니다. 단일 커널이 인덱스 쿼리를 교환하고, 자신의 블록을 스코어링하며, Infinity Fabric을 통해 각 헤드의 스코어를 소유 GPU의 메모리에 직접 기록합니다. 디바이스 측 핸드셰이크가 HIP 그래프 내에서 이것이 작동하도록 유지합니다. 이후 소유자는 이전과 같이 상위 16개를 선택하며, 스코어가 단일 GPU 버전과 비트 단위로 동일하기 때문에 선택은 정확합니다. 4× MI355X에서 indexer는 30K–210K 토큰의 45개 요청에 대해 sparse 레이어당 최대 2.8배 빠르게 실행됩니다.
SP + DBO 프리필과 1회 읽기 KV 전송
TP4에서 MI355X의 긴 프롬프트 프리필은 통신에 의해 제한됩니다. 노드 내 GPU 간 통신과 프리필 노드와 디코드 노드 간 통신 모두가 그렇습니다. 엔진 내부에서는 듀얼 배치 오버랩(DBO)이 텐서 병렬 콜렉티브를 다른 마이크로배치의 연산 뒤로 숨깁니다. 시퀀스 병렬화(SP)는 트래픽 자체를 줄입니다. 각 GPU는 토큰의 4분의 1을 유지하고, attention 출력은 MXFP8로 all-to-all 교환되어 각 GPU가 자신의 토큰에 대해 전체 o_proj 를 실행하며, MoE 출력은 reduce-scatter됩니다. 이를 통해 GPU당 트래픽이 레이어당 토큰당 약 36 KB에서 20 KB로 감소하고, 정규화, 양자화, 라우터는 토큰의 4분의 1에 대해서만 실행됩니다.
더 빠른 프리필 엔진은 KV 캐시 역시 디코드 노드에 빠르게 도달할 수 있을 때만 도움이 됩니다. vLLM의 레이어별 KV 캐시 레이아웃은 각 KV 블록을 125개의 작은 페이지로 분할하며, 각 페이지는 자체적인 NIXL RDMA 읽기가 필요합니다. 우리는 각 블록을 하나의 연속된 1.82 MB 행에 저장하는 블록 외부(outer) 레이아웃으로 전환하여, NIXL이 단 한 번의 읽기로 이동시킬 수 있게 했습니다. 이러한 엔진과 KV 전송 변경을 결합하면 4× MI355X에서 16K+ 토큰의 프리필 배치가 1.8–2.1배 빨라집니다.
저지연 mono 커널
낮은 동시성에서 AMD GPU의 디코드는 런치에 의해 제한됩니다. 커널 런치 오버헤드가 실제 연산보다 더 많은 시간을 차지합니다. Mono decode는 각 sparse MoE 디코더 레이어를 단일 FlyDSL 커널 런치로 실행하여 이를 해결합니다. 이 한 번의 런치가 QKV 프로젝션과 sparse attention부터 텐서 병렬 all-reduce 및 MXFP4 MoE까지 모든 것을 처리하며, 약 1,170개의 커널 런치를 대체합니다. TP4의 MI350X에서 이를 통해 디코드 스텝이 최대 2.3배 빨라지고, 낮은 동시성에서 8K-in/1K-out 처리량이 2배가 됩니다. 에이전틱 코딩 트레이스에서 상호작용성이 50–65% 향상됩니다.
AMD MI355X에서의 에이전틱 워크로드 벤치마크
우리의 AMD 구현은 비용 대비 성능 면에서도 강력합니다. InferenceX AgentX 벤치마크에서 MiniMax-M3.1-Flash는 프론티어의 지연 시간 민감 영역에서 사용자당 초당 331.0 토큰을 유지합니다. 프론티어의 더 앞쪽에서는 TCO당 총 34.6M 토큰을 제공하면서 각 사용자에게 초당 170 토큰 이상을 유지해 줍니다. 비용 효율 영역에서는 가장 상호작용성이 높은 지점의 거의 10배인 TCO당 133.3M 토큰에 도달하며, 각 사용자는 여전히 초당 약 79 토큰을 경험합니다.
그림 6: AMD MI355X에서 MiniMax-M3.1-Flash의 TCO당 총 토큰 기준 AgentX 파레토 경계. c1과 c4는 3.2 토큰의 합성 수용 길이에 7개의 추측 토큰을 사용하며, 다른 지점들은 2.45 토큰에 3개의 추측 토큰을 사용합니다. 지점에 마우스를 올리면 해당 메트릭을 볼 수 있습니다.
Day-0 RL 지원
우리는 MiniMax-M3.1의 NVFP4 체크포인트에서 시작하여 RL을 수행하고 rank-32 LoRA 어댑터만 학습합니다. veRL 트레이너는 엔진이 서빙하는 것과 동일한 방식으로 베이스 모델을 양자화합니다. 즉, 라우팅된 전문가에는 NVFP4를, 다른 projection에는 MXFP8을 적용하며, 각 스텝 후에는 어댑터만 엔진에 동기화합니다. 엔진 측에서는 expert LoRA가 FlashInfer의 TRTLLM NVFP4 MoE 커널 내부에서 실행되므로, 베이스 전문가들은 여전히 일반 서빙 커널에서 실행됩니다.
학습 전에 우리는 트레이너와 엔진이 세 가지 측면에서 일치하는지 확인했습니다. 엔진이 트레이너가 보내는 것과 정확히 동일한 가중치를 수신하는지, 양쪽이 각 토큰을 동일한 전문가에게 라우팅하는지(routing replay), 그리고 양쪽이 동일한 토큰에 근접한 logprob을 부여하는지 확인했습니다.
남은 격차는 토큰 수준 중요도 샘플링(TIS)으로 보정되며, 중요도 비율은 2로 제한됩니다. 각 배치가 단일 옵티마이저 스텝을 받기 때문에, 트레이너는 롤아웃 logprob을 old logprob으로 사용하고 이를 재계산하는 추가 포워드 패스를 건너뜁니다.
16 GB300 GPU로 DAPO-Math-17K에서 200 GRPO 스텝을 수행하면 AIME-2024 정확도가 36.3%에서 67.5%로 상승합니다. 동일한 실행에서 학습 보상은 −0.06에서 0.67로 상승하고, train/rollout KL은 낮게 유지되며 0.040에서 0.024로 하락합니다.
그림 7: veRL을 사용한 DAPO-Math-17K(16× GB300, 200 GRPO 스텝)에서 MiniMax-M3.1-Flash의 Day-0 RL: AIME-2024 정확도, 학습 보상, 그리고 train/rollout KL. 탭을 사용하여 전환할 수 있습니다.
감사의 글
우리는 MiniMax-M3.1-Flash를 오픈소스로 공개한 MiniMax 팀에 진심으로 감사드립니다. 또한 vLLM에서 이 모델에 대한 day-0 지원을 제공한 Inferact, NVIDIA, AMD(모노 커널을 담당한 Hongxia Yang, Felix Marty, Andy Luo, Felix Li, Hattie Wu, Gilbert Lei, Peng Sun), AMD 커널 작업을 도운 FlyDSL 팀, 그리고 vLLM 커뮤니티에도 감사를 전합니다.