簡介
訓練模型但未投入使用後,該值仍保留在筆記本中。本文可協助您使用 FastAPI 和 Docker 將模型打包成簡單的服務,足以用於內部演示或作為實際部署的基礎。
課程目標
- 正確序列化模型。
- 建立一個接收輸入並傳回預測的 API。
- 使用 Docker 打包服務。
所需的最低輸出
- 儲存的模型文件,例如使用 joblib。
- 檔案應用程式FastAPI。
- 文件要求或同等文件。
- Dockerfile 穩定運行服務。
提議的程序
- 訓練模型並儲存工件。
- 定義輸入或輸出模式。
- 寫入終點/預測。
- 根據樣品請求進行本地測試。
- 使用 Docker 進行容器化。
FastAPI框架程式碼
從 fastapi 匯入 FastAPI
從 pydantic 匯入 BaseModel
導入作業庫
將 pandas 導入為 pd
進入真實環境時要考慮的事情
- 在適當的層級記錄請求和回應。
- 管理模型版本。
- 更仔細地驗證輸入。
- 逾時、重試和監控。
常見錯誤
- 儲存模型但忘記預處理管道。
- API 架構與訓練資料不符。
- 用漂亮的數據進行測試,不要測試錯誤輸入。
練習練習
- 將客戶流失或住房模式打包到 API 中。
- 建立 3 個範例請求:有效、缺少欄位、錯誤的資料類型。
- 撰寫一個簡短的自述文件,描述如何使用 Docker 在本地運行。
完成標準
- 有一個可以在本地運行的預測 API。
- Docker 建置並成功運行。
- Schema 輸入足夠清晰,以便於其他人呼叫 API。
逐步練習(進階)
- 使用 Pydantic 標準化輸入/輸出模式。
- 將模型+預處理打包到版本化工件中。
- 撰寫端點預測和健康檢查。
- 新增基本日誌記錄和明確的錯誤處理。 5.建置Docker映像並使用curl執行冒煙測試。
應提交工件
- API原始碼和Dockerfile可以運行。
- 3 種情況的請求/回應範例。
- 最低本地部署自述文件。
自測題
- 為什麼需要對模型工件進行版本控制?
- 如果輸入模式發生變化,向後相容性將如何處理?
- 哪些運行時指標需要從一開始就進行監控?