# M4 / M5 Pipeline 分工計畫

**作者**：M4  
**日期**：2026-05-07  

---

## 分工原則

| 資源 | M4 (Mac Mini) | M5 (MacBook Pro) |
|------|---------------|-------------------|
| RAM | 16GB | **48GB** |
| CPU | 10 cores | **18 cores** |
| ANE latency | 66ms | **8.5ms (7.8x faster)** |
| Gemma4 LLM | ❌ | ✅ @ 8081 |
| Disk | 1.8TB | 1.8TB |

M5 所有資源均優於 M4，因此**重處理在 M5，輕服務在 M4**。

---

## 分工表

| 工作 | 由誰執行 | 原因 |
|------|---------|------|
| **長片 Pipeline** (ASR/ASRX/Face/YOLO/OCR/Pose/Cut) | **M5** | RAM 48GB 足夠 ASR，ANE 快 7.8x |
| **5W1H LLM Summary** | **M5** | Gemma4 @ 8081 在 M5 |
| **Text Embedding (ANE CoreML)** | **M5** | 8.5ms vs M4 66ms |
| **Dev Playground (3003)** | **M4** | 測試用 |
| **Production (3002)** | **M4** | 正式 release |
| **Portal (1420)** | **M4** | 前端開發測試 |
| **測試與監控** | **M4** | 測試者角色 |

---

## 資料流

```
M5 (重處理)
├── YouTube Charade Pipeline
│   ├── ASR (faster-whisper) → 457 segments
│   ├── ASRX (speaker diarization) → voice vectors → Qdrant
│   ├── Face (swift_face + ANE FaceNet) → face.json → face_detections
│   ├── YOLO / OCR / Pose / Cut
│   ├── Rule 1 Chunking → sentence chunks
│   ├── Rule 3 Scene Chunking → scene chunks
│   ├── Face Trace + DB Store
│   └── Qdrant Sync (face + voice + rule1)
│
├── 5W1H LLM (Gemma4 31B)
│   └── Scene summaries
│
└── ANE Embedding (CoreML .mlpackage, 8.5ms)
    └── Text embedding for search

M4 (輕服務)
├── Dev Playground (3003)
├── Qdrant (voice+face+rule1 collections)
├── Portal (1420)
└── API 測試與驗證
```

---

## 實作方式

1. **M5** 處理 YouTube Charade 長片（已 sync 到 M5 demo path）
2. **M5** pipeline 完成後，結果（DB + Qdrant + output JSON）sync 回 **M4**
3. **M4** 用 sync 回來的資料進行搜尋 / 5W1H / API 驗證

---

## 優勢

- ASR 在 M5 48GB RAM 上不會 OOM
- Face embedding 在 M5 ANE 快 7.8 倍
- Gemma4 5W1H 直接在 M5 執行，不需網路延遲
- M4 維持乾淨的測試環境
