昨天我把 TTFT、end-to-end latency、queue wait 與 availability 寫成暫定 SLO。寫完後馬上出現一個很實際的問題:我連這個平台在固定條件下的正常值都還不知道,怎麼判斷變慢了?
所以今天不調參數,也不追求一個漂亮的 tokens/s。我先定義一份後面可以反覆重跑的 baseline contract。
Repository 裡已經有一次 safe capability scan,manifest 明確寫著:
workload_executed: false
inference_benchmark: false
nvidia-gpu-telemetry: unsupported
這次 scan 有的用途:證明收集器能在不讀取敏感環境資訊的條件下運作,但沒有發出模型請求,也沒有取得 GPU telemetry,因此不能用來回答 TTFT、P95、throughput、GPU utilization 或 VRAM。
這是今天的第一個結論:
收集到主機資訊,不等於已經建立 AI 服務效能基準。
只記錄延遲還不夠。如果下次重跑時換了模型、輸入、輸出上限或 runtime,兩個數字就沒有可比性,把 Day 04 的變因固定為:
| 項目 | Day 04 規則 | 為什麼要固定 |
|---|---|---|
| Model | 記錄完整模型名稱與版本 | 模型與量化方式會改變速度與記憶體佔用 |
| Runtime | 記錄 serving runtime 與版本 | Day 06 要比較 Ollama 與 vLLM |
| Prompt set | 使用固定 synthetic JSONL | 避免每次輸入長度與內容不同 |
| Generation | temperature=0、固定 max_tokens |
降低輸出差異造成的干擾 |
| Warm-up | 暖機請求不納入統計 | 把初次載入與穩定服務分開 |
| Repetition | 每個 prompt 至少三次 | 單次請求無法形成 percentile |
| Concurrency | 固定為 1 | Day 07 才提高併發,不混在今天 |
將三個公開 synthetic prompts 放在 datasets/synthetic/inference/day04-prompts.jsonl。內容只涵蓋摘要、短解釋與概念比較,不包含工作資料。
Day 03 已經把使用者感受拆成多個 SLI。Day 04 的 runner 也沿用同樣的拆法:
寫的 labs/sre/benchmark_openai_stream.py 只儲存數值,不保留模型回答、endpoint、header 或憑證。執行方式是:
python3 labs/sre/benchmark_openai_stream.py \
--base-url <AUTHORIZED_OPENAI_COMPATIBLE_V1_URL> \
--model <MODEL_ID> \
--repetitions 3 \
--warmup 1 \
--max-tokens 128 \
--output <PUBLIC_SAFE_RESULT_JSON>
這個 runner 刻意不做 concurrency test。今天如果一邊測 baseline、一邊改併發,後面看到 P95 上升時就不知道是哪個變因造成。
只在另一個時間點執行 nvidia-smi,不能解釋某一筆慢請求當下發生什麼事。操作文件會要求執行者同步取得:
timestamp, gpu_utilization, memory_used, memory_total
文章只需要去識別後的時間序列,不需要 GPU UUID、hostname 或個人環境資訊。如果執行環境無法取得 NVIDIA telemetry,就把 GPU 欄位標示為未驗證,不用別的主機資料代替。
我不會先設定「多少 tokens/s 才叫快」。我會先檢查:
直到這些條件都能回答,才會把結果當成後續 Ollama/vLLM、concurrency、OOM 與容量規劃的對照組。
今天最關鍵的發現是:現有 capability scan 沒有跑 workload,所以目前沒有可以公開宣稱的推論效能 baseline。
我已經把輸入、runner、變因、指標與去識別規則固定下來。等操作結果回來後,才能用實際 TTFT、P50、P95、throughput、GPU utilization 與 VRAM 補完這份基準。
下一篇會接著問:即使已經拿到 GPU 使用率,為什麼還是不夠?
下一篇:Day 05|GPU 可觀測性:只看 nvidia-smi 為什麼不夠
本篇目前只完成 baseline contract 與 runner 驗證,尚未產生可宣稱的推論效能結果。