From 4eed0bc4f824d211ab77b3754bf6dbfc1a290e36 Mon Sep 17 00:00:00 2001 From: Hyungi Ahn Date: Thu, 14 May 2026 08:16:40 +0900 Subject: [PATCH] =?UTF-8?q?refactor(ai):=20GPU=20Ollama=20LLM=20=EC=A0=9C?= =?UTF-8?q?=EA=B1=B0=20=E2=80=94=20Mac=20mini=2026B=20=EB=8B=A8=EC=9D=BC?= =?UTF-8?q?=20generation=20=ED=98=B8=EC=8A=A4=ED=8A=B8=EB=A1=9C=20?= =?UTF-8?q?=ED=86=B5=EC=9D=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit GPU 서버 정체성 = embedding/rerank/STT/OCR/marker 특화 백엔드. Generative LLM 0. Mac mini gemma-4-26B-A4B 가 triage + primary + classifier 모두 흡수. fallback 은 Claude Sonnet 4 API (자동 trigger, premium 과 budget 공유). - triage: GPU Ollama gemma4:e4b → Mac mini :8801 26B (primary 동일 endpoint) - fallback: GPU Ollama gemma4:e4b → Claude Sonnet 4 API (require_explicit_trigger=false) - classifier: GPU Ollama gemma4:e4b → Mac mini :8801 26B (max_tokens 512) - primary / premium / embedding / rerank: 변경 0 후속 (별 커밋): `ssh gpu "ollama rm gemma4:e4b-it-q8_0"` — VRAM ~11GB 회수. Mac mini 단일화 위험 mitigation = (1) Mac mini uptime 31d 무중단 검증, (2) Claude Sonnet 4 API daily_budget $5 안 (Mac mini up 가정 호출 빈도 낮음), (3) Beszel siteMonitor :8801 health check + Synology Chat alert. plan: ~/.claude/plans/rosy-launching-otter.md §C/§D/§E (7-device LLM 배치 + 운영 전략) Co-Authored-By: Claude Opus 4.7 (1M context) --- config.yaml | 31 ++++++++++++++++++------------- 1 file changed, 18 insertions(+), 13 deletions(-) diff --git a/config.yaml b/config.yaml index 42a6162..3cc09d0 100644 --- a/config.yaml +++ b/config.yaml @@ -5,12 +5,15 @@ ai: endpoint: "http://ai-gateway:8080" models: - # ─── 2-tier routing (PR-B) ─── - # triage: 상시 분류·요약·근거 선별. GPU Ollama gemma-4b (Q8_0, ~11.6GB). - # concurrent OK — llm_gate Semaphore 경유 불필요. + # ─── 단일 generation 호스트 routing (2026-05-14 GPU LLM 제거) ─── + # GPU Ollama gemma4:e4b-it-q8_0 제거. Mac mini 26B-A4B 가 triage + primary + classifier 모두 흡수. + # fallback 은 Claude Sonnet 4 API (Mac mini 다운 시 자동 trigger, premium 과 budget 공유). + # plan: ~/.claude/plans/rosy-launching-otter.md §C/§D/§E + + # triage: 상시 분류·요약·근거 선별. Mac mini 26B (primary 와 동일 endpoint, 짧은 max_tokens). triage: - endpoint: "http://ollama:11434/v1/chat/completions" - model: "gemma4:e4b-it-q8_0" + endpoint: "http://100.76.254.116:8801/v1/chat/completions" + model: "mlx-community/gemma-4-26b-a4b-it-8bit" max_tokens: 4096 timeout: 30 context_char_limit: 120000 @@ -23,11 +26,14 @@ ai: timeout: 180 context_char_limit: 260000 - # fallback: primary 장애 시 최후 방어선. triage 와 동일 모델 — gemma-4b 로 퇴행 허용. + # fallback: primary 장애 시 최후 방어선. Claude Sonnet 4 API (소액 한도, 자동 trigger). + # 호출 빈도 낮음 가정 (Mac mini 가 거의 항상 up) → premium 과 budget 공유 OK. fallback: - endpoint: "http://ollama:11434/v1/chat/completions" - model: "gemma4:e4b-it-q8_0" + endpoint: "https://api.anthropic.com/v1/messages" + model: "claude-sonnet-4-20250514" max_tokens: 4096 + daily_budget_usd: 5.00 + require_explicit_trigger: false timeout: 120 premium: @@ -45,12 +51,11 @@ ai: endpoint: "http://reranker:80/rerank" model: "bge-reranker-v2-m3" - # Phase 3.5a answerability classifier. 모델은 gemma4:e4b 로 통일 (exaone 제거 반영). - # classifier_service 가 hasattr 체크로 optional 이므로 이 섹션 제거 시 classifier gate - # 는 자동 skip (score-only). 지금은 의도적으로 유지. + # Phase 3.5a answerability classifier. 2026-05-14 GPU LLM 제거 후 Mac mini 26B 로 swap. + # classifier_service 가 hasattr 체크로 optional 이므로 이 섹션 제거 시 classifier gate 는 자동 skip (score-only). classifier: - endpoint: "http://ollama:11434/v1/chat/completions" - model: "gemma4:e4b-it-q8_0" + endpoint: "http://100.76.254.116:8801/v1/chat/completions" + model: "mlx-community/gemma-4-26b-a4b-it-8bit" max_tokens: 512 timeout: 10 # 제거: vision (미사용) -- 2.52.0