[SGLang] TestQwen35WithHiCache CI 테스트 분리 및 수정
PR 링크: sgl-project/sglang#21371 상태: Merged | 변경: +128 / -103
들어가며
Qwen3.5-27B 모델의 HiCache 테스트(TestQwen35WithHiCache)가 FP4 모델 테스트와 같은 파일에 있어서 CI에서 충돌이 발생했다. FP4 테스트는 B200 GPU suite에 등록되어 있고, HiCache 테스트는 H100 suite에서 돌아야 하는데 하나의 파일로 묶여 있어 suite 분리가 불가능했다.
이 PR은 TestQwen35WithHiCache를 별도 파일로 추출하고, max_tokens를 4000에서 16000으로 올려 reasoning 모델의 긴 출력에 대응한다.
핵심 코드 분석
파일 분리
Before: 하나의 파일 test_qwen35_models.py에 FP4 + HiCache 테스트가 공존
# test_qwen35_models.py
register_cuda_ci(est_time=1400, suite="stage-c-test-4-gpu-b200")
class TestQwen35FP4(unittest.TestCase): ...
class TestQwen35WithHiCache(CustomTestCase): ...
After: HiCache 테스트를 별도 파일로 분리
# test_qwen35_hicache.py (새 파일)
register_cuda_ci(est_time=600, suite="stage-c-test-4-gpu-h100")
class TestQwen35WithHiCache(CustomTestCase):
...
def _run_gsm8k(self):
args = SimpleNamespace(
...
max_tokens=16000, # 4000 -> 16000
...
)
max_tokens 증가 이유
Qwen3.5는 reasoning parser(--reasoning-parser qwen3)를 사용하는데, CoT(Chain-of-Thought) 출력이 길어 4000 토큰으로는 gsm8k 문제의 정답까지 도달하지 못하는 경우가 있었다. 16000으로 늘려 CI 정확도 변동을 줄였다.
왜 이게 좋은가
- Suite 분리 가능: FP4는 B200 전용, HiCache는 H100 전용으로 독립 스케줄링이 가능해진다.
- CI 시간 최적화:
est_time=600으로 별도 추정하여 CI 스케줄러의 배치 계획이 정확해진다. - 안정성 향상: max_tokens 증가로 reasoning 모델의 긴 출력에 의한 false negative가 줄어든다.
정리
테스트 파일 분리는 단순한 리팩터링 같지만, 하드웨어별 CI suite를 운영하는 대규모 ML 프로젝트에서는 필수적인 인프라 작업이다. max_tokens 조정은 모델 특성(reasoning)을 이해해야만 잡을 수 있는 미묘한 문제였다.
참고 자료
이 글은 AI(Claude)의 도움을 받아 작성되었습니다. 코드 분석과 해석에서 오류가 있을 수 있으니, 정확한 내용은 원본 PR을 참고해주세요.
관련 포스트
PR Analysis 의 다른글
- 이전글 [Ray] 압력 기반 메모리 모니터 도입으로 메모리 관리 고도화
- 현재글 : [SGLang] TestQwen35WithHiCache CI 테스트 분리 및 수정
- 다음글 [Open WebUI] saveChatHandler에서 불필요한 채팅 목록 재조회 제거
댓글