feat: Variet Engine v1.0 + 5-model tuning complete

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/
This commit is contained in:
Variet-Worker
2026-04-07 18:08:58 +09:00
parent 7c7a899fd5
commit c111b3a9b0
414 changed files with 3402 additions and 68598 deletions

184
scripts/optimal_configs.py Normal file
View File

@@ -0,0 +1,184 @@
# 🏆 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",
}