Hugging Face 推理端点案例研究

概述

Hugging Face 已将其多个基于 CPU 的机器学习模型从自托管的 AWS 基础设施迁移到 Hugging Face 推理端点。此举旨在降低认知负担和部署时间,从而实现更低的延迟,并简化从 Hugging Face Hub 部署模型的工作流。

工作流简化

迁移至推理端点显著减少了将模型从训练转入生产所需的步骤数量。

之前的工作流 (AWS ECS + Fargate)

之前的流程涉及一系列繁琐的手动步骤:

  1. 使用 CML 和 transformers 在 GPU 实例上训练模型。
  2. 将模型上传至 Hugging Face Hub。
  3. 使用 FastAPI 构建自定义 API 来提供模型服务。
  4. 将 API 打包进 Docker 容器。
  5. 将容器上传至 AWS Elastic Container Repository (ECR)。
  6. 将模型部署到 AWS Elastic Container Service (ECS) 集群。

当前的工作流 (Inference Endpoints)

全托管的流程将这些步骤精简为三步:

  1. 使用 CML 和 transformers 在 GPU 实例上训练模型。
  2. 将模型上传至 Hugging Face Hub。
  3. 使用 Hugging Face 推理端点进行部署。

性能与延迟基准

eu-east-1 区域部署的经过 RoBERTa 微调的文本分类模型的测试表明,Inference Endpoints 相较于之前的定制 ECS 设置在延迟方面表现更佳。

实例规模 vCPU(核) 内存(GB) ECS 延迟(ms) Inference Endpoints 延迟(ms)
Small 1 2 - ~296
Medium 2 4 - 156 ± 51
Large 4 8 ~200 80 ± 30
XLarge 8 16 - 43 ± 31

对于 “Large” 实例规模,原生 Hugging Face 容器的速度是定制 ECS 容器的两倍以上,最慢的响应记录为 108ms。

成本分析

虽然 Inference Endpoints 的成本高于之前的 AWS Fargate 设置,但考虑到 MLOps 开销的降低,这一成本增加被视为可接受的权衡。

实例规模 vCPU 内存(GB) ECS 成本 Inference Endpoints 成本 差异百分比
Small 1 2 $33.18 $43.80 24%
Medium 2 4 $60.38 $87.61 31%
Large 4 8 $114.78 $175.22 34%
XLarge 8 16 $223.59 $350.44 50%

对于大型 CPU 实例,每月成本差约为 $60。Hugging Face 指出,对于部署数百个机器学习微服务的组织,成本差异可能需要采用不同的方案,但就其当前规模而言,时间节省超过了财务成本。

部署与运营注意事项

部署方式

用户可以通过 GUI、RESTful API 或 hugie 命令行工具部署 Inference Endpoints,该工具支持一行配置部署(例如 hugie endpoint create example/development.json)。

基础设施即代码

截至本文发布时,尚未提供针对 Inference Endpoints 的自定义 Terraform 提供程序,这被视为希望使用 Terraform 状态机跟踪部署的用户的缺失功能。

多模型托管

可以通过编写自定义 Endpoint Handler 类在单个端点上托管多个模型。虽然此功能已在 GPU 推理中演示,但预计在 CPU 实例上同样适用,以通过最大化内存利用率来优化成本。

Sources