python -m sglang.launch_server --help
이 명령어 치면 100개 넘는 파라미터가 쏟아져요. 뭐가 뭔지 몰라서 그냥 기본값으로 쓰는 경우가 많은데, 파라미터를 제대로 알면 성능이 2~3배 차이 나요.
전체 파라미터를 카테고리별로 완전 정리해 드릴게요.
1. 모델 및 토크나이저
--model-path (필수)
모델 가중치 경로예요. 로컬 폴더 또는 HuggingFace repo ID를 받아요.
# HuggingFace에서 다운로드
python -m sglang.launch_server \
--model-path meta-llama/Llama-3.1-8B-Instruct
# 로컬 폴더
python -m sglang.launch_server \
--model-path /data/models/llama-3.1-8b
# --model 으로도 쓸 수 있음 (별칭)
python -m sglang.launch_server \
--model meta-llama/Llama-3.1-8B-Instruct
--tokenizer-path
토크나이저 경로예요. 기본값은 --model-path와 동일해요. 모델과 토크나이저가 다른 경로에 있을 때 사용해요.
python -m sglang.launch_server \
--model-path /data/models/my-finetuned-model \
--tokenizer-path meta-llama/Llama-3.1-8B-Instruct # 원본 토크나이저 사용
--tokenizer-mode
토크나이저 모드예요. 기본값 auto.
# auto: 빠른 토크나이저 우선 사용 (기본값, 권장)
--tokenizer-mode auto
# slow: 느린 토크나이저 강제 사용 (특수 경우에만)
--tokenizer-mode slow
--tokenizer-worker-num
토크나이저 매니저의 워커 수예요. 기본값 1. 요청이 많을 때 늘리면 토크나이징 병목이 해소돼요.
# 고트래픽 환경에서
python -m sglang.launch_server \
--model-path meta-llama/Llama-3.1-8B-Instruct \
--tokenizer-worker-num 4
--skip-tokenizer-init
토크나이저 초기화를 건너뛰어요. input_ids를 직접 전달할 때 사용해요.
python -m sglang.launch_server \
--model-path meta-llama/Llama-3.1-8B-Instruct \
--skip-tokenizer-init
# 이 경우 input_ids 직접 전달
response = client.post("/generate", json={
"input_ids": [1, 29871, 13, 3645, ...], # 토큰 ID 직접
"sampling_params": {"max_new_tokens": 128}
})
--load-format
모델 가중치 포맷이에요. 기본값 auto.
# auto: safetensors 우선, 없으면 pt (기본값, 대부분 사용)
--load-format auto
# safetensors: 명시적으로 safetensors만 로드
--load-format safetensors
# gguf: GGUF 양자화 모델 로드
python -m sglang.launch_server \
--model-path /models/llama-3.1-8b-q4.gguf \
--load-format gguf
# bitsandbytes: bnb 양자화 모델
--load-format bitsandbytes
# dummy: 랜덤 가중치로 초기화 (프로파일링/테스트용)
--load-format dummy
# npcache: numpy 캐시로 로딩 속도 향상
--load-format npcache
# layered: 레이어 단위 로딩 (메모리 피크 줄이기)
--load-format layered
--trust-remote-code
HuggingFace Hub의 커스텀 모델 코드를 허용해요. DeepSeek, Qwen 등 커스텀 모델링 파일이 있는 모델에 필요해요.
# DeepSeek, Qwen 등 커스텀 모델 필수
python -m sglang.launch_server \
--model-path deepseek-ai/DeepSeek-V3 \
--trust-remote-code
--context-length
모델의 최대 컨텍스트 길이예요. 기본값은 모델의 config.json 값을 사용해요.
# 기본값보다 짧게 (메모리 절약)
python -m sglang.launch_server \
--model-path meta-llama/Llama-3.1-8B-Instruct \
--context-length 8192 # 기본 131072를 8192로 제한
# 기본값보다 길게 (YaRN 설정과 함께)
python -m sglang.launch_server \
--model-path Qwen/Qwen3-8B \
--context-length 65536 \
--json-model-override-args '{"rope_scaling":{"rope_type":"yarn","factor":2.0}}'
--revision
특정 모델 버전을 지정해요. 브랜치명, 태그명, 커밋 ID 모두 가능해요.
python -m sglang.launch_server \
--model-path meta-llama/Llama-3.1-8B-Instruct \
--revision abc123def # 특정 커밋
--model-impl
모델 구현체를 선택해요. 기본값 auto.
# auto: SGLang 구현 우선, 없으면 Transformers (기본값)
--model-impl auto
# sglang: SGLang 구현만 사용
--model-impl sglang
# transformers: HuggingFace Transformers 구현 사용
--model-impl transformers
--is-embedding
CausalLM을 임베딩 모델로 사용할 때 설정해요.
python -m sglang.launch_server \
--model-path Alibaba-NLP/gte-Qwen2-7B-instruct \
--is-embedding
--enable-multimodal
멀티모달 기능을 활성화해요. 비전 언어 모델(VLM) 서빙 시 사용해요.
python -m sglang.launch_server \
--model-path lmms-lab/llava-onevision-qwen2-7b-ov \
--enable-multimodal \
--chat-template chatml-llava
2. HTTP 서버
--host
HTTP 서버 호스트예요. 기본값 127.0.0.1 (로컬만 접근 가능).
# 외부 접근 허용 (프로덕션)
python -m sglang.launch_server \
--model-path meta-llama/Llama-3.1-8B-Instruct \
--host 0.0.0.0
# 특정 IP만 허용
--host 192.168.1.100
--port
HTTP 서버 포트예요. 기본값 30000.
python -m sglang.launch_server \
--model-path meta-llama/Llama-3.1-8B-Instruct \
--port 8080
--api-key
API 인증 키예요. 설정하면 모든 요청에 Authorization: Bearer <key> 헤더가 필요해요.
python -m sglang.launch_server \
--model-path meta-llama/Llama-3.1-8B-Instruct \
--api-key my-secret-key-12345
# 클라이언트에서 사용
client = OpenAI(
base_url="http://localhost:30000/v1",
api_key="my-secret-key-12345"
)
--served-model-name
API 응답에서 표시될 모델 이름이에요. OpenAI 호환 클라이언트에서 model 필드에 사용돼요.
python -m sglang.launch_server \
--model-path meta-llama/Llama-3.1-8B-Instruct \
--served-model-name gpt-3.5-turbo # 클라이언트에서 이 이름으로 호출
# 이렇게 호출 가능
response = client.chat.completions.create(
model="gpt-3.5-turbo", # --served-model-name 값
messages=[...]
)
--skip-server-warmup
서버 시작 시 워밍업을 건너뛰어요. 빠른 시작이 필요할 때 사용하지만 첫 요청이 느릴 수 있어요.
python -m sglang.launch_server \
--model-path meta-llama/Llama-3.1-8B-Instruct \
--skip-server-warmup
--grpc-mode
HTTP 대신 gRPC 서버를 사용해요. 고성능 내부 서비스 통신에 유용해요.
python -m sglang.launch_server \
--model-path meta-llama/Llama-3.1-8B-Instruct \
--grpc-mode \
--port 50051
3. 양자화 및 데이터 타입
--dtype
모델 가중치와 활성화의 데이터 타입이에요. 기본값 auto.
# auto: FP32/FP16 모델은 FP16, BF16 모델은 BF16 (기본값)
--dtype auto
# bfloat16: 정밀도와 범위의 균형 (Llama, DeepSeek 권장)
python -m sglang.launch_server \
--model-path meta-llama/Llama-3.3-70B-Instruct \
--dtype bfloat16
# float16 / half: AWQ 양자화 시 권장
python -m sglang.launch_server \
--model-path TheBloke/Llama-2-13B-AWQ \
--dtype half
# float32: 최고 정밀도, 메모리 2배 소모
--dtype float32
--quantization
양자화 방식이에요. 기본값 없음 (양자화 미적용).
# FP8 양자화 (H100/A100 권장, 품질 손실 최소)
python -m sglang.launch_server \
--model-path meta-llama/Llama-3.3-70B-Instruct \
--quantization fp8
# AWQ INT4 (모든 GPU, 메모리 75% 절감)
python -m sglang.launch_server \
--model-path TheBloke/Llama-2-70B-AWQ \
--quantization awq \
--dtype half # AWQ는 float16 권장
# GPTQ INT4
python -m sglang.launch_server \
--model-path TheBloke/Llama-2-70B-GPTQ \
--quantization gptq
# BitsAndBytes (NF4/INT8)
python -m sglang.launch_server \
--model-path meta-llama/Llama-3.1-8B-Instruct \
--quantization bitsandbytes \
--load-format bitsandbytes
# MXFP4 (최신 Blackwell GPU용, 메모리 최대 절감)
--quantization mxfp4
양자화 방식별 GPU 요구사항
FP8: H100, A100, A10G (Ampere/Hopper 이상)
AWQ INT4: 모든 CUDA GPU
GPTQ INT4: 모든 CUDA GPU
BitsAndBytes: 모든 CUDA GPU
MXFP4: Blackwell (B200, GB200) 전용
--kv-cache-dtype
KV 캐시 저장 데이터 타입이에요. 기본값 auto (모델 데이터 타입 따름).
# FP8 KV 캐시 (메모리 절약, 미세한 품질 손실)
python -m sglang.launch_server \
--model-path meta-llama/Llama-3.1-70B-Instruct \
--kv-cache-dtype fp8_e4m3 # 권장
# 또는 --kv-cache-dtype fp8_e5m2
# BF16 KV 캐시 (고품질)
--kv-cache-dtype bfloat16
--quantization-param-path
KV 캐시 스케일링 팩터가 담긴 JSON 파일 경로예요. FP8 KV 캐시 사용 시 정확도를 위해 제공해요.
python -m sglang.launch_server \
--model-path meta-llama/Llama-3.1-70B-Instruct-FP8 \
--kv-cache-dtype fp8_e4m3 \
--quantization-param-path /path/to/kv_cache_scales.json
4. 메모리 및 스케줄링
--mem-fraction-static
GPU 메모리 중 모델 가중치 + KV 캐시에 사용할 비율이에요. 기본값 0.9.
# OOM 에러 발생 시 줄이기
python -m sglang.launch_server \
--model-path meta-llama/Llama-3.3-70B-Instruct \
--mem-fraction-static 0.80
# 안정적인 프로덕션 설정
--mem-fraction-static 0.85
# 기본값 (대부분 환경에서 OK)
--mem-fraction-static 0.90
OOM 발생 시 조정 순서
0.90 → 0.85 → 0.80 → 0.75
--max-running-requests
동시에 처리 가능한 최대 요청 수예요. 기본값은 자동 계산돼요.
# 낮은 메모리 GPU에서 제한
python -m sglang.launch_server \
--model-path meta-llama/Llama-3.1-8B-Instruct \
--max-running-requests 256
# 고트래픽 서버
--max-running-requests 2048
--max-queued-requests
대기열에 넣을 수 있는 최대 요청 수예요. 이 수를 초과하면 503 에러를 반환해요.
python -m sglang.launch_server \
--model-path meta-llama/Llama-3.1-8B-Instruct \
--max-queued-requests 1000
--max-total-tokens
메모리 풀의 최대 토큰 수예요. 기본값은 mem-fraction-static으로 자동 계산돼요. 보통 직접 설정할 필요 없어요.
# 개발/디버깅 목적으로만 사용
--max-total-tokens 50000
--chunked-prefill-size
청크드 프리필의 청크당 최대 토큰 수예요. 기본값은 모델에 따라 자동 설정.
# 긴 프롬프트 프리필 OOM 에러 발생 시 줄이기
python -m sglang.launch_server \
--model-path meta-llama/Llama-3.1-8B-Instruct \
--chunked-prefill-size 4096 # 기본보다 작게
# 청크드 프리필 비활성화
--chunked-prefill-size -1
--max-prefill-tokens
한 번의 프리필 배치에 처리할 최대 토큰 수예요. 기본값 16384.
# 고메모리 GPU에서 처리량 향상
python -m sglang.launch_server \
--model-path meta-llama/Llama-3.1-8B-Instruct \
--max-prefill-tokens 32768
# 메모리 절약
--max-prefill-tokens 8192
--schedule-policy
요청 스케줄링 정책이에요. 기본값 fcfs (선입선출).
# fcfs: 선입선출 (기본값, 공정한 처리)
--schedule-policy fcfs
# lpm: Longest Prefix Match - 캐시 히트율 최대화
python -m sglang.launch_server \
--model-path meta-llama/Llama-3.1-8B-Instruct \
--schedule-policy lpm # RAG, 챗봇에 권장
# random: 랜덤 스케줄링
--schedule-policy random
# priority: 우선순위 기반
python -m sglang.launch_server \
--model-path meta-llama/Llama-3.1-8B-Instruct \
--schedule-policy priority \
--enable-priority-scheduling
--schedule-conservativeness
스케줄링 보수성이에요. 기본값 1.0. 값이 클수록 보수적으로 스케줄링해요.
# 요청이 자주 retract 될 때 값 올리기
python -m sglang.launch_server \
--model-path meta-llama/Llama-3.1-8B-Instruct \
--schedule-conservativeness 1.5
--radix-eviction-policy
RadixAttention 캐시 제거 정책이에요. 기본값 lru.
# lru: 가장 최근에 사용되지 않은 것 제거 (기본값)
--radix-eviction-policy lru
# lfu: 사용 빈도 낮은 것 제거 (반복 패턴이 많을 때)
--radix-eviction-policy lfu
5. 병렬화
--tp (텐서 병렬)
텐서 병렬 크기예요. 사용할 GPU 수와 같게 설정해요.
# 2 GPU로 13B 모델
python -m sglang.launch_server \
--model-path meta-llama/Llama-3.1-13B-Instruct \
--tp 2
# 4 GPU로 70B 모델
python -m sglang.launch_server \
--model-path meta-llama/Llama-3.3-70B-Instruct \
--tp 4
# 8 GPU로 405B 모델
python -m sglang.launch_server \
--model-path meta-llama/Llama-3.1-405B-Instruct-FP8 \
--tp 8
--dp (데이터 병렬)
데이터 병렬 크기예요. 메모리가 충분할 때 처리량을 늘려요.
# 메모리가 넉넉할 때 처리량 2배
python -m sglang.launch_server \
--model-path meta-llama/Llama-3.1-8B-Instruct \
--dp 2 # 총 2개의 모델 복제본
# tp와 함께 사용 (총 4 GPU)
python -m sglang.launch_server \
--model-path meta-llama/Llama-3.1-13B-Instruct \
--tp 2 \
--dp 2
--pp (파이프라인 병렬)
파이프라인 병렬 크기예요. 매우 긴 컨텍스트나 대규모 모델에 사용해요.
python -m sglang.launch_server \
--model-path meta-llama/Llama-3.1-405B-Instruct \
--tp 4 \
--pp 2 # 파이프라인 2단계
--ep (전문가 병렬 — MoE 모델용)
MoE(Mixture of Experts) 모델의 전문가 병렬 크기예요.
# DeepSeek V3/R1 등 MoE 모델
python -m sglang.launch_server \
--model-path deepseek-ai/DeepSeek-V3 \
--tp 8 \
--ep 8 # 전문가 병렬 8
--enable-dp-attention
DP 어텐션을 활성화해요. 대규모 데이터 병렬 환경에서 어텐션 연산을 분산해요.
# DeepSeek 모델 대규모 배포 시
python -m sglang.launch_server \
--model-path deepseek-ai/DeepSeek-V3 \
--tp 8 \
--dp 4 \
--enable-dp-attention
6. 멀티 노드 분산 서빙
--nnodes
총 노드 수예요. 멀티 노드 배포 시 설정해요.
# 2개 노드
--nnodes 2
--node-rank
현재 노드의 번호예요. 0부터 시작해요.
--node-rank 0 # 마스터 노드
--node-rank 1 # 워커 노드
--dist-init-addr
분산 환경 초기화 주소예요. 마스터 노드의 호스트:포트 형식이에요.
# 노드 0 (마스터)
python -m sglang.launch_server \
--model-path meta-llama/Llama-3.1-70B-Instruct \
--tp 8 \
--nnodes 2 \
--node-rank 0 \
--dist-init-addr 192.168.1.100:50000
# 노드 1 (워커)
python -m sglang.launch_server \
--model-path meta-llama/Llama-3.1-70B-Instruct \
--tp 8 \
--nnodes 2 \
--node-rank 1 \
--dist-init-addr 192.168.1.100:50000
--nccl-port
NCCL 분산 환경 설정 포트예요. 기본값은 랜덤 포트.
# 방화벽 설정이 있을 때 고정 포트 지정
--nccl-port 29500
7. 성능 최적화
--enable-torch-compile
torch.compile로 소형 모델의 속도를 높여요. 주로 작은 배치 사이즈에서 효과적이에요.
# 8B 이하 소형 모델에서 효과적
python -m sglang.launch_server \
--model-path meta-llama/Llama-3.1-8B-Instruct \
--enable-torch-compile
참고: 공식 문서에서 "out of maintenance" 표시가 있어 최신 버전에서는 주의가 필요해요.
--cuda-graph-max-bs
CUDA 그래프 최대 배치 사이즈예요. CUDA 그래프는 GPU 커널 호출 오버헤드를 줄여요.
# 고메모리 GPU에서 처리량 향상
python -m sglang.launch_server \
--model-path meta-llama/Llama-3.1-8B-Instruct \
--cuda-graph-max-bs 256
# 70B 이상 대형 모델에서 메모리 절약을 위해 줄이기
--cuda-graph-max-bs 64
--disable-cuda-graph
CUDA 그래프를 비활성화해요. 멀티 노드에서 데드락이 발생할 때 시도해요.
python -m sglang.launch_server \
--model-path meta-llama/Llama-3.1-8B-Instruct \
--tp 4 \
--disable-cuda-graph # 데드락 발생 시
--enable-p2p-check
GPU 간 P2P 접근 지원 여부를 확인해요. "peer access is not supported" 에러 발생 시 추가해요.
python -m sglang.launch_server \
--model-path meta-llama/Llama-3.1-8B-Instruct \
--tp 2 \
--enable-p2p-check
--enable-deterministic-inference
결정론적 추론을 활성화해요. 같은 입력에 항상 같은 출력이 나와요 (테스트, 재현성 필요 시).
python -m sglang.launch_server \
--model-path meta-llama/Llama-3.1-8B-Instruct \
--enable-deterministic-inference
8. Speculative Decoding (투기적 디코딩)
--speculative-algorithm
투기적 디코딩 알고리즘이에요.
# EAGLE (가장 빠름, 별도 드래프트 모델 필요)
python -m sglang.launch_server \
--model-path meta-llama/Llama-3.1-8B-Instruct \
--speculative-algorithm EAGLE \
--speculative-draft-model-path lmzheng/sglang-EAGLE-llama3.1-Instruct-8B \
--speculative-num-draft-tokens 5
# EAGLE3 (최신, 드래프트 모델 없이도 동작)
python -m sglang.launch_server \
--model-path meta-llama/Llama-3.1-70B-Instruct \
--speculative-algorithm EAGLE3 \
--tp 4
# NEXTN (N-gram 기반, 드래프트 모델 불필요)
python -m sglang.launch_server \
--model-path meta-llama/Llama-3.1-8B-Instruct \
--speculative-algorithm NEXTN \
--speculative-num-draft-tokens 3
--speculative-draft-model-path
투기적 디코딩에 사용할 드래프트 모델 경로예요.
python -m sglang.launch_server \
--model-path meta-llama/Llama-3.1-70B-Instruct \
--speculative-algorithm EAGLE \
--speculative-draft-model-path /path/to/eagle-draft-model
--speculative-num-draft-tokens
한 번에 예측할 드래프트 토큰 수예요. 기본값 5.
# 더 공격적인 투기 (빠르지만 수락률 낮을 수 있음)
--speculative-num-draft-tokens 8
# 보수적인 투기 (수락률 높음)
--speculative-num-draft-tokens 3
9. PD 분리 배포 (Prefill-Decode Disaggregation)
--disaggregation-mode
PD 분리 모드예요.
# Prefill 전용 서버
python -m sglang.launch_server \
--model-path meta-llama/Llama-3.1-70B-Instruct \
--tp 4 \
--disaggregation-mode prefill \
--disaggregation-transfer-backend mooncake \
--port 30000
# Decode 전용 서버
python -m sglang.launch_server \
--model-path meta-llama/Llama-3.1-70B-Instruct \
--tp 4 \
--disaggregation-mode decode \
--disaggregation-transfer-backend mooncake \
--port 30001
--disaggregation-transfer-backend
KV 캐시 전송 백엔드예요.
# mooncake: 고성능 KV 전송 (권장)
--disaggregation-transfer-backend mooncake
# nixl: NVIDIA 전송 라이브러리
--disaggregation-transfer-backend nixl
10. LoRA 서빙
--lora-paths
LoRA 어댑터 경로 목록이에요. 여러 LoRA를 동시에 서빙해요.
python -m sglang.launch_server \
--model-path meta-llama/Llama-3.1-8B-Instruct \
--lora-paths \
lora_name_1=/path/to/lora1 \
lora_name_2=/path/to/lora2 \
lora_name_3=/path/to/lora3
# 특정 LoRA 선택해서 요청
response = client.chat.completions.create(
model="meta-llama/Llama-3.1-8B-Instruct",
messages=[{"role": "user", "content": "안녕"}],
extra_body={"lora_uid": "lora_name_1"}
)
--max-loras-per-batch
배치당 최대 LoRA 수예요. 기본값 8.
python -m sglang.launch_server \
--model-path meta-llama/Llama-3.1-8B-Instruct \
--lora-paths lora1=/path/to/lora1 lora2=/path/to/lora2 \
--max-loras-per-batch 4
11. 채팅 템플릿
--chat-template
커스텀 채팅 템플릿이에요. HuggingFace 토크나이저에 템플릿이 없을 때 사용해요.
# 사전 정의된 템플릿 사용
python -m sglang.launch_server \
--model-path lmms-lab/llava-onevision-qwen2-7b-ov \
--chat-template chatml-llava
# 파일에서 Jinja2 템플릿 로드
python -m sglang.launch_server \
--model-path /path/to/custom-model \
--chat-template /path/to/template.jinja
--hf-chat-template-name
HuggingFace 토크나이저의 named 템플릿을 선택해요.
# 툴 사용 템플릿 선택
python -m sglang.launch_server \
--model-path meta-llama/Llama-3.1-8B-Instruct \
--hf-chat-template-name tool_use
12. 로깅 및 모니터링
--log-level
모든 로거의 로그 레벨이에요. 기본값 info.
# 상세 로그
--log-level debug
# 경고만
--log-level warning
# 에러만
--log-level error
--enable-metrics
Prometheus 메트릭을 활성화해요. /metrics 엔드포인트로 접근 가능해요.
python -m sglang.launch_server \
--model-path meta-llama/Llama-3.1-8B-Instruct \
--enable-metrics
# 메트릭 확인
curl http://localhost:30000/metrics
--log-requests
모든 요청의 입력/출력을 로깅해요.
python -m sglang.launch_server \
--model-path meta-llama/Llama-3.1-8B-Instruct \
--log-requests
--log-requests-level
로그 상세 수준이에요.
# 0: 메타데이터만 (기본)
--log-requests-level 0
# 1: 메타데이터 + 샘플링 파라미터
--log-requests-level 1
# 2: 메타데이터 + 파라미터 + 입출력 일부
--log-requests-level 2
# 3: 모든 입출력 전체 로깅
--log-requests-level 3
--show-time-cost
각 단계별 소요 시간을 보여줘요. 성능 프로파일링에 유용해요.
python -m sglang.launch_server \
--model-path meta-llama/Llama-3.1-8B-Instruct \
--show-time-cost
13. MoE 전용 (DeepSeek 등)
--moe-dense-tp-size
MoE 모델에서 Dense 레이어의 텐서 병렬 크기예요.
# DeepSeek V3 최적화
python -m sglang.launch_server \
--model-path deepseek-ai/DeepSeek-V3 \
--tp 8 \
--ep 8 \
--moe-dense-tp-size 8
--enable-moe-padding
MoE 배치 패딩을 활성화해요. 처리량 향상에 도움돼요.
python -m sglang.launch_server \
--model-path deepseek-ai/DeepSeek-V3 \
--tp 8 \
--enable-moe-padding
14. 모델 오버라이드
--json-model-override-args
모델 config.json의 값을 JSON으로 오버라이드해요.
# YaRN으로 컨텍스트 길이 확장
python -m sglang.launch_server \
--model-path Qwen/Qwen3-8B \
--json-model-override-args '{"rope_scaling":{"rope_type":"yarn","factor":4.0,"original_max_position_embeddings":32768}}'
# 최대 시퀀스 길이 수동 설정
python -m sglang.launch_server \
--model-path meta-llama/Llama-3.1-8B-Instruct \
--json-model-override-args '{"max_position_embeddings": 16384}'
15. 설정 파일
--config
YAML 설정 파일로 파라미터를 관리해요. CLI 인수가 설정 파일 값을 오버라이드해요.
# config.yaml
model-path: meta-llama/Llama-3.1-70B-Instruct
host: 0.0.0.0
port: 30000
tp: 4
mem-fraction-static: 0.85
dtype: bfloat16
enable-metrics: true
log-requests: true
max-running-requests: 1024
# 설정 파일로 서버 실행
python -m sglang.launch_server --config config.yaml
# CLI 인수가 설정 파일보다 우선
python -m sglang.launch_server --config config.yaml --port 8080
자주 쓰는 조합 레시피
① 단일 GPU, 7~8B 모델, 빠른 시작
python -m sglang.launch_server \
--model-path meta-llama/Llama-3.1-8B-Instruct \
--host 0.0.0.0 \
--port 30000 \
--mem-fraction-static 0.85
② 4 GPU, 70B 모델, 프로덕션
python -m sglang.launch_server \
--model-path meta-llama/Llama-3.3-70B-Instruct \
--host 0.0.0.0 \
--port 30000 \
--tp 4 \
--dtype bfloat16 \
--mem-fraction-static 0.85 \
--max-running-requests 1024 \
--schedule-policy lpm \
--enable-metrics \
--log-requests
③ AWQ 양자화 (메모리 절약)
python -m sglang.launch_server \
--model-path TheBloke/Llama-2-70B-AWQ \
--quantization awq \
--dtype half \
--tp 2 \
--kv-cache-dtype fp8_e4m3 \
--mem-fraction-static 0.80
④ DeepSeek V3 대규모 배포
python -m sglang.launch_server \
--model-path deepseek-ai/DeepSeek-V3 \
--trust-remote-code \
--tp 8 \
--ep 8 \
--dtype bfloat16 \
--enable-dp-attention \
--mem-fraction-static 0.88
⑤ EAGLE 투기적 디코딩 (저레이턴시)
python -m sglang.launch_server \
--model-path meta-llama/Llama-3.1-8B-Instruct \
--speculative-algorithm EAGLE3 \
--speculative-num-draft-tokens 5 \
--tp 1
⑥ 임베딩 모델 서빙
python -m sglang.launch_server \
--model-path Alibaba-NLP/gte-Qwen2-7B-instruct \
--is-embedding \
--host 0.0.0.0 \
--port 30001
마무리
파라미터 우선순위 기준이에요.
필수:
--model-path ← 반드시 설정
거의 항상 설정:
--host 0.0.0.0 ← 외부 접근
--port ← 포트
--tp ← GPU 수에 맞게
--dtype bfloat16 ← 대부분 모델에서 권장
--mem-fraction-static 0.85 ← OOM 방지
성능 튜닝:
--schedule-policy lpm ← 캐시 히트율 향상
--enable-metrics ← 모니터링
--max-running-requests ← 트래픽 제어
특수 상황:
--trust-remote-code ← DeepSeek, Qwen 등
--quantization ← 메모리 부족 시
--speculative-algorithm ← 저레이턴시 필요 시
--disaggregation-mode ← 대규모 PD 분리
모든 파라미터는 python -m sglang.launch_server --help로 확인할 수 있어요. 😄
메인 공식 문서 https://docs.sglang.io
서버 파라미터 전체 목록 https://docs.sglang.io/advanced_features/server_arguments.html
GitHub 소스 (실제 파라미터 정의) https://github.com/sgl-project/sglang/blob/main/python/sglang/srt/server_args.py
GitHub 메인 https://github.com/sgl-project/sglang
'LLM' 카테고리의 다른 글
| LLM 양자화 완전 정리 — FP8, AWQ, GPTQ, GGUF 차이와 선택법 (1) | 2026.04.09 |
|---|---|
| SGLang PD 분리 배포 완전 가이드 — Prefill/Decode 분리로 처리량 5배 올리기 (0) | 2026.04.09 |
| SGLang 서빙에 대한 모든 것 — 설치부터 프로덕션까지 완전 가이드 (0) | 2026.04.09 |
| 스마트폰에서 AI를 돌리는 법 — 온디바이스 LLM 개발 입문 가이드 (0) | 2026.04.08 |
| Grok 5 완전 정리 — 6조 파라미터, AGI 10%, 역대 최대 AI의 진실 (0) | 2026.04.08 |