Phase 01 (LLM Tuning): - Gemma4 26B: 74.65 t/s (fast) - Qwen 35B: 61.62 t/s (balanced) - Gemma4 31B: 16.0 t/s (deep-coder) - Qwen 27B: 16.7 t/s (deep-logic) - Qwen 122B: 8.95 t/s (ultra, GPU 1 only) Phase 02 (API Engine): - FastAPI reverse proxy on port 8000 - /engine/switch hot-swap with 503 protection - config/engine_models.json as single source of truth - Replaced 4 individual .bat files with unified engine File cleanup: - scripts/ 85 files -> 9 + _archive/ - Root .bat files -> _archive/
185 lines
7.3 KiB
Python
185 lines
7.3 KiB
Python
# 🏆 2x RTX 3060 (24GB) 최적 추론 설정 — 실측 확정값
|
|
# ⚠️ [DEPRECATED] ⚠️
|
|
# 이 파일은 참조용으로만 보존됩니다.
|
|
# 현재 시스템의 실제 운영 설정(Single Source of Truth)은 `config/engine_models.json`을 참조하세요.
|
|
# 테스트 일시: 2026-04-06
|
|
# 컨텍스트: 256K (262144)
|
|
# 하드웨어: 2x RTX 3060 12GB (Machine A)
|
|
|
|
## ═══════════════════════════════════════════════════
|
|
## 1. Gemma 4 26B-A4B (Q4_K_M) — 74.65 t/s
|
|
## ═══════════════════════════════════════════════════
|
|
|
|
# 실측: AVG 74.65 / BEST 75.07 / MIN 74.27 t/s
|
|
# VRAM: ~16.8 GB (여유 충분)
|
|
# 이전 기록: 76.4 t/s (동일 설정)
|
|
|
|
# llama-server 실행 커맨드:
|
|
# llama-server --model models\gemma-4-26B-A4B-it-Q4_K_M.gguf \
|
|
# -ngl 999 -c 262144 -np 1 -fa on \
|
|
# --cache-type-k f16 --cache-type-v f16 \
|
|
# -ub 512 -b 2048 -t 6 -tb 6 \
|
|
# --prio 3 --mlock --poll 50 \
|
|
# --port 8000 --host 0.0.0.0
|
|
|
|
GEMMA4_CONFIG = {
|
|
"model": "models\\gemma-4-26B-A4B-it-Q4_K_M.gguf",
|
|
"ngl": 999,
|
|
"context": 262144,
|
|
"np": 1,
|
|
"fa": True,
|
|
"cache_type_k": "f16",
|
|
"cache_type_v": "f16",
|
|
"ub": 512,
|
|
"b": 2048,
|
|
"t": 6,
|
|
"tb": 6,
|
|
"prio": 3,
|
|
"mlock": True,
|
|
"poll": 50,
|
|
"measured_avg_tps": 74.65,
|
|
"measured_best_tps": 75.07,
|
|
}
|
|
|
|
|
|
## ═══════════════════════════════════════════════════
|
|
## 2. Qwen 3.5 35B-A3B (Q4_K_M) — 61.62 t/s
|
|
## ═══════════════════════════════════════════════════
|
|
|
|
# 실측: AVG 61.62 / BEST 62.12 / MIN 61.02 t/s
|
|
# VRAM: ~23.0 GB (GPU 0: 12038, GPU 1: 10942 — 거의 한계)
|
|
# 이전 기록: 64.18 t/s (동일 설정, 3회 평균)
|
|
# ⚠️ 비대칭 스플릿 (0.49/0.51 이하) 시 12+ t/s 하락 또는 크래시
|
|
# ⚠️ UD-IQ4_NL 사용 금지 (안정성 문제)
|
|
|
|
# llama-server 실행 커맨드:
|
|
# llama-server --model models\Qwen3.5-35B-A3B-Q4_K_M.gguf \
|
|
# -ngl 999 -c 262144 -np 1 -fa on \
|
|
# --cache-type-k q4_0 --cache-type-v q4_0 \
|
|
# -ub 128 -b 512 -t 6 -tb 6 \
|
|
# --prio 3 --mlock --poll 50 \
|
|
# -ts 0.5,0.5 \
|
|
# --port 8000 --host 0.0.0.0
|
|
|
|
QWEN35B_CONFIG = {
|
|
"model": "models\\Qwen3.5-35B-A3B-Q4_K_M.gguf",
|
|
"ngl": 999,
|
|
"context": 262144,
|
|
"np": 1,
|
|
"fa": True,
|
|
"cache_type_k": "q4_0",
|
|
"cache_type_v": "q4_0",
|
|
"ub": 128,
|
|
"b": 512,
|
|
"t": 6,
|
|
"tb": 6,
|
|
"prio": 3,
|
|
"mlock": True,
|
|
"poll": 50,
|
|
"tensor_split": "0.5,0.5",
|
|
"measured_avg_tps": 61.62,
|
|
"measured_best_tps": 62.12,
|
|
}
|
|
|
|
|
|
## ═══════════════════════════════════════════════════
|
|
## 스플릿 테스트 결과 (Qwen 3.5 35B Q4_K_M)
|
|
## ═══════════════════════════════════════════════════
|
|
# 0.3 / 0.7 → 부팅 실패 ❌
|
|
|
|
|
|
## ═══════════════════════════════════════════════════
|
|
## 3. Deep Tier - 코딩 및 시스템 설계 전담 (Gemma 4 31B Q4_K_M)
|
|
## ═══════════════════════════════════════════════════
|
|
|
|
# 테스트 일시: 2026-04-07
|
|
# 실측: 16.0 t/s (192K 극한 컨텍스트 세팅 시)
|
|
# 용도 [Primary Coder]: 복잡한 Python 코딩, 프레임워크 아키텍처 설계, 알고리즘 최적화, 모의 테스트 케이스 작성 등 "시니어급 엔지니어링 능력이 제약적으로 요구되는 작업" 전담
|
|
# 특징: 24GB VRAM 환경에서 단일 모델 풀 로딩 시 최대 192K 컨텍스트를 지원합니다 (ub=128 세밀 컨트롤 통과).
|
|
# System Prompt 누락에 상대적으로 유연하며 창의적인 문제 해결에 뛰어납니다.
|
|
|
|
GEMMA4_31B_DEEP_CONFIG = {
|
|
"model": "models\\gemma-4-31B-it-Q4_K_M.gguf",
|
|
"ngl": 999,
|
|
"context": 196608, # 192K Limit
|
|
"np": 1,
|
|
"fa": True,
|
|
"cache_type_k": "q4_0",
|
|
"cache_type_v": "q4_0",
|
|
"ub": 128,
|
|
"b": 512,
|
|
"t": 6,
|
|
"tb": 6,
|
|
"prio": 3,
|
|
"mlock": True,
|
|
"poll": 50,
|
|
"measured_avg_tps": 16.0,
|
|
"role_assignment": "Primary Coder & Architect",
|
|
}
|
|
|
|
|
|
## ═══════════════════════════════════════════════════
|
|
## 4. Deep Tier - 복잡한 논리 및 초대형 문서 분석 (Qwen 3.5 27B Q4_K_M)
|
|
## ═══════════════════════════════════════════════════
|
|
|
|
# 테스트 일시: 2026-04-07
|
|
# 실측: 16.7 t/s (256K 극한 컨텍스트 세팅 시)
|
|
# 용도 [Logic Analyst]: 모호하거나 제한된 정보 하에서의 침착한 공학적 논증, 수학적 풀이, 256K를 꽉 채우는 방대한 문서 리딩 및 핵심 규칙 추출
|
|
# 특징: 256K 풀 컨텍스트를 안정적으로 지원(ub=512)하여 극단적인 메모리 버퍼를 감당합니다.
|
|
# ⚠️ 주의: API 요청 시 반드시 System Prompt ("You are a...")를 명시해야 응답 거부(Empty Response) 버그를 막을 수 있습니다.
|
|
|
|
QWEN35_27B_DEEP_CONFIG = {
|
|
"model": "models\\Qwen3.5-27B-Q4_K_M.gguf",
|
|
"ngl": 999,
|
|
"context": 262144, # 256K Full
|
|
"np": 1,
|
|
"fa": True,
|
|
"cache_type_k": "q4_0",
|
|
"cache_type_v": "q4_0",
|
|
"ub": 512,
|
|
"b": 1024,
|
|
"t": 6,
|
|
"tb": 6,
|
|
"prio": 3,
|
|
"mlock": True,
|
|
"poll": 50,
|
|
"tensor_split": "0.5,0.5",
|
|
"measured_avg_tps": 16.7,
|
|
"role_assignment": "Logic Analyst & Huge Context Reader",
|
|
}
|
|
|
|
|
|
## ═══════════════════════════════════════════════════
|
|
## 5. Qwen 3.5 122B-A10B MoE (Q4_K_M) — 8.95 t/s
|
|
## ═══════════════════════════════════════════════════
|
|
|
|
# 테스트 일시: 2026-04-07
|
|
# 하드웨어 이슈 반경: GPU0이 PCIe 3.0 x4 로 제한되어 듀얼 GPU 사용(split) 시 극심한 병목 발생.
|
|
# 해결책: GPU1(Gen4 x16) 단독 사용 및 Expert를 CPU에 오프로드.
|
|
# 실측: AVG 8.81 / BEST 8.95 t/s
|
|
# VRAM: 단일 GPU에서 6.5GB 유지
|
|
# 용도 [Ultra-Heavy Analyst]: 최대 122B 파라미터의 지식 풀이 필요한 최고 난이도 추론 및 에이전트 워크플로우
|
|
|
|
QWEN35_122B_MOE_CONFIG = {
|
|
"model": "models\\Q4_K_M\\Qwen3.5-122B-A10B-Q4_K_M-00001-of-00003.gguf",
|
|
"ngl": 999,
|
|
"n_cpu_moe": 48, # 16 layers expert on GPU, rest on CPU
|
|
"context": 4096, # 물리적 메모리 한계로 컨텍스트 확장 주의
|
|
"np": 1,
|
|
"fa": True,
|
|
"cache_type_k": "q4_0",
|
|
"cache_type_v": "q4_0",
|
|
"ub": 512,
|
|
"b": 2048,
|
|
"t": 8, # CPU 물리 코어 수와 일치
|
|
"tb": 8,
|
|
"prio": 3,
|
|
"poll": 50,
|
|
"main_gpu": 1,
|
|
"split_mode": "none",
|
|
"no_mmap": True,
|
|
"measured_avg_tps": 8.81,
|
|
"measured_best_tps": 8.95,
|
|
"role_assignment": "Ultra-Heavy Reasoning Agent",
|
|
}
|