SGLang Diffusion에 기여하기
SGLang Diffusion에 기여하기
이 가이드는 SGLang Diffusion 모듈(sglang.multimodal_gen)에 기여하기 위한 요구사항을 정리해요.
기여자 가이드
- 새 Diffusion 모델 지원하기: 새 diffusion 파이프라인 추가를 위한 구현 가이드
- 헬퍼 소유권: 공유·모델별 유틸리티를 어디에 둘지
- CI 성능: perf 베이스라인 갱신·재생성
AI 지원("Vibe Coding") PR에 관해
Vibe-code로 만든 PR도 환영해요 — 우리는 코드가 어떻게 만들어졌는지가 아니라 품질로 판단해요. 모든 PR에 기준은 동일해요.
- 과도한 주석 달지 않기. 이름이 다 말해 주면 docstring을 생략하세요.
- 과도한 예외 처리하지 않기. 실제로 거의 발생하지 않는 오류까지 막으려 하지 마세요.
- 제출 전에 테스트하기. AI 생성 코드는 미묘하게 틀릴 수 있어요 — 정확성을 end-to-end로 검증하세요.
커밋 메시지 규칙
깔끔한 히스토리를 유지하기 위해 구조화된 커밋 메시지 형식을 따라요.
형식:
[diffusion] <scope>: <subject>
예시:
[diffusion] cli: add --perf-dump-path argument[diffusion] scheduler: fix deadlock in batch processing[diffusion] model: support Stable Diffusion 3.5
규칙:
- 접두사: 항상
[diffusion]으로 시작해요. - 범위(선택):
cli,scheduler,model,pipeline,docs등 - 제목: 명령형, 짧고 명확하게(예: "added feature"가 아니라 "add feature").
성능 리포트
지연(latency), 처리량(throughput), 또는 메모리 사용량에 영향을 주는 PR이라면 성능 비교 리포트를 제공해야 해요.
리포트 만드는 법
-
베이스라인: 벤치마크(단일 생성 작업)를 실행하세요.
$ sglang generate --model-path <model> --prompt "A benchmark prompt" --perf-dump-path baseline.json -
새 버전: server_args나 sampling_params를 수정하지 않은 채 같은 벤치마크를 실행하세요.
$ sglang generate --model-path <model> --prompt "A benchmark prompt" --perf-dump-path new.json -
비교: 비교 스크립트를 실행하면 콘솔에 Markdown 표가 출력돼요.
$ python python/sglang/multimodal_gen/benchmarks/compare_perf.py baseline.json new.json [new2.json ...] ### Performance Comparison Report ... -
붙여넣기: 그 표를 PR 설명에 붙여넣으세요.
CI 기반 변경 보호
변경을 보호하기 위해 pr-test 또는 nightly-test 스위트에 테스트를 추가하는 걸 고려하세요. 특히 다음 PR이라면요.
- 새 모델 지원
testcase_configs.py에 그 새 모델의 테스트케이스를 추가하세요.
- 중요한 기능 지원 또는 수정
- 성능을 크게 개선
해당 테스트케이스를 실행한 뒤, 콘솔 안내가 있으면 따라 perf_baselines.json에 베이스라인을 갱신하거나 추가하세요.
예시는 test를 보세요.