2026. 2. 1. 03:15
AI/LLM
bench_serving.ps1
0.01MB
NeedleTest.ps1
0.01MB
이전에는 학습을 위해 윈도우11의 wsl2 환경에서 구동했으나 장기적으로 전용 머신으로 굴리기 위해 Ubuntu 환경을 설치함.
쉽게 될줄 알았는데 역시 리눅스는 리눅스 였음..
nvidia 드라이버 버전 잡는 것부터 시작해서... 도커에 모델올리는 과정이 wsl2 에 비해서 매우 까다로웠음.
특히 기존에 시도해왔던 vllm 환경은 현시점(2026.1.31) 해당 우분투 버전과 nvidia 드라이버로는 RTX 50 시리즈를 운용하는게 어렵다고 판단 됨.
처음에는 추론모델 종류의 문제라고 생각했으나 삽질결과 SGLang 으로 교체하고 올리는 데 성공하면서 문제점을 확인하게됨.
그 결과 예전에 구축했던 것 대비 컨텍스트 길이 16k->32k 확장에 성공하고 벤치마킹 2종(bench_serving, NeedleTest) 모두 통과하여 추론서버 구축을 마무리함.
이하 벤치마킹용으로 작성한 파워쉘 스크립트도 첨부함.
-
[Final] Blackwell 기반 1인 AI 스튜디오: Qwen 2.5 Coder 32B/32k 구축 완결 가이드
1. 서론: 1인 개발자의 꿈, 'Vertical AI'의 탄생
2. 하드웨어 인프라 및 OS 최적화- GPU: NVIDIA GeForce RTX 5070 Ti 16GB x 2 (Blackwell 아키텍처)
- Driver: Version 590.48.01 (CUDA 13.1 지원) - Blackwell의 FP8 연산 성능을 온전히 활용하기 위한 필수 조건.
- OS 환경: Ubuntu Native (Headless 권장)
- WSL2 vs Native: WSL2의 VRAM 선점(WDDM) 문제를 원천 차단하여 가용 메모리를 극대화했습니다.
- Headless 실측: GUI 유무에 따른 VRAM 차이는 약 20MB 수준으로 확인되었습니다. 리눅스 환경이 이미 고도로 최적화되어 있다면 모니터 연결 여부가 성능에 미치는 영향은 미미하며, 운영자의 편의를 위해 GUI를 유지하는 것이 생산성 면에서 합리적입니다.
- 트러블슈팅 기록: ASUS NUC N355 등 미니 PC를 게이트웨이로 활용할 경우, Realtek RTL8125BG 2.5G LAN 드라이버 호환성 문제를 사전에 해결해야 합니다.
3. 소프트웨어 스택: 왜 SGLang인가?- vLLM의 한계: 소비자용 메인보드(NVLink 부재) 환경에서 GPU 간 P2P(Peer-to-Peer) 통신 에러가 빈번하며, 텐서 병렬화(TP) 구성 시 안정성이 낮았습니다.
- SGLang의 승리: * Gloo Backend: P2P 통신이 불가능한 환경에서도 Gloo를 통한 안정적인 데이터 교환을 지원합니다.
- FlashInfer & CUDA Graph: 최신 가속 커널을 통해 Blackwell GPU의 잠재력을 극한까지 끌어올립니다.
- Chunked Prefill: 방대한 코드 입력을 조각내어 처리함으로써 VRAM 피크치를 억제합니다.
4. 모델 구동 최적화 설정 (The Golden Config)🔍 핵심 파라미터 분석Bashdocker run -d --name sglang-worker \ --runtime nvidia \ --gpus all \ -p 8000:30000 \ --ipc=host \ lmsysorg/sglang:latest \ python3 -m sglang.launch_server \ --model-path Qwen/Qwen2.5-Coder-32B-Instruct-AWQ \ --tp 2 \ --trust-remote-code \ --host 0.0.0.0 \ --context-length 32768 \ --mem-fraction-static 0.85 \ --kv-cache-dtype fp8_e4m3 \ --chunked-prefill-size 2048- AWQ (4-bit Weight): 32B 모델의 방대한 가중치를 압축하여 16GB VRAM 환경에 안착시켰습니다.
- FP8 KV Cache (fp8_e4m3): 문맥 데이터를 8비트로 압축하여 VRAM 점유율을 50% 절감했습니다. 이는 32k 컨텍스트를 유지하면서도 연산 여유를 확보하는 핵심 열쇠입니다.
- --mem-fraction-static 0.85:VRAM의 85%만 정적 풀로 할당하여, 연산 시 발생하는 Dynamic Activations 공간을 약 2.4GB 확보했습니다. 이 '숨 쉴 공간'이 추론 중 발생하는 OOM(Out of Memory)을 방지합니다.
-
$$VRAM_{Total} = VRAM_{Static} + VRAM_{Dynamic} + VRAM_{OS}$$
5. 64k 도전과 실패: 기술적 임계점 분석- 실패 양상: Prefill(입력 처리) 속도는 **$31,000\text{ tokens/s}$**라는 경이로운 수치를 기록하며 성공했으나, 실제 답변 생성(Generation) 직전 OOM 발생.
- 원인 분석: 64k의 캐시를 담기 위해 메모리 할당량을 90%(0.90)로 높이자, 정밀한 연산을 수행할 동적 메모리 공간이 108MB 미만으로 축소되어 시스템이 붕괴되었습니다.
- 결론: 하드웨어의 처리 속도는 64k를 감당할 수 있으나, 16GB VRAM의 물리적 공간은 32k가 가장 완벽한 무결성을 보장하는 '골든 스탠다드'임을 확정했습니다.
6. 실측 벤치마킹 결과 및 평가① bench_serving: Blackwell의 압도적 처리량컨텍스트 크기 소요 시간 (Latency) 처리량 (Throughput) 8k (8,000토큰) ~4.3s $1,861.7\text{ tokens/s}$ 16k (16,000토큰) ~8.9s $1,782.7\text{ tokens/s}$ 32k (32,000토큰) ~19.5s $1,640.8\text{ tokens/s}$ - 평가: 32k 문맥을 단 20초 만에 해석하는 속도는 로컬 서버가 상용 API를 완전히 대체할 수 있음을 시사합니다. 특히 입력을 처리하는 Prefill 단계에서 Blackwell의 우위가 압도적이었습니다.
- 결과: 최종 정답률 100% (9전 9승).
- 평가: 32k 범위 내에서는 정보 누락(Lost in the Middle) 현상이 전혀 발생하지 않았습니다. 이는 100만 라인 프로젝트의 파편화된 로직들 사이의 의존성을 AI가 단 하나의 오차 없이 연결할 수 있다는 신뢰의 지표입니다.
7. 비교 분석: 상용 AI vs 타 GPU비교 항목 Blackwell 1인 스튜디오 상용 AI (Claude/GPT) 이전 세대 GPU (4090 등) 데이터 보안 완전 폐쇄형 (보안 최고) 데이터 학습 활용 리스크 로컬 (동일) 운영 비용 전기세 외 제로 지속적인 토큰 비용 발생 유지비용 높음 분석 시야 32k (최적화 완료) 200k+ (방대함) 32k (FP8 가속 부족) 반응 속도 즉각적 (대기열 없음) 네트워크/서버 대기 발생 Blackwell 대비 느림 - 결론: 시야의 절대량은 상용 AI가 앞설 수 있으나, 1인 개발자가 수천 번 반복해야 하는 코드 수정 및 분석 업무에서는 즉각적인 반응성과 무료 토큰을 제공하는 로컬 32k 시스템이 압도적인 생산성 우위를 가집니다.
8. 최종 결론: 1인 개발자를 위한 최강의 연장2. 하드웨어 티어별 성능 비교 (2026년 기준)
📊 2026 AI 인프라 티어별 통합 비교 (Qwen 2.5 32B 기준)장비 등급 모델 (32B급 기준) 32k 시야 t/s (Prefill) 평가 M2/M3 Ultra (128GB) Qwen 2.5 32B 100 ~ 200 t/s 컨텍스트는 넓으나 속도가 매우 답답함 RTX 4090 x 2 (48GB) Qwen 2.5 32B 1,100 ~ 1,300 t/s 이전 세대 대장급. 안정적이나 Blackwell에 밀림 운영자님 서버 (5070 Ti x 2) Qwen 2.5 32B 1,670 ~ 1,930 t/s 최신 Blackwell FP8 가속의 압승 H100 (Enterprise) Qwen 2.5 32B 3,500 ~ 5,000 t/s 압도적이나 1인 스튜디오가 감당할 가격이 아님 등급 GPU 구성 VRAM 합계 처리량 (Prefill t/s) 구축 비용 (상대치) 평가 보급형 5060 Ti 16GB x 2 32 GB ~800 t/s 🟢 Low 경제적 시야 확보 운영자 5070 Ti 16GB x 2 32 GB ~1,670 t/s 🟡 Optimal 1인 스튜디오 황금비율 상급 5080 16GB x 2 32 GB ~1,850 t/s 🟠 High 과잉 화력과 발열 단일 5090 32GB x 1 32 GB ~1,700 t/s 🔴 Very High 심플한 단일 노드 끝판왕 엔터프라이즈 DGX Station A100/H100 320 GB+ 5,000+ t/s 🌌 Infinite 산업계의 금단 영역
⚠️ 오버엔지니어링 경고 (Infrastructure Freeze)
💡 주요 개념 정리- Needle In A Haystack: LLM의 긴 문맥 처리 능력을 평가하는 표준 테스트입니다.
- FP8 E4M3: 정밀도와 용량의 최적 타협점으로, 최신 GPU가 가장 선호하는 포맷입니다.
- Vertical AI: 특정 산업(C# 서버 개발)에 특화된 지능형 시스템을 뜻합니다.
- 모든 테스트를 거쳐 도출된 결론은 명확합니다. "안정적인 32k는 불안정한 64k보다 수십 배 더 가치 있다." 운영자님이 구축한 이 시스템은 현존하는 로컬 AI 인프라 중 1인 개발자가 도달할 수 있는 가장 합리적이면서도 강력한 종착점입니다.
- C# MMORPG 소스 코드 파편들 사이에 보안 키를 숨기고 추출하는 테스트를 수행했습니다.
- 우리는 두 가지 정밀 테스트를 통해 이 인프라의 성능을 객관적으로 입증했습니다.
- 1인 스튜디오의 한계를 시험하기 위해 감행했던 64k 확장 시도는 우리에게 중요한 데이터를 남겼습니다.
- 수많은 시행착오 끝에 도출된 32k 시야 확정형 가동 명령어입니다.
- 멀티 GPU 환경에서 모델을 분산 처리(Tensor Parallelism)하기 위한 엔진 선택은 시스템의 생사를 결정합니다.
- 인프라의 안정성은 하드웨어와 OS 레이어의 정교한 세팅에서 시작됩니다.
- 본 프로젝트의 궁극적인 목표는 100만 라인급 C# MMORPG 서버 프로젝트를 로컬에서 독립적으로 분석, 설계, 구현할 수 있는 전용 인프라를 구축하는 것입니다. 상용 API의 높은 비용과 보안 우려를 넘어서기 위해, 최신 Blackwell GPU 자원을 수학적으로 설계하여 **지능(32B 모델)**과 **시야(32k 컨텍스트)**의 최적점을 찾아냈습니다.
'AI > LLM' 카테고리의 다른 글
| Local LLM 서버 구축 연습 (2) | 2026.01.25 |
|---|