fix: routing priority — MoE first, VLM second, Dense last (slow)

All tiers now follow MoE → VLM → Dense priority order since
Dense (RTX 3090) can be slow. VLM acts as overflow absorber.
This commit is contained in:
Abiba
2026-05-19 17:38:21 +00:00
parent f519a3fa60
commit bfc38f5436
+6 -7
View File
@@ -168,7 +168,7 @@ def route(rd, tier):
if not is_gpu_busy("qwen3.5-9b-vlm"):
return {"model":"qwen3.5-9b-vlm","reason":"lightweight"}
# VLM busy — fall back to Dense, then MoE
fallback = [m for m in ["qwen3.6-27B-code","qwen3.6-35B-A3B"] if m in avail]
fallback = [m for m in ["qwen3.6-35B-A3B","qwen3.6-27B-code"] if m in avail]
result = select_best_gpu(fallback, "lightweight_fallback")
if result: return result
@@ -182,15 +182,14 @@ def route(rd, tier):
# TIER 3: Heavy reasoning — large context or very long conversations
if t > 4000 or turns > 8:
candidates = [m for m in ["qwen3.6-27B-code","qwen3.6-35B-A3B","qwen3.5-9b-vlm"] if m in avail]
candidates = [m for m in ["qwen3.6-35B-A3B","qwen3.5-9b-vlm","qwen3.6-27B-code"] if m in avail]
result = select_best_gpu(candidates, "heavy_reasoning")
if result: return result
# TIER 4: Default — Dense preferred for medium tasks, MoE as workhorse, VLM as overflow
if turns <= 6 and t <= 4000:
# Medium complexity — try Dense first, then MoE, then VLM
candidates = [m for m in ["qwen3.6-27B-code","qwen3.6-35B-A3B","qwen3.5-9b-vlm"] if m in avail]
result = select_best_gpu(candidates, "medium_task")
# TIER 4: Default — MoE first, VLM helps, Dense last (slow)
if t <= 4000:
candidates = [m for m in ["qwen3.6-35B-A3B","qwen3.5-9b-vlm","qwen3.6-27B-code"] if m in avail]
result = select_best_gpu(candidates, "default")
if result: return result
# Fallback — best available