ADR-0003 — Apex Model Choices (Phase 1)
Why qwen3.5:122b-a10b for production, GLM-4.6V Flash 9B + Qwen 3.6 27B for experimental.
Status: Active — deployed 2026-05-19.
Decision
Section titled “Decision”Initial Apex model deployment:
| Tier | Alias | Backing model | Where | Q4 size |
|---|---|---|---|---|
| Production | apex-core | qwen3.5:122b-a10b | Sentinel (Mac Studio) | 81 GB |
| Experimental | lab-flash | haervwe/GLM-4.6V-Flash-9B | Ryzen | 6 GB |
| Experimental | lab-general | huihui_ai/Qwen3.6-abliterated:27b | Ryzen | 17 GB |
Context
Section titled “Context”We need locally-served LLMs that:
- Match Claude’s capability stack (vision, tools, coding, thinking) on production tier
- Fit our hardware (Mac Studio 128 GB unified, Ryzen 32 GB + 8 GB GPU)
- Have permissive licenses (no enterprise restrictions)
- Run on Ollama (existing infra)
Decision detail
Section titled “Decision detail”apex-core: Qwen 3.5 122B-A10B
Section titled “apex-core: Qwen 3.5 122B-A10B”- Unified vision-language model (no separate VL variant) — handles image input natively
- MoE architecture (10B active per token / 125B total) — production throughput on M1 Ultra
- 262K context window
- Strong on MMMU, MathVision, coding benchmarks
- Q4_K_M ≈ 81 GB — fits Sentinel’s 128 GB with ~30-40 GB headroom for KV cache and OS
- Closest open-weight equivalent to Claude Sonnet/Opus for our use cases
lab-flash: GLM-4.6V Flash 9B (haervwe)
Section titled “lab-flash: GLM-4.6V Flash 9B (haervwe)”- Native vision + tool calling — most advanced multimodal function calling we’ve seen at small size
- 6 GB fits Ryzen’s 8 GB GPU entirely — 50+ tok/s expected
- 128K context
- “Flash” variant of Z.AI’s GLM family — known for SWE-bench coding strength
- Reserved for: fast classification, vision-driven workflows, doc tooling automation
lab-general: Qwen 3.6 27B (huihui_ai/Qwen3.6-abliterated)
Section titled “lab-general: Qwen 3.6 27B (huihui_ai/Qwen3.6-abliterated)”- Experimental variant for internal workflows requiring flexible output policies
- 17 GB Q4_K_M — partial GPU offload on Ryzen (~10-15 tok/s)
- 256K context, tool calling, thinking mode
- Reserved for internal automation. Not client-facing.
Alternatives rejected
Section titled “Alternatives rejected”| Alternative | Rejected because |
|---|---|
| DeepSeek V4-Pro local | 800 GB+, datacenter-only. Stays as cortex-* cloud passthrough. |
| Kimi K2.6 local | 1T-A32B, ~500 GB at native INT4. Datacenter-only. |
| Llama 4 Scout local | 109B-A17B, ~60 GB but no good abliterated variants yet; less mature on Ollama |
| Qwen 2.5 VL 72B | Older generation, Qwen 3.5 unified VLM strictly better |
| InternVL3 78B | Vision-only specialist; we need general reasoning + vision |
| Pixtral 12B | Smaller capability ceiling for production tier |
DeepSeek V4 and Kimi K2.6 are kept available as cloud passthroughs (cortex-* aliases) for when 1M+ context or top-tier reasoning is needed.
Tier naming convention
Section titled “Tier naming convention”Established as part of this decision:
apex-*— production, client-facing, premium quality (Sentinel)lab-*— internal, experimental (Ryzen)cortex-*— cloud passthroughs (reserved namespace)
Apps reference aliases, not backing model names. Backing models can change without touching CMMD/Forge code.
Consequences
Section titled “Consequences”- Hardware capacity well-utilized: Sentinel runs flagship, Ryzen runs two complementary smaller models
- Same model family (Qwen) on production + experimental — prompt patterns transfer
- Vision is universally available across all three aliases
- Mac Studio cleanup (Spotlight off, Apple Intelligence off) was required to free 80+ GB for apex-core to fit; ongoing operational discipline needed to keep that headroom
Future model additions
Section titled “Future model additions”New aliases go through:
- PR to
cmmd-center/apex/models/registry.yml - Phase D drift workflow drafts doc updates to this page automatically
- Human reviews and merges