본문으로 건너뛰기

[sglang] CI 테스트 최적화: MXFP8 Gemm에 오프라인 양자화 체크포인트 적용

PR 링크: sgl-project/sglang#21625 상태: Merged | 변경: +3 / -4

들어가며

양자화된 모델 테스트는 CI에서 중요한 부분입니다. 기존 MXFP8 Gemm 테스트는 BF16 모델을 로딩한 후 --quantization mxfp8 플래그로 런타임에 양자화를 수행했습니다. 이번 PR은 사전 양자화된 체크포인트(zianglih/Qwen3-4B-Instruct-2507-MXFP8)를 직접 사용하도록 변경하여, 불필요한 런타임 양자화 오버헤드를 제거합니다.

핵심 코드 분석

모델 경로 및 인자 변경

Before:

BF16_MODEL_PATH = "Qwen/Qwen3-4B-Instruct-2507"

class MXFP8GemmBase:
    @classmethod
    def setUpClass(cls):
        cls.model = try_cached_model(BF16_MODEL_PATH)
        other_args = [
            "--trust-remote-code",
            "--quantization",
            "mxfp8",
            "--fp8-gemm-backend",
            cls.backend,
        ]

After:

MXFP8_MODEL_PATH = "zianglih/Qwen3-4B-Instruct-2507-MXFP8"

class MXFP8GemmBase:
    @classmethod
    def setUpClass(cls):
        cls.model = try_cached_model(MXFP8_MODEL_PATH)
        other_args = [
            "--trust-remote-code",
            "--fp8-gemm-backend",
            cls.backend,
        ]

--quantization mxfp8 인자가 제거되고, 이미 MXFP8로 양자화된 모델 체크포인트를 직접 로드합니다. 또한 Triton 백엔드 테스트에는 PCG 캡처 시간이 너무 오래 걸리는 문제로 @unittest.skip 데코레이터가 추가되었습니다.

왜 이게 좋은가

  1. CI 속도 향상: 런타임 양자화 과정을 건너뛰어 테스트 시작이 빨라집니다.
  2. 재현성: 오프라인 체크포인트는 양자화 결과가 고정되므로, 양자화 코드 변경에 의한 flaky test를 방지합니다.
  3. 관심사 분리: Gemm 백엔드 테스트가 양자화 로직의 정확성에 의존하지 않게 됩니다.

정리

3줄 추가, 4줄 삭제의 작은 변경이지만, CI 테스트 철학의 중요한 전환입니다. 테스트 대상(Gemm 백엔드)과 테스트 환경(양자화)의 관심사를 분리함으로써 더 안정적인 CI를 달성합니다.

참고 자료

⚠️ 알림: 이 분석은 AI가 실제 코드 diff를 기반으로 작성했습니다.

댓글

관련 포스트

PR Analysis 의 다른글