机器学习推理成本减少45%!Ray+Karpenter 在科技初创公司的落地实践 ...

打印 上一主题 下一主题

主题 898|帖子 898|积分 2694

Vannevar Labs 是一家专注于国防技术的初创公司,成功利用 Ray 和 Karpenter 在 Amazon EKS 上,将机器学习(ML)推理成本削减了45%。该公司致力于开发先进的软件和硬件,以支持包罗海上监视、虚伪信息干扰以及非传统情报网络在内的各种国防使命。
Vannevar Labs 通过机器学习技术处理来自数据接收系统的信息,并执行搜刮和择要等用户驱动的使命。依附一系列多样化的模子,包罗微调的开源模子和自主训练的模子,该公司启动了一项优化机器学习推理工作负载的使命。这项优化旨在提升其机器学习基础办法的摆设速度、可扩展性和成本服从。
本文将探讨 Vannevar Labs 在使用 Amazon EKS、Ray 和 Karpenter 时采取的方法、面对的挑战以及实行的办理方案,这些措施不但使成本降低了45%,还显著提升了性能。
01/ 团体环境

在 Vannevar Labs,实行了一项全面的优化计谋,以办理机器学习模子摆设和性能方面的一些关键挑战。通过采用 Ray Serve 实现尺度化的模子服务,使用 Karpenter 进行机动的实例选择,并引入 Fractional GPU 技术,显著提升了系统的可扩展性、弹性和资源利用率。
别的,Vannevar Labs 将单一的大型集群拆分为针对特定模子的专用集群,从而提高了摆设服从。为确保最佳性能,还构建了一个强大的监控系统,使用 Prometheus、Grafana 和 Sentry 进行及时监控。同时,还利用 Istio 实现了高级流量管理,资助 Vannevar Labs 实现平滑过渡和负载测试。
最终达成以下改进结果:
1.摆设时间减少:从 3 小时缩短至 6 分钟。
2.可扩展性提升:部分 worker 组可在短至 2 分钟内完成扩容。
3.弹性加强:worker 组更频仍地缩容,在需求低谷期显著节约成本。
4.团体成本降低:推理成本减少 45%。
5.资源利用率提高:当 GPU 容量未充分利用时,将 CPU 工作负载运  行在 GPU 型 EC2 实例上,提升了团体 EKS 集群的利用率。
6.流量管理优化:通过 Istio 改进了流量路由和负载测试能力。

02/采用 Ray Serve 实现尺度化推理

Ray Serve 是一个可扩展的模子服务库,用于构建在线推理 API。Vannevar Labs 选择使用 Ray Serve 来尺度化机器学习推理流程,为处理推理请求提供更结构化和高效的方法。通过 KubeRay 在 Amazon EKS 上摆设了 Ray 集群。
将 Ray Serve 摆设在 Kubernetes 上,结合了 Ray Serve 的可扩展计算能力与 Kubernetes 的运维上风。有关在 Kubernetes 上实现 Ray Serve 的更多信息,请参阅:
https://docs.ray.io/en/latest/serve/production-guide/kubernetes.html
优化实例选择:采用 Karpenter

在初始实行阶段,Vannevar Labs 为每种类型的模子创建了独立的 Karpenter 节点池(NodePool)。每个节点池仅限于一些针对特定使用场景优化的 Amazon EC2 实例类型。还使用污点(Taints)和容忍(Tolerations)机制将模子分配到不同的节点池。
比方,CPU 麋集型模子运行在容忍 CPU 节点池的 Pod 中,该节点池只摆设 C5 EC2 实例,而不使用基于 GPU 的 EC2 实例。
经过测试后,Vannevar Labs 决定采用单一节点池计谋,放弃了使用污点和容忍机制调度 Pod 的方法。相反,选择提供准确且全面的信息给 Ray、Kubernetes 和 Karpenter 调度器,让它们有能力优化 EKS 集群的计算服从和成本效益。
比方,对于需要 GPU 的 Pod,Vannevar Labs 实行了节点亲和性(Node Affinity)计谋,以确保正确的 GPU 类型可用。
在嵌入模子的 Pod 配置中,Vannevar Labs 为一个知名标签(Well-Known Label)添加了节点亲和性,以指定 GPU 的名称,如下所示,并允许 Karpenter 主动配置适合的 EC2 实例大小。
  1. affinity:
  2.   nodeAffinity:
  3.     requiredDuringSchedulingIgnoredDuringExecution:
  4.       nodeSelectorTerms:
  5.         - matchExpressions:
  6.             - key: karpenter.k8s.aws/instance-gpu-name
  7.               operator: In
  8.               values:
  9.                 - t4  
