อัปเดต 27 ส.ค. 2569 · ข้อมูลจาก repo, memory, scripts, reports, launchd plist
Travis (M1 Ultra 128GB) รัน Ollama 7 ตัว — เป็นฐาน LLM หลักของ fleet ทั้งหมด
| โมเดล | ขนาด (GB) | Params | Quant | Context | Capabilities | บทบาท |
|---|---|---|---|---|---|---|
qwen2.5vl:7b | 5.56 | 8.3B | Q4_K_M | 128K | vision, completion | Multimodal (ภาพ+ข้อความ) |
qwen3:8b | 4.87 | 8.2B | Q4_K_M | 40K | completion, tools, thinking | 🟢 default bot-tier · local-fast |
qwen3.6:35b | 22.29 | 36B | Q4_K_M | 262K | vision, completion, tools, thinking | Speed benchmark (2.5x gemma) |
qwen3.6:27b | 16.22 | 27.8B | Q4_K_M | 262K | vision, completion, tools, thinking | 📋 case-tier · local-case fallback |
gemma4:26b | 16.75 | 25.8B | Q4_K_M | — | completion, tools, thinking | Medium fallback (travis-service) |
gemma4:31b | 18.5 | 31.3B | Q4_K_M | — | completion, tools, thinking | ✅ default accuracy · F1 0.974 |
bge-m3:latest | 1.08 | 566M | F16 | 8K | embedding | 🔤 embedding dim=1024 · RAG |
| โมเดล | ฐาน | บทบาท | โจทย์ที่ออกแบบมาทำ |
|---|---|---|---|
idmb-analyst:latest | — | Case analysis | วิเคราะห์บันทึกบริษัท/บัญชีม้า/นอมินี (แยก 4 หัวข้อ) |
idmb-extract:latest | — | Data extraction | สกัดข้อมูลจากเอกสารคดี |
idmb-law-analyst:latest | — | Legal analysis | วิเคราะห์ด้านกฎหมายทั่วไป |
idmb-fast:latest | — | Speed queries | ตอบคำถามทั่วไปเร็ว |
idmb-writer:latest | — | Writing | เขียนเอกสาร/รายงาน |
| โมเดล | แหล่ง | Port | บทบาท |
|---|---|---|---|
mlx-community/Qwen2.5-7B-Instruct-4bit | HuggingFace | :8082 | MLX local inference (Apple Silicon native) |
mlx-community/Qwen2.5-14B-Instruct-4bit | HuggingFace | MLX local inference — ขนาดกลาง | |
/Users/mac/fine-tune/models/qwen2.5-7b-4bit | Fine-tuned local | 🟢 Router profile=local-mlx (fine-tuned) |
| โมเดล | Host:Port | Quant | บทบาท | Timeout |
|---|---|---|---|---|
aibeast-qwen3.6-35b-q8 | 100.75.87.68:30000 | Q8 | 📋 Case/PII primary — local-case profile | 180s |
หมายเหตุ: aibeast มี fallback ไป Ollama 27B ถ้า Q8 ล้ม (ใน router code)
| Provider | Model | Role | Cost |
|---|---|---|---|
| xai-oauth | grok-4.3 | 🟢 Hermes primary reasoning | $200/mo flat (tier-5 SuperGrok) |
| xai-oauth | grok-4.20-0309-reasoning | Fallback 1 | $0 marginal |
| xai-oauth | grok-4.20-0309-non-reasoning | Fallback 2 | $0 marginal |
| ไฟล์ | ขนาด | VRAM ต้องการ | หมายเหตุ |
|---|---|---|---|
Qwen3.8-27B-abliterated-mtp-f16.gguf | ~54.6 GB | 48 GB+ | highest quality · imatrix source |
Qwen3.8-27B-abliterated-mtp-Q6_K.gguf | ~22.4 GB | 24 GB | 🟢 recommended balance |
Qwen3.8-27B-abliterated-mtp-Q4_K_M.gguf | ~16.8 GB | 16 GB | ยังไม่มี imatrix — คุณภาพจะดีขึ้น |
mmproj-Qwen3.8-27B-GGUF.gguf | ~931 MB | +extra | multimodal projector (ภาพ) |
abliterated = training-free refusal removal · MTP head preserved (self-speculative decoding) · Apache-2.0
script: scripts/travis_ai_router.py · Port: :8787 · launchd managed
| Profile | Provider | Model | Max Tokens | Context | Keep Alive | Cloud? | Use Case |
|---|---|---|---|---|---|---|---|
local-fast | Ollama | qwen3:8b | 512 | 16K | 12h | ❌ | Bot-tier default — always-warm |
local-private | Ollama | qwen3:8b | 512 | 16K | 12h | ❌ | Privacy guard — no escalation to case |
local-case | aibeast | Qwen3.6:35b Q8 | 1500 | 32K | 45m | ❌ | 📋 PII/case — fallback: Ollama 27B |
local-mlx | MLX | qwen2.5-7b-4bit | 512 | — | — | ❌ | Apple Silicon native inference |
local-rag | Ollama | qwen3:8b | 768 | 16K | 12h | ❌ | RAG answer + bge-m3 embedding |
hybrid-strong | Ollama | qwen3:8b | 768 | 16K | 12h | ❌ | Long-context >12K chars |
1. Explicit profile parameter? → use it 2. case=true / case_work=true? → local-case (aibeast Q8) 3. private=true OR text contains "protected|pii|credential|token"? → local-private (stay bot-tier, NO escalation) 4. use_mlx=true? → local-mlx 5. text length > 12,000 chars? → hybrid-strong 6. Default → local-fast (qwen3:8b)
aibeast Q8 (local-case primary) ↓ [ถ้า timeout / 400 / empty response] Ollama qwen3.6:27b (travis fallback — case keep_alive 45m, num_ctx 32K)
| Metric | gemma4:31b | qwen3.6:35b | ผู้ชนะ |
|---|---|---|---|
| Speed (tok/s, M1 Ultra) | 19–20 | 47–55 | 🟢 qwen3.6 (2.5x) |
| Extraction F1 | 0.974 | 0.883 | 🔴 gemma4 (10% Δ) |
| Composite F1 (100-ข้อ golden set) | 0.982 | 0.874 | 🔴 gemma4 |
| Context window | — | 262K | 🟢 qwen3.6 |
| Probe | Model | Result | Elapsed | Output |
|---|---|---|---|---|
| Ollama tags | — | PASS | 0.02s | 7 models loaded |
| Ollama chat | qwen3:8b | PASS | 0.95s | 57 tokens |
| Embedding | bge-m3 | PASS | 0.20s | dim=1024 |
| MLX models | — | PASS | 0.02s | 3 models |
| MLX chat | qwen2.5-7b-4bit | PASS | 0.66s | prompt=49, comp=15 |
| Router health | — | PASS | 0.01s | ok |
| Router chat | local-fast | PASS | 0.31s | 310 tokens |
| Metric | Value |
|---|---|
| Requests | 2 |
| PASS | 2/2 |
| Min elapsed | 1.01s |
| Median elapsed | 1.44s |
| Max elapsed | 1.87s |
script: scripts/lane-heartbeat.sh · Deploy: travis (launchd) · Principle: freshness ≠ process up
| Lane | Severity | Probe Type | Source |
|---|---|---|---|
| aibeast-storage | critical | storage freshness | travis |
| aibeast-ai | warn | fleet_gen_test.py | travis |
| aibeast-mineru | warn | OCR content probe | travis |
| aibeast-vram | warn | VRAM utilization | travis |
| aibeast-units | warn | model inventory | travis |
| aibeast-dashboard | warn | dashboard health | travis |
| rabbit-ollama | warn | ingress queue | travis |
| memory-git-sync | critical | unpushed commit / dirty tree | travis |
| hermes-pollers | critical | Telegram webhookInfo (pending+409) | travis/rose/DO |
| offsite-backup | critical | recovery-status / receipt | rose |
| n8n | critical | Service-Health workflow freshness | HOS |
| existing-monitors | critical | fleetbrief + fleetmon staleness | travis |
| postgres | critical | pg_isready + restart+FATAL counts | travis |
| postgres-rose | critical | thaithabian.doc count + backup freshness | rose |
| db-vault | critical | DSM/QNAP artifact freshness | travis |
| metabase | warn | dashboard freshness | travis |
| vercel | warn | site accessibility | external |
| webui-hub | warn | Open WebUI hub | travis |
| travis-ai-services | warn | router+ollama+mlx health | travis |
| macos-autoupdate | warn | 4 toggles must be 0 | self |
LLM Hub — Ollama 7 models + MLX 3 models + Router :8787 + Service :8100
Monitoring — lane-heartbeat (primary) · fleet-brief · Tailscale proxy
Services — n8n, metabase, memory-git-sync, hermes pollers
Primary AI — grok-4.3 via xai-oauth ($200 flat)
Database — thaithabian (คดี 25690605) · backup → Rabbit
Operations — topman-data-recovery · Telegram bot (jin/rosa)
GPU Factory — OCR/vision/embedding queue
Storage — 8TB APFS (1.82T + DATA 3.63T + BOOTCAMP 1.83T)
Template drift — compare against travis sha256
Submitter — protected chroot @ /drop (gpusubmit account)
Pipeline — prepare-pilot → submit-pilot (fail-closed receipt SHA-256)
GPU — macprowin worker pulls via Tailscale SFTP
Case LLM — aibeast profile → Q8 quantized primary
OCR — MinerU pipeline · pipeline > vlm (OOM on vlm)
Fallback → Ollama 27B if aibeast down
DO — Tier 1 Git (PII-allowed) · Leo DO
DSM — Primary backup destination (DB_VAULT)
QNAP — Secondary backup (rabbit mirror 07:30)
Rabbit — Recovery receipt · PostgreSQL backup relay
config ชี้ llama3.3:70b แต่ Travis Ollama ไม่มีโมเดลนี้ → Layer 2 Medium ยอมแพ้ตลอด
แก้: เปลี่ยนเป็น gemma4:26b ที่มีอยู่
GGUF quant (Q4_K_M) คุณภาพจะดีขึ้นมากเมื่อทำ imatrix calibration กับ corpus ไทย TODO: สร้าง imatrix corpus → re-quantize → benchmark
VLM pipeline OOM ทุกครั้ง (ต้องการ ~2.2GB แต่เหลือ ~1.5GB) แก้: ใช้ pipeline backend (ชนะ benchmark) แทน vlm/hybrid หรือ: เพิ่ม VRAM / ลด batch size
Router ต้องระบุ model id/path ชัดเจนสำหรับ MLX เพราะไม่มี default model
แก้: ใช้ profile=local-mlx หรือ use_mlx=true เสมอ
| ลำดับ | ข้อเสนอ | ผลกระทบ | ความเร่งด่วน |
|---|---|---|---|
| 1 | แก้ llama3.3:70b → gemma4:26b ใน travis-service .env | Layer 2 Medium จะทำงานได้ | สูง |
| 2 | ทำ imatrix calibration สำหรับ Qwen3.8-27B Abliterated | คุณภาพ Q4 จะดีขึ้นมาก | กลาง |
| 3 | auto-sync template คดีระหว่าง nodes | ทุกเครื่องมี iOS guard เดียวกัน | กลาง |
| 4 | เพิ่ม concurrency router จาก 2 → 4 (หลังจาก health check ผ่าน) | รองรับ agent traffic สูงขึ้น | ต่ำ |
| 5 | pin aux models (vision/compression) ไป xai-oauth แทน openrouter | ประหยัด token + ป้องกัน 401 | กลาง |
| 6 | deploy aibeast VRAM monitor (ไม่ใช่แค่ /health 200) | จับ OOM ก่อน production | กลาง |
| เครื่องมือ | ตำแหน่ง | หน้าที่ | Deploy |
|---|---|---|---|
| travis_ai_router.py | scripts/ | Smart LLM routing (6 profiles) | launchd |
| travis_llm_health_check.sh | scripts/ | Health check → report markdown | manual / make |
| travis_llm_benchmark.sh | scripts/ | Benchmark + concurrency test | manual / make |
| fleet_gen_test.py | scripts/aibeast/ | วัดผลผลิตจริง (ไม่เชื่อ /health 200) | manual |
| lane-heartbeat.sh | scripts/ | 16-lane freshness monitoring | launchd (travis) |
| llama-relaunch.sh | scripts/aibeast/ | เปลี่ยนค่า llama-server อย่างปลอดภัย | manual |
| ocr_backend_bench.py | scripts/aibeast/ | เทียบ pipeline vs vlm vs hybrid | manual |
| ocr_content_probe.py | scripts/aibeast/ | ตรวจ OCR ได้เนื้อหาจริงหรือเปล่า | manual |
| topman-gpu-factory CLI | projects/topman-gpu-factory/ | GPU queue on macprowin (OCR/vision/embed) | Windows service |
| travis-service :8100 | ~/travis-service/ (travis) | Hybrid LLM Gateway v3.3-glm5 | PM2 |
สร้างโดย โรซ่า · ข้อมูลจาก: reports/travis_llm_*.md, scripts/*.sh, scripts/*.py, TOPMANIDMB-Vault/CC-Memory/, launchagents/, Makefile, projects/topman-gpu-factory/
ตรวจสอบความถูกต้องกับระบบ live ก่อนนำไปปฏิบัติ