Soldato — 기능명세서 v0.2

코드네임: Pizza | 베이스: Gemma 4 (Apache 2.0) Opus 4.6급 코딩 퍼포먼스를 로컬에서 달성하는 커스텀 AI 모델. BigBoss OS 에이전트용. Capomastro, Consigliere와 함께 독립 라이브러리.

1. 배경 및 목적

현재 문제

  • 전체 에이전트가 opus 사용 → API 비용 높음
  • 단순 코딩 작업에도 opus급 모델 사용 → 비효율
  • 외부 API 의존 → 오프라인 불가, 레이턴시

목표

  • Opus 4.6급 코딩 퍼포먼스 (풀 파이프라인 적용 시 94-96%)
  • 비용 99% 절감 (완전 로컬, 하이브리드 시 ~$5-10/월)
  • BigBoss OS 도메인 특화 (Capomastro 구조, MVVM, SwiftUI/Compose 패턴)
  • 3티어 제품 라인업 (Lite/Main/Pro → 16GB~96GB 커버)
  • 독립 라이브러리 (bin/Soldato)

2. 접근 방식

2.1 베이스 모델: Gemma 4 (2026-04-02 출시)

Gemma 4 31B Dense (raw)
  코딩: LiveCodeBench 80%
  수학: AIME 2026 89.2%
  에이전트: τ2-bench 86.4%
  Arena Elo: 1452 (#3)
  컨텍스트: 256K
  멀티모달: 텍스트/이미지/비디오/오디오
  Function calling: 네이티브
  라이선스: Apache 2.0

2.2 증류 (Knowledge Distillation)

Opus 4.6 (교사) → Gemma 4 31B (학생)
  ↓ CoT 포함 18만건 풀스택 데이터
  ↓ QLoRA (mlx-lm 또는 Unsloth)
  ↓
Pizza-Distilled → 87% (Sonnet 4.5 근접)

2.3 LoRA + RLHF/DPO

Pizza-Distilled
  ↓ 도메인 LoRA 9종 (Swift/Kotlin/TS/서버/DB/웹/보안/인프라/디버그)
  ↓ BigBoss OS xcodebuild/gradle/jest → 성공/실패 → DPO
  ↓
Pizza-Tuned → 92% (Sonnet 4.5 초과)

2.4 셀프 블랜딩 (SLERP)

Gemma 4 31B ──┬── 코딩 FT (LoRA merge) ──── Pizza-Code
              │
              └── 추론/에이전트 FT ────────── Pizza-Reason

Pizza-Code (60%) + Pizza-Reason (40%) → SLERP → Pizza-Blend
동일 아키텍처이므로 SLERP 완벽 호환
→ 94% (Opus 근접)

2.5 하이브리드 서빙 (최종)

유저 쿼리 → 난이도 판정 (confidence score)
  ├── 90% 쉬움/보통 → Pizza 로컬 ($0)
  └── 10% 어려움 → Opus 4.6 API (~$5-10/월)
                     └→ 응답을 온라인 증류로 재활용
                        → 시간 경과: 10% → 5% → 2% 감소

최종: 96% (Opus 4.6 동급~초과)

3. 기술 스택

구성1순위2순위
베이스 모델Gemma 4 31B DenseGemma 4 26B MoE
Speculative DraftGemma 4 E2B (2.3B)
파인튜닝QLoRA (Unsloth)LoRA (mlx-lm)
블랜딩mergekit SLERP
RLHFtrl DPO (HuggingFace)
추론 (로컬)llama.cpp / MLX (Mac Metal)Ollama
추론 (서버)vLLM / SGLang
양자화GGUF Q4_K_M
KV 최적화Prefix Caching + Q4 KV + PagedAttention
에이전트 스케줄러BigBoss OS 자체 구현 (Active/Warm/Cold)
증류 데이터Opus 4.6 API CoT 출력 수집
언어Python (학습), Go (CLI 래퍼)

4. CLI 인터페이스

# 모델 관리
bin/Soldato list                    # 설치된 모델 목록
bin/Soldato pull deepseek-coder     # 모델 다운로드
bin/Soldato pull soldato-v1    # 커스텀 증류 모델

# 추론
bin/Soldato run "SwiftUI로 로그인 뷰 만들어"
bin/Soldato run --model soldato-v1 "Compose NavHost 구현"

# 증류 데이터 수집
bin/Soldato collect --source opus   # opus 출력 수집 시작
bin/Soldato collect --export data/  # 수집 데이터 내보내기

# 파인튜닝
bin/Soldato train --base deepseek-coder --data data/ --output models/v1
bin/Soldato train --method lora --epochs 3

# 평가
bin/Soldato eval --model soldato-v1 --benchmark bigbossos-bench
bin/Soldato eval --compare opus,deepseek,soldato-v1

# 서버 (에이전트 연동)
bin/Soldato serve --port 8080       # OpenAI 호환 API 서버

5. BigBoss OS 연동

에이전트별 모델 매핑

server/.env:

# C레벨 (CTO/CPO/CDO/CSO/CMO): 분석/위임 — 정확도 최우선
CLEVEL_MODEL=opus

# Developer: 코딩 — Soldato 사용
DEVELOPER_MODEL=soldato-v1

# Researcher/Designer: 가벼운 작업
UTILITY_MODEL=deepseek-coder

llm.ts 변경

// 역할별 모델 매핑 (2026-04-15 기준: PM/Director 패기, C레벨로 통합)
const roleModel: Record<string, string> = {
  cto: process.env.CLEVEL_MODEL || 'opus',
  cpo: process.env.CLEVEL_MODEL || 'opus',
  ios_developer: process.env.DEVELOPER_MODEL || 'opus',
  android_developer: process.env.DEVELOPER_MODEL || 'opus',
  // ...
};

// callAgent에서 역할별 모델 사용
const agentModel = roleModel[role] || model;
args.push('--model', agentModel);

Soldato API 서버

bin/Soldato serve → localhost:8080 (OpenAI 호환)
  ↓
Claude CLI --model 대신 → OpenAI 호환 클라이언트로 호출
  또는
LLM_PROVIDER=openai LLM_MODEL=soldato-v1 → .env 설정

6. 증류 데이터 수집 전략

Phase 1: 자동 수집

  • BigBoss OS 에이전트 실행 시 입출력 자동 기록
  • ios_dev_1의 입력(task) + 출력(코드) = 학습 데이터 1건
  • 매 실행마다 data/distillation/ 에 자동 저장

Phase 2: 벤치마크 생성

  • BigBoss OS 실제 태스크에서 벤치마크 추출
  • "할일앱 iOS 구현", "가계부 Android 구현" 등
  • opus 출력을 정답으로

Phase 3: 학습

  • 수집 데이터 1000건+ → LoRA 파인튜닝
  • 평가: 벤치마크에서 opus 대비 정확도 비교

7. 성능 목표

항목Pizza-LitePizzaPizza-Pro
베이스Gemma 4 E2BGemma 4 E4BGemma 4 31B
풀파이프 코딩~72%~83%94-96%
비용0원~$5-10/월~$5-10/월
메모리 (모델)1.5 GB3 GB18 GB
타겟 RAM16GB+24GB64GB+ (권장 96GB)
에이전트 수8-12개5-8개16개
오프라인
Opus 대비Haiku급Sonnet급Opus 동급

8. 개발 로드맵

Phase기능복잡도
1Gemma 4 31B 로컬 서빙 (llama.cpp/MLX)낮음
2증류 데이터 자동 수집 (에이전트 실행 로그)낮음
3Opus 4.6 증류 (CoT 18만건 QLoRA)높음
4도메인 LoRA 9종 파인튜닝중간
5RLHF/DPO (빌드 피드백 자동화)중간
6셀프 블랜딩 (코딩FT + 추론FT → SLERP)중간
7하이브리드 서빙 (로컬 90% + Opus 10%)높음
8KV Cache 최적화 + Agent Scheduler높음
9Pizza-Lite/Main 티어 파생 (E2B/E4B 베이스)중간
10지속적 학습 (온라인 증류 + 주기적 재학습)중간

9. 리스크

리스크대응
증류 모델 품질 부족하이브리드로 어려운 건 Opus fallback + 온라인 증류
GPU 없음 (학습)Google Colab Pro ($10/월) 또는 RunPod
로컬 추론 느림Q4_K_M + Metal 가속 + Speculative Decoding
Opus API 비용 (증류 데이터 수집)에이전트 실행 로그 재활용 (추가 비용 0)
31B 모델 24GB에 안 맞음3티어 분리 (24GB 메인 타겟 = E4B)
16에이전트 메모리 부족KV cache 최적화 6종 + Agent Scheduler
Gemma 4 파인튜닝 생태계 미성숙Unsloth/HF TRL 이미 지원 확인

10. BigBoss OS 라이브러리 전체 구조

BigBoss OS Libraries:
├── Capomastro  — 프로젝트 생성 (Go, 단일 바이너리)
│     bin/Capomastro --platform ios --pkg ... --out .
│
├── ProjectMemory   — 메모리/검색 (Go, SQLite+벡터)
│     bin/ProjectMemory search "보안 결정"
│     bin/ProjectMemory index docs/
│
└── Soldato    — AI 모델 (Python+Go, Ollama)
      bin/Soldato serve --port 8080
      bin/Soldato train --base deepseek --data data/
      bin/Soldato eval --compare opus,soldato-v1