复制代码
对于仅需 CPU 的 Pod,Vannevar Labs 明白指定不需要 GPU,从而允许 Kubernetes 将这些 Pod 调度到已摆设但 GPU 使用率较低的节点上,而无需授予它们对 GPU 的访问权限。
这种方法使其能够在已有的 GPU 型 EC2 实例上运行 CPU 麋集型使命,从而最大化资源利用率,同时减少所需的 EC2 实例数目。
  1. resources:
  2.   limits:
  3.     nvidia.com/gpu: "0"
复制代码
CloudPilot AI (www.cloudpilot.ai )在 Karpenter 的基础上对节点选择功能进行智能化升级。在选取实例的过程中,除了价格因素外,还将网络带宽、磁盘 I/O、芯片类型等因素纳入考虑范围内,通过智能算法选出分身成本和性能的实例类型,以减少资源浪费,加强应用稳固性。

使用 Fractional GPU

一个关键的优化措施是在 Ray 中引入 Fractional GPU。通过仔细分析使用模式,Vannevar Labs 能够将多个 Ray actor 和使命打包到 Kubernetes Pod 中,从而显著提高 GPU 的利用率。
嵌入模子会根据输入文本计算对应的向量。Vannevar Labs 使用 Fractional GPU 来运行该模子,而上一代 NVIDIA T4 GPU 的性能已足以满足其需求。
  1.         cpus:            1.0
  2.         gpus:            0.2
  3.         memory:          2Gi
  4.         minReplicas:     1
  5.         maxReplicas:     80
  6.         gpuType:         "t4"
  7. }
复制代码
优化 Pod 调度与 GPU 使用

为了应对性能和成本挑战,Vannevar Labs 将三个模子从基于 CPU 的推理迁移到基于 GPU 的推理。这一转变显著提升了推理速度和资源服从,将延迟降低了最多 100 倍同时将所需副本数目减少了 20-50 倍。尽管 GPU 型 EC2 实例的单价较高,但由于所需的 EC2 实例数目减少,团体成本反而降低了。
在模子迁移至 GPU 运行的初期,团队遇到了许多问题,包罗内存错误、多 GPU 型 EC2 实例的使用不足,以及团体 GPU 利用率较低。
以下 Kubernetes 节点资源已通过 NVIDIA 的 Kubernetes 设备插件注释为扩展资源。
这使 Vannevar Labs 能够在请求资源时同时指定 CPU 和内存,并依靠 Kubernetes 调度器将 Pod 分配到具有可用 GPU 的节点上。该方法还为 Pod 提供对特定 GPU 的独占访问权限。
Karpenter 同样依靠类似的机制,当有需要 GPU 的待调度 Pod 时,它会主动启动基于 GPU 的 EC2 实例。
  1. kind: Node
  2. metadata:
  3.   labels:
  4.     karpenter.k8s.aws/instance-gpu-count: '8'
  5.     karpenter.k8s.aws/instance-gpu-manufacturer: nvidia
  6.     karpenter.k8s.aws/instance-gpu-memory: '16384'
  7.     karpenter.k8s.aws/instance-gpu-name: t4
  8.     karpenter.sh/capacity-type: on-demand
  9.     kubernetes.io/arch: amd64
  10.     kubernetes.io/os: linux
  11.     node.kubernetes.io/instance-type: g4dn.metal
  12. status:
  13.   allocatable:
  14.     cpu: 95690m
  15.     ephemeral-storage: '246305030964'
  16.     hugepages-1Gi: '0'
  17.     hugepages-2Mi: '0'
  18.     memory: 387183588Ki
  19.     nvidia.com/gpu: '8'
  20.     pods: '737'
  21.   capacity:
  22.     cpu: '96'
  23.     ephemeral-storage: 268423148Ki
  24.     hugepages-1Gi: '0'
  25.     hugepages-2Mi: '0'
  26.     memory: 395848676Ki
  27.     nvidia.com/gpu: '8'
  28.     pods: '737'
