Hugging Face 推理端點案例研究
概述
Hugging Face 已將多個基於 CPU 的機器學習模型從自行管理的 AWS 基礎設施遷移至 Hugging Face 推理端點。此舉是為了減少認知負擔與部署時間,從而降低延遲並簡化從 Hugging Face Hub 部署模型的工作流程。
工作流程簡化
遷移至推理端點可大幅減少將模型從訓練階段推向生產環境所需的步驟數。
先前工作流程(AWS ECS + Fargate)
- 透過 CML 與 transformers 在 GPU 實例上訓練模型。
- 將模型上傳至 Hugging Face Hub。
- 使用 FastAPI 建立自訂 API 以提供模型服務。
- 將 API 包裝於 Docker 容器中。
- 將容器上傳至 AWS Elastic Container Repository(ECR)。
- 將模型部署至 AWS Elastic Container Service(ECS)叢集。
目前工作流程(Inference Endpoints)
- 透過 CML 與 transformers 在 GPU 實例上訓練模型。
- 將模型上傳至 Hugging Face Hub。
- 使用 Hugging Face 推理端點進行部署。
效能與延遲基準
在一個微調自 RoBERTa 的文字分類模型(部署於 eu-east-1 區域)上進行的測試顯示,推理端點相較於先前客製化的 ECS 設定,提供了更佳的延遲表現。
| 實例規模 | vCPU(核心) | 記憶體(GB) | ECS 延遲(毫秒) | 推理端點延遲(毫秒) |
|---|---|---|---|---|
| 小型 | 1 | 2 | - | ~296 |
| 中型 | 2 | 4 | - | 156 ± 51 |
| 大型 | 4 | 8 | ~200 | 80 ± 30 |
| 特大 | 8 | 16 | - | 43 ± 31 |
對於「大型」實例規模而言,原生 Hugging Face 容器的速度是客製化 ECS 容器的兩倍以上,最慢的回應時間為 108 毫秒。
成本分析
雖然推理端點的成本高於先前的 AWS Fargate 設定,但此成本增加被視為在降低 MLOps 開銷上的可接受權衡。
| 實例規模 | vCPU | 記憶體(GB) | ECS 成本 | 推理端點成本 | 差異百分比 |
|---|---|---|---|---|---|
| 小型 | 1 | 2 | $33.18 | $43.80 | 24% |
| 中型 | 2 | 4 | $60.38 | $87.61 | 31% |
| 大型 | 4 | 8 | $114.78 | $175.22 | 34% |
| 特大 | 8 | 16 | $223.59 | $350.44 | 50% |
對於大型 CPU 實例而言,每月成本差異約為 $60。Hugging Face 指出,對於部署數百個機器學習微服務的組織,成本差異可能需要採取不同的方案,但就其目前規模而言,時間節省超過了金錢成本。
部署與營運考量
部署方式
使用者可以透過 GUI、RESTful API 或 hugie 命令列工具部署推理端點,該工具支援一行配置部署(例如 hugie endpoint create example/development.json)。
基礎設施即程式碼
截至發佈日期,尚未提供針對推理端點的自訂 Terraform provider,這被視為希望使用 Terraform 狀態機追蹤部署的使用者缺少的功能。
多模型託管
透過撰寫自訂的 Endpoint Handler 類別,可在單一端點上託管多個模型。雖然此方式已在 GPU 推理上示範過,預計亦可於 CPU 實例上運作,以透過最大化記憶體使用率來優化成本。