SGLang Diffusion에 기여하기

SGLang Diffusion에 기여하기

이 가이드는 SGLang Diffusion 모듈(sglang.multimodal_gen)에 기여하기 위한 요구사항을 정리해요.

출처: SGLang Diffusion에 기여하기

기여자 가이드

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이라면 성능 비교 리포트를 제공해야 해요.

리포트 만드는 법

  1. 베이스라인: 벤치마크(단일 생성 작업)를 실행하세요.

    $ sglang generate --model-path <model> --prompt "A benchmark prompt" --perf-dump-path baseline.json
    
  2. 새 버전: server_args나 sampling_params를 수정하지 않은 채 같은 벤치마크를 실행하세요.

    $ sglang generate --model-path <model> --prompt "A benchmark prompt" --perf-dump-path new.json
    
  3. 비교: 비교 스크립트를 실행하면 콘솔에 Markdown 표가 출력돼요.

    $ python python/sglang/multimodal_gen/benchmarks/compare_perf.py baseline.json new.json [new2.json ...]
    ### Performance Comparison Report
    ...
    
  4. 붙여넣기: 그 표를 PR 설명에 붙여넣으세요.

CI 기반 변경 보호

변경을 보호하기 위해 pr-test 또는 nightly-test 스위트에 테스트를 추가하는 걸 고려하세요. 특히 다음 PR이라면요.

  • 새 모델 지원
    • testcase_configs.py에 그 새 모델의 테스트케이스를 추가하세요.
  • 중요한 기능 지원 또는 수정
  • 성능을 크게 개선

해당 테스트케이스를 실행한 뒤, 콘솔 안내가 있으면 따라 perf_baselines.json에 베이스라인을 갱신하거나 추가하세요.

예시는 test를 보세요.

더 알아보기 (Learn more)