前一天,我才剛解決一個問題:
同一個 Model,要怎麼跑在不同的 Edge Device?
我原本以為,只要把 Model 對應到正確的 Runtime 和 Hardware,就差不多了。
例如:
Person Detection Model
│
├── QCS6490
│ └── QNN / HTP
│
├── NVIDIA
│ └── TensorRT
│
└── x86
└── ONNX Runtime
看起來很合理。
但是做到這裡,我突然想到一個很現實的問題:
Model 跑得起來,就代表可以交給客戶嗎?
答案是:不一定。
假設今天 Model Registry 裡面有一個:
Person Detection
Version: 1.2
Target: QCS6490
Runtime: QNN
Backend: HTP
系統告訴我:
✅ Compatible
那是不是就可以直接 Deploy?
如果是以前做 PoC,我可能會說:
「跑起來看看就知道了。」
但如果這是一個要交給客戶的產品,我覺得這樣不太夠。
因為可能出現很多問題。
最基本的還是 Compatibility。
例如:
尤其前面 Qualcomm 的整合就讓我很清楚:
「Model 是 ONNX」並不代表「QCS6490 就一定可以跑」。
中間還有 Model Conversion、QNN、Backend、HTP 等等。
所以第一個結果只能是:
Compatibility
↓
PASS / FAIL
但這還不夠。
假設客戶需求是:
Person Detection 至少 20 FPS。
結果我實際測:
QCS6490
Model v1.2
QNN / HTP
FPS = 31
很好。
但如果另一個 Model:
FPS = 12
它不是不能跑。
它只是不符合我們的產品需求。
所以我開始覺得:
Compatible 不代表 Qualified。
這兩個概念要分開。
這是我覺得從 PoC 走向 Product 很重要的一個差別。
PoC 可能只看:
「跑個 5 分鐘,OK。」
但客戶的 Edge Device 可能是:
24 小時、7 天、甚至長時間持續運作。
所以我會開始看:
例如:
30 秒
31 FPS
Memory 正常
↓
2 小時
29 FPS
Memory 開始增加
↓
8 小時
Application Crash
這個 Model 當然不能交付。
所以又多了一層:
Stability
這一關反而是 AI PM 最不能忘記的。
假設 Model:
FPS 很漂亮
QCS6490 PASS
Memory PASS
Stability PASS
但是實際放到客戶的無人區域:
Person Detection
↓
誤判很多
↓
一直產生 Event
↓
一直 Alert
↓
客戶最後把 Alert 關掉
那這個 Model 算成功嗎?
我覺得不算。
因為我們真正做的不是:
Model Demo
而是:
Customer Use Case
所以最後還是要回到我們一開始做的:
Person Detection
↓
Geofence
↓
Rule
↓
Event
↓
Alert / Action
Model 的結果必須放進真正的產品流程裡驗證。
Model Validation
│
┌───────────────┼────────────────┐
↓ ↓ ↓
Compatibility Performance Stability
│ │ │
│ │ │
Format FPS / Latency Long Run
Runtime CPU / NPU Memory
Backend Memory Temperature
│
└────────────────┬──────────────┘
↓
Use Case Validation
│
Detection Result
↓
Event
↓
Customer
最後才會得到:
Model v1.2
QCS6490
QNN / HTP
Compatibility PASS
Performance PASS
Stability PASS
Use Case PASS
↓
APPROVED
這時候我才比較敢說:
「這個 Model 可以交給客戶。」
以前我以為 Model Registry 只是:
把 Model 放進去,管理版本。
但做到這裡,我開始覺得它其實還應該知道:
Model
├── Version
├── Artifact
├── Target Device
├── Runtime
├── Backend
├── Performance
├── Validation Result
└── Approval Status
所以當 AI PM 在 Cloud 選一個 Model 時,不應該只是看到:
Person Detection v1.2
而是看到:
Person Detection v1.2
QCS6490 / QNN / HTP
31 FPS
Validation: PASS
Status: Approved
這時候才真的比較像一個可以被交付的 Product Asset。
今天這個 Model 是我們自己驗證過的,所以我敢放進 Registry。
可是如果有一天客戶跟我說:
「我們公司自己有一個 AI Model,可以直接上傳到你的 Cloud 嗎?」
這時候我突然又不敢說 Yes 了。
因為:
上傳成功,不代表可以部署。