ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

云计算实战:为 ML 工作负载构建可伸缩基础设施(Maths, CS AI Compendium 第十八章)

云计算实战:为 ML 工作负载构建可伸缩基础设施(Maths, CS  AI Compendium 第十八章) 云计算实战为 ML 工作负载构建可伸缩基础设施Maths, CS AI Compendium 第十八章【免费下载链接】maths-cs-ai-compendiumBecome a cracked AI/ML researcher/engineer with this unconventional textbook covering maths, computing, and ML with intuition.项目地址: https://gitcode.com/GitHub_Trending/mat/maths-cs-ai-compendium本指南是开源教材 Maths, CS AI Compendium 第十八章「ML Systems Design」第二部分系统讲解云计算如何为机器学习工作负载提供按需基础设施从 IaaS/PaaS/SaaS/FaaS 服务模型、三大主流云厂商的关键 ML 服务到 Kubernetes 容器编排与 GPU 调度、存储选型、云网络、Serverless、成本管理与多区域部署最后落地到 Terraform 基础设施即代码IaC。读完本文你将掌握「训练时按小时租用数千 GPU、推理时弹性伸缩」的完整云端落地路径并能独立搭建可复现、可审计、可控成本的 ML 云端环境。训练前沿模型需要数千块 GPU 连续运行数月没有任何初创公司会自购这套硬件。云计算的核心价值在于按小时租用、训练时扩容、推理时缩容、只为实际使用付费——理解云基础设施是任何想把 ML 系统带出笔记本电脑的人必备的能力。本文将从服务模型讲起逐层展开构建一套完整的云端 ML 系统。云服务模型谁管理什么云服务按「提供商替你管理多少层」进行分层从控制力最高的 IaaS 到几乎全托管的 SaaS模型用户管理提供商管理示例IaaS基础设施OS、运行时、应用硬件、虚拟化、网络AWS EC2、GCP Compute EnginePaaS平台应用、数据OS、运行时、扩缩容、打补丁AWS SageMaker、GCP Vertex AISaaS软件什么都不管直接用一切OpenAI API、Weights BiasesFaaS函数单个函数其余一切AWS Lambda、GCP Cloud Functions上图是仓库中 cloud_service_layers.svg 的直观呈现从 Application、Data、Runtime、OS、Virtualisation 到 HardwareIaaS 只把虚拟化以下交给提供商PaaS 连 OS 和运行时都接管SaaS 与 FaaS 则把几乎全部栈层交给提供商管理。对 ML 团队的落地建议大多数团队是混合使用——IaaS 用于自定义训练对 GPU 实例有完全控制权PaaS 用于托管式训练与推理SageMaker、Vertex AI 替你处理编排SaaS 用于工具链WB 做实验跟踪、OpenAI API 做基线对比。从本章在教材中的定位看它承接 systems design fundamentals 的构建块向下引出 large scale infrastructure 的分布式规模话题——服务模型选型决定了后续所有架构决策的上层约束。主流云厂商与关键 ML 服务AWSAmazon Web Services目前市场份额最大的云厂商。与 ML 直接相关的核心服务EC2虚拟机。GPU 实例族包括 p4dA100、p5H100、g5A10G常用于推理。S3对象存储。存储数据集和模型权重的行业标准容量近乎无限单价约 $0.023/GB/月。SageMaker托管式 ML 平台覆盖训练、超参调优、部署与监控全流程。EKS托管 Kubernetes。LambdaServerless 函数。不适合 GPU 负载但非常适合预处理与编排。GCPGoogle Cloud PlatformGoogle 的云平台其杀手锏是 TPUCompute Engine虚拟机提供 A100、H100 GPU 实例TPU VM用于 TPU 访问。GCS对象存储对标 S3。Vertex AI托管 ML 平台原生支持 JAX/TPU。GKE托管 Kubernetes——被认为是最成熟的 K8s 托管服务因为 Kubernetes 本身就诞生于 Google。Cloud TPUGCP 独占资源v5e 与 v5p 用于大规模训练。AzureMicrosoftMicrosoft 的云平台最大差异化在于 OpenAI 生态Azure VM提供 A100、H100 GPU 实例。Azure Blob Storage对象存储。Azure ML托管 ML 平台。AKS托管 Kubernetes。OpenAI Service通过 Azure API 独家访问 OpenAI 模型。容器与 Kubernetes 的云上模式容器Docker与 Kubernetes 的概念性内容在 操作系统章节Namespaces、Cgroups 隔离原理和 部署与 DevOps 章节Dockerfile 编写、层缓存、GPU 透传中已做铺垫本章聚焦云特有的模式。Kubernetes for MLKubernetesK8s在规模上编排容器核心对象概念如下Pod最小可部署单元一个或多个容器共享网络与存储。一个模型推理 Pod 可能包含模型服务器容器 一个用于指标采集的 sidecar 容器。Deployment管理一组相同的 Pod指定期望副本数。Pod 崩溃时 K8s 自动创建替代。Service一组 Pod 的稳定网络端点客户端连 ServiceK8s 路由到健康 Pod。类型ClusterIP集群内部、NodePort通过节点端口对外、LoadBalancer通过云负载均衡器对外。StatefulSet面向有状态负载每个 Pod 有持久身份和稳定存储。用于数据库与分布式训练每个 worker 需要稳定身份用于通信。DaemonSet每个节点运行一个 Pod。用于监控代理Prometheus node exporter、日志采集器Fluentd、GPU 设备插件NVIDIA device plugin。K8s 中的 GPU 调度NVIDIA device plugin 把 GPU 暴露为 K8s 资源Pod 按如下方式请求 GPUresources: limits: nvidia.com/gpu: 2 # 这个 Pod 需要 2 块 GPUK8s 会将 Pod 调度到有 2 块空闲 GPU 的节点上——这正是云 ML 平台为训练和推理分配 GPU 的底层机制。自动扩缩容Horizontal Pod AutoscalerHPA基于指标CPU 使用率、请求速率以及 GPU 利用率、队列深度等自定义指标扩缩 Pod 数量。Cluster Autoscaler扩缩节点数量。当 Pod 因节点不足无法调度时Cluster Autoscaler 从云厂商调配新 VM节点利用率低时则排空并终止。KEDAKubernetes Event-Driven Autoscaling基于外部事件源Kafka 队列深度、HTTP 请求速率扩缩容。是推理场景的理想选择请求队列增长时扩容模型服务器队列清空时缩容。从仓库的 大规模基础设施章节 可以进一步看到K8s 的 GPU 调度之上还叠加了 Volcano、Run:ai 等 ML 专用调度器提供gang scheduling一个作业一次性分配全部 GPU而非逐个分配、优先级队列和 GPU 时间片共享——这是解决集群碎片化与抢占问题的高级形态。存储为训练与推理选型类型特性用途示例块存储低延迟、挂载到单个 VMOS 磁盘、数据库AWS EBS、GCP Persistent Disk对象存储容量无限、HTTP 访问数据集、模型权重、日志AWS S3、GCS、Azure Blob文件存储VM 间共享、POSIX共享训练数据AWS EFS、GCP Filestore、NFS数据湖Schema-on-read、原始数据分析、特征工程Delta Lake、Iceberg、HudiML 训练实践数据集放在对象存储S3/GCS训练脚本把数据读入内存。若需要快速随机访问乱序数据加载三条路径任选① 训练前把数据集下载到本地 SSD② 使用高吞吐文件系统Lustre、FSx③ 使用流式 缓存的加载库WebDataset、FFCV。模型权重存储到对象存储并开启版本管理。70B 模型 FP16 权重约 140 GB从 S3 以 1 GB/s 加载约需 2.5 分钟——推理时在本地 SSD 缓存权重能显著缩短冷启动时间。这与 AI 推理章节 中的批量加载、前缀缓存等冷启动优化策略互为补充。云网络隔离、安全与服务网格VPCVirtual Private Cloud云内的隔离网络。VM、数据库、服务在 VPC 内互相通信外部流量经负载均衡器或网关进入。子网Subnets把 VPC 切成多个网段。公有子网可访问互联网放 API 服务器私有子网不可放数据库、GPU worker——这是网络层面的最小权限原则。安全组AWS/防火墙规则GCP控制允许的流量例如「允许任意来源的 80 端口入站 HTTP只允许我的 IP 的 22 端口入站 SSH其余全部拒绝」。安全组配置错误是云安全事件的头号原因。服务网格Istio、Envoy管理 K8s 内部服务间通信提供 mTLS 加密服务间调用全部加密、流量路由A/B 测试把 10% 流量路由到新模型、重试、超时、熔断与可观测性谁调用了谁、耗时多少。服务网格与 系统设计基础章节 中的反向代理、API 网关、L4/L7 负载均衡共同构成了 ML 服务的流量入口体系。Serverless适用与不适用ServerlessAWS Lambda、GCP Cloud Functions上传一个函数云厂商在触发时运行它。无需管理服务器、无需配置扩缩容按调用次数付费通常 $0.20/百万次调用 计算时间。冷启动一段空闲期后的首次调用耗时更长提供商需要分配容器并加载代码冷启动耗时 0.5-5 秒因此 Serverless不适合延迟敏感的 ML 推理。ML 中的适用场景预处理发送给模型前先缩放图片后处理格式化模型输出、发送通知编排新数据到达时触发训练流水线轻量推理能容忍冷启动的小模型。不适用场景GPU 推理多数 Serverless 平台无 GPU 支持长时训练任务Lambda 有 15 分钟超时有状态服务调用间无持久状态。成本管理工程问题而非会计问题云成本是 ML 团队第一大运营关注点。单个 H100 实例约 $8/小时64 块 GPU 的训练任务约 $500/小时一个月约 $360,000。成本优化是工程问题。Spot/抢占式实例空闲算力以 60-90% 折扣出售提供商可提前 30 秒到 2 分钟回收。适用于容错训练频繁 checkpoint在新实例上恢复、批量推理、数据预处理。不适用于延迟敏感的在线推理中断即停机。预留实例承诺使用 1-3 年获得 30-60% 折扣。适用于流量基线稳定、需要持续在线的基础推理服务。自动扩缩容高峰扩、夜间/周末缩。峰值需 10 块 GPU、夜间只需 2 块的模型服务器自动扩缩比 7×24 跑满 10 块 GPU 节省约 60%。Right-sizing不要用 H100 跑一个 A10G 就能胜任的 7B 模型。用 SIMD 与 GPU 编程章节 中的 profiling 方法确定最匹配的 GPU。存储成本对象存储单价便宜S3 Standard 约 $0.023/GB/月但会累积。一个团队若保留每个训练 checkpoint每个 10 GB每实验 100 个共 50 个实验将累积 50 TB 每月 $1,150。应设置生命周期策略自动删除旧 checkpoint。多区域部署面向全球用户的 ML 系统单区域部署意味着远端用户的高延迟东京用户访问美国服务器约增加 150ms 网络往返和单点故障区域宕机 全站离线。多区域模式Active-passive主备一个主区域处理全部流量备区域维持暖备数据已复制、随时可接流量。主区域故障时 DNS 切换到备区域故障转移停机 30 秒到数分钟。Active-active双活两个区域同时处理流量用户路由到最近区域双区域数据同步异步或同步复制。单区域故障时零停机——流量自动重路由。数据复制是难点模型权重易复制复制到各区域的 S3 即可特征存储数据需要可接受的陈旧度用户数据可能受数据驻留要求约束GDPR欧洲用户数据必须留在欧洲。GPU 云定价对比2026 年近似值不同区域与可用性下价格有浮动GPUAWSGCPAzure典型用途A10G24 GB$1.00/hrg5$0.90/hr$0.90/hr小模型推理A10080 GB$4.10/hrp4d$3.70/hr$3.40/hr训练、大型推理H10080 GB$8.00/hrp5$7.50/hr$7.00/hr前沿训练TPU v5e不适用$1.20/hr不适用大规模 JAX 训练Spot/抢占式定价通常在此基础上再打 6-7 折。基础设施即代码IaCIaC用版本控制的配置文件定义基础设施VM、网络、数据库、K8s 集群。不再在 AWS 控制台里点按钮而是写代码描述期望状态由工具创建。TerraformHashiCorp是 IaC 的事实标准支持所有主流云厂商。声明式你描述期望状态Terraform 计算需要创建/修改/删除什么来达到该状态。# main.tf — 创建一台推理用 GPU VM resource aws_instance model_server { ami ami-0abcdef1234567890 # Deep Learning AMI instance_type g5.xlarge # A10G GPU tags { Name model-server-prod } } resource aws_s3_bucket model_weights { bucket my-model-weights-prod versioning { enabled true } }对应的工作流命令terraform init # 下载 provider 插件 terraform plan # 预览将发生什么变更 terraform apply # 创建基础设施 terraform destroy # 全部拆除为什么 IaC 重要可复现从代码重建整个基础设施、可审计git 历史显示谁改了什么、灾难恢复用同一份配置在其他区域重建、环境一致性dev、staging、prod 用同一模板、不同参数。Pulumi与 Terraform 类似但用真实编程语言Python、TypeScript、Go而非 HCL。当基础设施逻辑复杂条件、循环、动态配置时更有优势。从云基础设施到 ML 系统全景本章在教材中不是孤立的云服务的 IaaS 选型对应 系统设计基础 的负载均衡与缓存模式K8s 集群与 GPU 调度向下延伸到 大规模基础设施 中的 GPU 集群拓扑、SLURM/Volcano 调度与故障容错容器镜像、模型推理框架Triton、vLLM的落地细节则在 部署与 DevOps 与 AI 推理 章节展开。推荐进一步阅读 ML 设计示例把本文的云端选型落地到推荐、搜索、广告等真实系统的完整设计中。【免费下载链接】maths-cs-ai-compendiumBecome a cracked AI/ML researcher/engineer with this unconventional textbook covering maths, computing, and ML with intuition.项目地址: https://gitcode.com/GitHub_Trending/mat/maths-cs-ai-compendium创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表