模擬標準 · V0.1
資料、模型與實驗要準備什麼?
之後不管是你自己,或其他會員要放資料、登記 Python 模型、跑模擬,都照這一套。目的是讓每次結果都知道「用了哪一版資料、哪一版模型、哪些參數」,之後才真的比得起來、重跑得出來。
1. 先準備資料
目前先支援 CSV、XLSX、XLS。以後再接 Database、API、Data Warehouse、SAP / MES 等來源,但不需要改掉這套資料規則。
| 要準備的東西 | 怎麼填最簡單 |
|---|---|
| Dataset ID / 版本 | 幫這份資料取一個固定編號;資料一變,就開新版本。 |
| 資料來源 / 期間 | 資料從哪裡來、涵蓋哪段時間、使用哪個時區。 |
| 欄位說明 | 每個重要欄位寫清楚名稱、意思、型態、單位和用途。 |
| 主鍵 / 時間欄位 | 如果有設備 ID、事件 ID、時間戳記,要明確標出來。 |
| 預測目標 | 監督式模型要寫清楚 target;沒有 target 也要說明。 |
| 缺值怎麼處理 | 空白代表什麼?要刪掉、補值,還是保留 Unknown? |
| 資料品質狀態 | Draft、Checked、Approved 或 Rejected。 |
| 來源追蹤 | 保留檔案 hash 或來源系統版本,另外記 owner 和備註。 |
請不要把密碼、API key 或個人識別資料直接丟進 Lab。 如果之後真的要處理 PII、機密製造資料或受法規限制資料,要先另外做權限與儲存設計。
2. 重要欄位要有「資料字典」
不要讓下一個使用者看到欄位名稱還要猜意思。跟模型有關的欄位,至少寫清楚下面幾項。
| 欄位 | 要說明什麼 |
|---|---|
| Column name | 檔案或資料庫裡真正的欄位名稱。 |
| Business meaning | 用一般人看得懂的方式說這欄代表什麼。 |
| Data type | 文字、整數、小數、布林、類別、日期時間等。 |
| Role | ID、時間、Feature、Target、Group、Weight 或不用。 |
| Unit / range | 單位、允許值或合理範圍。 |
| Missing rule | 缺值要刪、要補、保留 Unknown,或其他規則。 |
3. Python 模型要登記哪些資料?
模型程式由 Git / Codex 管理版本。一般會員未來只會選「已核准的模型版本」,不會直接在網頁上傳任意 Python 程式來執行。
| 要準備的東西 | 怎麼記 |
|---|---|
| Model ID / 版本 | 模型固定編號,以及這次使用的版本。 |
| 模型任務 | 分類、回歸、預測、異常偵測、最佳化、模擬、RL 等。 |
| Framework | 例如 scikit-learn、CatBoost、TensorFlow/Keras、PyTorch。 |
| Python 環境 | Python 版本,以及 requirements / lockfile / container。 |
| Entrypoint | Runner 真正呼叫哪個 function。 |
| Git 版本 | Repository 和精確的 commit SHA。 |
| 輸入 / 輸出格式 | 模型吃什麼欄位、回傳什麼結果。 |
| 參數 / Random seed | 預設參數與 seed 規則要能重跑。 |
| 評估指標 | 例如 Accuracy、F1、AUC、MAE、R²,加上需要的商業 KPI。 |
| 限制 | 哪些資料不適用、漂移風險、模型不能拿來做什麼。 |
| 核准狀態 | Draft → Tested → Validated → Member-ready → Archived。 |
4. 每跑一次實驗,都要留下完整紀錄
每次 Run 至少要能追到:
資料版本 + 模型版本 + Git commit + 流程版本 + 情境 + 參數 + Seed + 執行環境 + 時間 + Output + Metrics + 備註
舊結果不要覆蓋。重新跑一次,就是新的 Run ID。這樣之後你才知道模型真的變好,還是只是資料或參數換了。
5. Decision Cycle 可以自己拖拉
預設會先提供這些積木:
問題 → 資料 → 資料準備 → 模型 → 情境 → 評估 → 比較 → 決定 → 行動 → 回來檢查
之後使用者可以拖動順序、增加、刪除、複製或改名稱。畫面流程可以很彈性,但背景還是會保留資料版本、模型版本、參數和 Run 紀錄,所以不會因為你改了流程就失去可重現性。
6. 什麼時候才能給其他會員使用?
| 狀態 | 代表什麼 | 適合誰用 |
|---|---|---|
| Draft | 剛登記,還沒檢查。 | Lab Owner / Contributor。 |
| Tested | 技術上已經可以跑。 | Lab 團隊內部。 |
| Validated | 指標、限制、資料與結果已經檢查。 | 經 Reviewer 核准的人。 |
| Member-ready | 確認可以提供給其他會員做受控使用。 | 符合權限的會員。 |
| Archived | 保留歷史,但不建議再拿來做新的判斷。 | 歷史查詢 / Audit。 |
目前還是 Private Beta;未來即使增加 Contributor、Reviewer、Viewer 或其他會員等級,也沿用同一套資料、模型與實驗標準。
7. 之後其他會員怎麼分權限?
| 角色 | 之後可以做什麼 |
|---|---|
| Member Viewer | 只能使用已經標成 Member-ready 的資料、模型與流程。 |
| Lab Contributor | 可以新增資料、資料字典、流程和 Draft 模型,但不能自己把模型核准上線。 |
| Reviewer | 負責看驗證結果、指標、限制與可重現性,再決定能不能往下一階段。 |
| Lab Owner | 管理權限、核准模型、封存版本,以及調整 Lab 設定。 |
目前 Private Beta:先只開 Lab Owner。其他角色現在先定義好,未來新增使用者時,不用再重做整個資料架構。
版本規則
已核准的 Dataset、Model 或 Cycle 不要直接偷偷改掉。只要有實質變更,就開新版本。每一次 Run 都要固定記住當時使用的資料版本、模型版本、Git commit 和流程版本。