반응형
안녕하세요! 오늘은 최신 사양인 B300 GPU에서 SGLANG을 사용해 gpt-oss-20b 모델을 올리는 방법을 알아보겠습니다. 일반적인 방식으로는 CUDA 버전이 맞지 않아 오류가 날 수 있는데, 이를 어떻게 해결했는지 공유해 드릴게요.
1. 왜 latest 이미지 대신 dev-cu13인가요?
처음에는 SGLANG의 latest 태그 이미지를 사용해서 실행해 보았습니다. 하지만 B300 하드웨어는 아주 최신이라서, 기존 이미지에 들어있는 CUDA 버전과 맞지 않는 문제가 발생했어요.
그래서 저는 CUDA 13이 포함된 lmsysorg/sglang:dev-cu13 이미지를 사용했습니다. 최신 그래픽 카드의 성능을 제대로 쓰려면 꼭 이 버전을 확인해야 합니다!
2. Docker 실행 명령어
제가 성공한 Docker 실행 스크립트입니다. B300의 아키텍처를 인식시키기 위해 환경 변수(env) 설정이 아주 중요합니다.
docker run -itd --rm --gpus '"device=0"' \
-p 3000:3000 \
-v /home/ubuntu/model_files:/root/.cache/huggingface/models \
--env "HF_TOKEN=hf_YOUR_TOKEN_HERE" \
--env "TORCH_CUDA_ARCH_LIST=10.3" \
--env "CUDA_LAUNCH_BLOCKING=1" \
--env "TORCH_USE_CUDA_DSA=1" \
--ipc=host \
--name=sglang_20b_workspace \
lmsysorg/sglang:dev-cu13 \
python3 -m sglang.launch_server --model-path /root/.cache/huggingface/models/gpt-oss-20b \
--host 0.0.0.0 --port 3000 \
--mem-fraction-static 0.15 \
--context-length 30000 \
--grammar-backend xgrammar \
--reasoning-parser gpt-oss
3. 설정값들, 왜 이렇게 넣었을까요? (핵심 포인트)
명령어에 포함된 복잡한 설정들을 알기 쉽게 풀어서 설명해 드릴게요.
- --env "TORCH_CUDA_ARCH_LIST=10.3": B300 GPU 아키텍처에 맞게 연산을 수행하도록 지정해 주는 아주 중요한 설정입니다.
- --env "CUDA_LAUNCH_BLOCKING=1" & "TORCH_USE_CUDA_DSA=1": 에러가 났을 때 어디가 문제인지 더 정확하게 찾고, 장치 내부의 안전한 접근을 도와주는 도구들입니다.
- --mem-fraction-static 0.15: 모델이 사용할 GPU 메모리 비율을 정해줍니다. 현재 남은 VRAM에 mem-fraction-static 값을 곱한만큼 VRAM을 점유합니다.
- --context-length 30000: 모델이 한 번에 사용할 수 있는 context 길이를 설정합니다. (단, 지난 글에서 설명해 드린 것처럼 gpt-oss의 안정성을 위해서는 실제 호출 시 max_model_len을 적절히 조절하는 지혜가 필요합니다!). VRAM 여유가 많으면 크게 해도 되겠지용
- --grammar-backend xgrammar: JSON 같은 정해진 형식을 더 잘 출력할 수 있게 도와주는 기능을 켭니다.
- --reasoning-parser gpt-oss: gpt-oss 모델 특유의 생각(reasoning) 과정을 서버에서 인식할 수 있게 해줍니다.
4. 직접 해보며 느낀 꿀팁
B300과 같은 최신 장비는 하드웨어 사양은 훌륭하지만, 소프트웨어 환경(CUDA, PyTorch 등)을 맞추는 것이 가장 큰 숙제입니다.
- 이미지 선택: 무조건 최신형 GPU라면 dev-cu13 같은 상위 CUDA 버전 이미지를 먼저 고려해 보세요.
- 권한 설정: --ipc=host와 --shm-size를 충분히 주어야 모델이 연산 중에 멈추지 않고 쌩쌩 돌아갑니다.
- HF_TOKEN: 모델을 내려받을 때 필요한 HuggingFace 토큰도 환경 변수로 미리 넣어주면 훨씬 편합니다.
5. 결론
B300 GPU에서 SGLANG으로 gpt-oss-20b를 성공적으로 서빙했습니다! 핵심은 dev-cu13 이미지 사용과 TORCH_CUDA_ARCH_LIST=10.3 환경 변수 설정에 있었습니다.
반응형
'AI Agent' 카테고리의 다른 글
| [실전] 매 스텝마다 LLM이 다음 할 일을 고른다 — 자동 워크플로우 Orchestrator 구현기 (0) | 2026.03.24 |
|---|---|
| [실전] AI한테 AI 감시시키기 — 멀티 에이전트 워크플로우 직접 구현해봤습니다 (Antigravity 워크플로우) (0) | 2026.03.24 |
| [실전] 오픈소스 LLM 기반 멀티 에이전트 챗봇 제작기 (1) | 2026.03.24 |
| [실전 가이드] gpt-oss-20b, 120b 운영 시 무한 루프와 JSON 출력 문제 해결하기 (sglang) (0) | 2026.03.24 |
| [AI 에이전트 개발 가이드] MCP, 스킬(Skills), 규칙(Rules) 비교 정리 (0) | 2026.03.24 |