visionA/docs/autoflow/02-prd/features/feature-cluster-inference.md
jim800121chen fb7da5d180 chore(autoflow): migrate .autoflow/ 共享層文件至 docs/autoflow/
依 autoflow-agent workspace v2 設計把 PRD / 設計 / 架構 / 交付類
共享文件從個人層 .autoflow/(ignored)搬到 docs/autoflow/(進 git),
讓團隊可共享產品與架構文件,個人層只留 progress / review / testing 等
per-branch 筆記。

- 02-prd/        21 個檔(PRD、features、market-analysis 等)
- 03-design/     18 個檔(design-spec、wireframes、flows 等)
- 04-architecture/ 31 個檔(TDD、design-doc、ADR×14、API 規格等)
- 07-delivery/   3 個檔(project-summary、phase-0.6-handover、stage-deployment-setup)

合計 73 檔。原檔已從 .autoflow/ 移除(migration 工具執行 git mv,
但因 .autoflow/ 在 .gitignore 中、git 將此操作視為新增、無 rename history)。
2026-05-04 16:55:55 +08:00

3.0 KiB
Raw Blame History

Feature叢集推論P1

父文件:PRD.md | 對應 User StoriesUS-16、US-17

Phase 0 不實作。Phase 0 只留模組目錄(internal/cluster/),從 POC 搬過來但不接入 API。Phase 1 正式產品化。


概述

叢集推論是 edge-ai-platform POC 驗證過的功能:把多台 Kneron 裝置組成叢集,按加權 Round-Robin 分派推論任務。

這是 visionA Cloud 相對於 local-tool 的核心差異化功能


使用者行為Phase 1

叢集列表頁(/clusters

  • 使用者能看到自己建立的叢集
  • 每個叢集顯示:名稱、裝置數、活躍狀態、最近推論量
  • 能建立新叢集、刪除叢集、編輯叢集

建立叢集流程

  1. 點「新建叢集」
  2. 輸入叢集名稱
  3. 從已配對裝置挑選 2+ 台裝置加入
  4. 為每台裝置設權重1-10
  5. 確認建立

叢集推論操作

  • 進入某叢集的 workspace/clusters/[id]/workspace
  • 選模型(必須叢集內所有裝置都相容)
  • 選來源Camera / Image / Video / Batch
  • 啟動後dispatcher 按加權 RR 分派任務到各裝置
  • UI 顯示:
    • 每台裝置的即時負載(%
    • 每台裝置的推論 FPS
    • 整體吞吐量
    • Bounding box overlay 仍然顯示(但標注是哪台裝置推論的)

故障降級

  • 某台裝置 tunnel 斷線 → 自動從 dispatcher 移除
  • 叢集內剩餘裝置繼續服務
  • 裝置重新上線 → 自動回加入叢集

技術細節(從 POC 搬)

從 POC cluster/ 模組搬:

  • Dispatcher:加權 RR 邏輯
  • Manager:叢集 CRUD
  • Pipeline:單幀 RunInference 或連續 StartContinuous

要做的產品化改造

  • 加 user_id 隔離POC 只有一個用戶)
  • 叢集 metadata 存 DBPhase 1 接 DB 後)
  • MaxClusterSize 可配置
  • 健康度監控與告警

驗收條件Phase 1不在 Phase 0 範圍)

  • 能建立、編輯、刪除叢集
  • 叢集內至少能加 5 台裝置(上限可配置)
  • 加權 RR 分派正確(實測權重 3:1 的裝置,流量比約 3:1
  • 某裝置離線時,叢集自動降級,剩餘裝置繼續服務
  • 裝置重新上線自動加回
  • 每台裝置的即時負載 UI 更新
  • 不同使用者的叢集互相隔離

Phase 0 要做的準備

  • internal/cluster/ 模組從 POC 搬到 visionA-backend不接入 API handlers
  • Phase 0 的前端 /clusters 頁面:可留空白或顯示「即將推出」
  • 介面層面預留API Server router 保留 /api/clusters/... 路徑的預定義,先回 501 Not Implemented

Phase 2 的 TODO

  • TODO 1:跨使用者的叢集共享(多租戶團隊功能)
  • TODO 2:動態權重調整(根據實測效能自動調)
  • TODO 3:叢集級別的 Model A/B Testing
  • TODO 4:叢集級別的 fallback policy不只 RR還能 failover

連結