miniTE가 NVFP4 강화학습의 엔진 간 실행 격차를 진단하고 줄인다
miniTE: Diagnosing and Bridging the Execution Gap in Native NVFP4 Reinforcement Learning
무엇인가
이 논문은 LLM 강화학습에서 학습 엔진과 샘플링 엔진이 분리된 구조에서 네이티브 NVFP4를 쓸 때 생기는 실행 격차를 다룬다. RL에서는 학습기가 계산한 로그확률과 샘플러가 계산한 로그확률이 중요도 비율과 클리핑 판단에 들어가므로, 같은 파라미터 버전과 같은 형식 이름을 맞춰도 커널·누산 순서·스케일 적용 위치가 다르면 최적화가 달라진다. 논문은 NVFP4의 비트 폭이나 전문가 ID 일치만으로는 정책 평가 일관성을 보장할 수 없다고 주장한다.
어떻게 동작하나
저자들은 Qwen3-30B-A3B-Base를 고정하고 teacher forcing으로 동일 토큰 시퀀스를 채점하는 frozen-policy 실험을 한다. BF16에서 로그확률 차이 절댓값의 P99가 0.1271 nats였는데 NVFP4에서 0.2911로 커졌고, paired increase는 0.1641, 95% 신뢰구간은 [0.1311, 0.2005]였다. NVFP4 토큰 1.203%가 분석 클리핑 경계를 넘는 수치 비율을 보인 반면 BF16은 0.627%였다. 또한 대상 레이어 라우팅을 일치시켜도 FC1 상대 L2 차이가 0.0381~0.6124, FC2가 0.0810~0.7624 남았고, 샘플러 활성화 outer scale만 per-tensor에서 per-token으로 바꿔도 FC1/FC2 차이가 그대로였다. 이는 완전한 연산 경로 명세가 필요함을 보여준다.
무엇과 다른가
miniTE는 진단·수치 정렬·네이티브 W4A4 GEMM을 묶은 경량 프레임워크다. 실행 명세에는 스케일 도메인, 반올림, 논리 레이아웃, 캐스트와 라우터 계수 위치를 기록한다. strict execution reference는 학습기 커널·수식·리덕션 순서를 샘플러에 맞추고 native NVFP4 expert forward와 BF16 gradient를 유지한다. 실용 경로는 토큰별 활성화 outer scale을 쓰고, 길이 16 E4M3 블록 스케일과 E2M1 코드를 사용하며 Hadamard 변환과 stochastic rounding을 끈다. 각 토큰 행의 g^x=max|X|/(6·448), 가중치 행 g^w=max|W|/(6·448)를 FP32 epilogue에서 곱한 뒤 BF16으로 캐스트한다. 역전파는 저장된 원본 BF16 활성화·가중치를 쓰는 straight-through 근사로 BF16 GEMM을 수행해 역방향 양자화 비용을 피한다. 라우터 확률은 FC2 전 SwiGLU 활성화에 적용되고 expert 결합 순서를 패딩·양자화·캐스트가 보존한다.
어떻게 쓰나
구현 최적화는 양자화와 grouped GEMM을 연결된 데이터플로로 다룬다. 양자화기가 packed FP4 코드·블록 스케일·outer scale 정보를 GEMM이 바로 소비하는 연속 버퍼에 쓰고, 디바이스 오프셋으로 expert 경계를 표현하며 메타데이터와 워크스페이스를 재사용한다. FC1에서는 reference가 sort→pad(X)→amax scan→quant 순서인 것을 miniTE는 sort+amax→pad(X,amax)→quant로 바꿔 별도 활성화 스캔을 없앤다. FC2는 라우터 가중 활성화 생산자에서 maxima를 받아 실제 소비 텐서와 맞춘다. Fused scale layout과 FC1/FC2별 GEMM 설정을 사용하고, 사용자는 공통 expert-computation 인터페이스에서 grouped-linear 모듈을 교체해 통합한다.
전제와 한계
Qwen3-30B-A3B-Base와 DAPO-Math-17k, TIS를 쓴 1,000스텝 비교에서 miniTE는 naive NVFP4보다 늦은 구간 보상을 높였지만 그 구간에서는 BF16이 더 높았다. 999스텝에서 miniTE는 naive NVFP4 대비 AIME 2024 +10.00%p, AIME 2025 +3.88%p, MATH-500 +0.55%p, GSM8K +0.08%p를 냈고 다섯 과제 평균은 54.57%에서 56.35%로 올라 BF16보다 2.49%p 낮았다. IFEval은 miniTE 38.40%, BF16 38.36%, naive NVFP4 43.99%로 과제별 순위가 달랐다. 단일 B300 GPU 노드의 완전한 learner 업데이트는 33,540 tokens/s로 BF16의 1.39배, TE NVFP4의 1.47배였고, 반복 core 연구는 32,517 tokens/s와 trial-ID paired trimmed 1.334배(BF16 대비)를 기록했다. 같은 forward recipe의 expert-forward는 TE U3045 대비 FC1/FC2와 네 workload에서 기하평균 2.46배, 범위 1.587~3.065배였다. strict reference는 TIS 없이 로그확률 차이 약 10^-8을 보였고, unfused quantization/grouped-GEMM API 비교는 28개 bitwise 검사를 모두 통과했다. BF16 backward는 MXFP8 backward보다 forward+backward 지연을 여덟 모듈 셀 모두에서 줄여 기하평균 약 1.21배였고, FP32 기준 gradient 상대 L2 최대 차이는 BF16 0.001663, MXFP8 0.037653이었다.
개발자에게 이 논문은 NVFP4 RL 도입 시 처리량만 보지 말고 learner와 sampler의 로그확률 차이, 양자화 operand, expert 출력, 정책 평가 경계를 진단해야 한다는 실무 기준을 준다. balanced module 타이밍은 전체 learner 순위를 예측하지 못했고, BF16 backward를 쓴 miniTE는 여덟 개 module forward+backward 셀 중 일곱 개에서 BF16보다 느렸다. GB200 라우팅 대조에서는 mock 데이터와 랜덤 가중치가 레이어당 평균 50.8개 expert를 활성화한 반면 사전학습 가중치와 실제 DAPO 텍스트는 128개 중 126.2개를 활성화해 워크로드가 크게 불균형했다. standalone NVFP4 서빙은 고정 길이 생성에서 80,676 tokens/s로 BF16 49,119보다 1.64배 빨랐지만, colocated RL 창에서는 learner 시간이 47.04초에서 42.56초로 줄어든 대신 weight conversion/synchronization이 9.94초에서 55.26초로 늘어 두 단계 합이 BF16 56.98초, miniTE 97.82초가 됐다. 이 합은 rollout 등 다른 반복 단계를 빼므로 전체 RL 반복의 우열을 결정하지는 않는다.
저자들이 밝힌 한계는 분명하다. 실용 경로는 평균 평가 품질에서 BF16에 못 미치고 strict execution 수준의 엔진 간 일치에도 도달하지 못한다. 실행을 맞춰도 E2M1 값과 E4M3 블록 스케일에서 오는 양자화 오차가 사라지지 않으며, 남은 품질 격차가 양자화 오차인지 잔여 실행 차이인지 분리하지 못한다. end-to-end 효율도 아직 입증되지 않았고, colocated 측정은 일부 단계만 포함해 구성요소 속도향상이 전체 반복 개선을 보장하지 않는다. weight conversion과 synchronization을 줄이는 일, online amax-quantization-GEMM fusion의 수치·성능 검증, 스케일이 누산 중 변할 때의 accumulator rescaling과 SM 자원 제약 조율이 향후 과제다. 학습 증거도 하나의 MoE 모델, 구성별 1회 실행, Blackwell 하드웨어에 한정되어 모델·과제·시드·하드웨어 전반으로의 검증이 남아 있다.