复制代码
使用 Fractional GPU

在新摆设基础办法的支持下,Vannevar Labs 开始为每个模子创建专用的 EKS 集群。这包罗为每个模子创建定制化的 Docker 镜像,而不是使用一个大型的 all-in-one 镜像。
专属镜像的大小从 2 GB 到 12 GB 不等,相较于之前的 25 GB  all-in-one 镜像,这一调整显著缩短了 Pod 的启动时间,并带来了可观的成本节省,根据镜像大小不同,加载时间减少了 50% 到 90%
使用专用镜像的一个关键上风是降低了网络 ingress 成本。此前的 all-in-one 镜像并未包含模子权重或 Python 包,因此 Ray 在容器初始化期间需要从外部下载这些内容。虽然模子权重大多存储在 Amazon S3 上,重要影响加载时间,但 Python 包的下载对成本影响更大。
每次新的 Ray 工作节点启动时,都会通过 pip 安装所需的 Python 环境,导致从 PyPI 大量下载数据,网络 ingress 流量费用占了月度 AWS 账单的重要部分。
专用镜像包含了模子权重和所需的 Python 环境,从而无需在容器初始化期间从公网下载内容。这大幅减少了网络 ingress 流量及其相干成本。

实行全面监控

Vannevar Labs 创建了一套监控系统,用于确保性能评估和资源分配的准确性。Grafana 仪表板会主动为每个 EKS 集群配置,提供监控和告警功能。这些仪表板包罗用于可视化 CPU 和内存使用环境的面板,能够资助其准确确定资源需求。
Vannevar Labs 将资源限制设置为略高于观测到的最大值,并新增了一个面板,用于跟踪因内存使用过高而被 Ray 删除的 actor 事件。
别的,还在模子代码中加入了监控功能,将 500 状态码和未捕获的错误陈诉到 Sentry。这些措施可以在资源约束不足时及时发出警报,从而能够针对每个模子进一步优化资源分配。
如许的监控方式不但确保了良好的性能,还避免了资源过分分配,提高了团体服从。

   
模子在24小时内的CPU使用率




模子 24 小时内的内存使用量


CloudPilot AI (www.cloudpilot.ai )通过机器学习算法可以预测超过7500个实例的中断事件,并且提前 120 分钟通知用户。并且还能将相应的应用主动迁移到更稳固的实例上。保障服务稳固性,同时解放运维团队的时间。
目前 CloudPilot AI 已开放30天免费试用,复制上方地址至浏览器即可尝鲜
使用 Istio 加强流量管理

Vannevar Labs  通过 Istio 的虚拟服务(Virtual Service)将推理请求路由到新的 Ray 集群。尽管 Vannevar Labs  将单一的 Ray 集群拆分为针对每个模子的独立集群,虚拟服务提供了一个统一的网关,使客户端的迁移过程更加简单。
别的,还配置了流量管理,使请求可以同时发送到现有的 EKS 集群,并镜像到实验性 EKS 集群进行负载测试。这种流量管理计谋既保证了现有系统的稳固运行,又为测试新集群性能提供了支持。
03/结论

通过使用 Amazon EKS、Ray、Karpenter 和 Istio,Vannevar Labs 极大地改进了机器学习推理基础办法,将摆设时间从 3 小时缩短到仅 6 分钟,大幅提升了应对需求激增的能力,同时推理成本降低了 45%。
Vannevar Labs 的下一步计划包罗通过与 Ray 项目团队相助,进一步加强与 Kubernetes 的集成,透明地向 Kubernetes 暴露扩容数据。别的,还计划围绕 Mountpoint for Amazon S3 和其他存储相干的改进进行第二轮优化,以进一步提升性能并降低成本。
本案例展示了结合 Amazon EKS、Ray、Karpenter 和 Istio 等当代云技术优化机器学习推理工作负载的强大能力。通过仔细分析需求、使用符合的工具并持续优化办理方案设置,企业可以在摆设速度、可扩展性和成本服从方面实现显著改进。
推荐阅读

云从业者必读!2025年5个云成本管理趋势
15条 Karpenter 最佳实践,轻松把握弹性伸缩
服务600+客户的3D生成AIGC公司如何实现GPU成本降低70%?

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

慢吞云雾缓吐愁

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表