第7章 任务 调度优化
本作品已使用人工智能进行翻译。欢迎您提供反馈和意见:translation-feedback@oreilly.com
虽然模型训练涵盖了LLMs的整个生命周期(从预训练到对齐再到定制),但上一章重点探讨了模型定制——这是组织使用LLMs时最常见且实用的方法。 该章介绍了多种定制技术和框架(如Kubeflow Trainer),用于在Kubernetes上实现分布式定制任务。 尤其值得注意的是,平台管理员必须应对一系列超越基础训练任务配置的新型运维挑战。
虽然第3章主要关注推理生产工作负载, 但两者在Kubernetes中的GPU管理存在显著重叠。 此外,仅就Kubernetes上长期运行的作业管理而言,模型定制工作负载在多个关键方面与传统Kubernetes应用存在显著差异:
-
它们本质上资源密集型,需要在多个节点上长期使用专用硬件(GPU),有时长达数天甚至数周。
-
其组件间存在强烈耦合关系,这在Kubernetes工作负载中较为罕见;例如分布式训练任务中所有 pod必须采用gang调度技术同步调度。
-
它们会产生海量需跨网络共享的数据,使网络性能成为关键瓶颈。
-
它们在时间和资源方面都意味着相当大的成本,因此可靠且高效的资源利用至关重要。
-
在多数集群中,GPU 是稀缺且昂贵的资源,需要复杂的配额管理和调度逻辑来防止资源利用不足,同时确保多个团队和项目之间的公平访问。
所有这些因素共同构成了每位Kubernetes平台管理员必须应对的挑战集。
本章将探讨这些生产级挑战,涵盖在Kubernetes上构建稳健模型定制平台所需的核心优化与配置方案。 首先介绍Kubernetes调度器优化策略,包括通过装箱算法实现成本高效的GPU利用率,以及通过调度器动态重调度以维持长期优化效果。 随后探讨:确保分布式训练任务所有组件协同调度的组调度方案、优化GPU互联布局的拓扑感知调度,以及保障跨团队公平资源分配的配额管理机制。 此外,本章涵盖:缓解通信瓶颈的网络优化方案、多用户环境的安全考量、处理海量数据集与模型工件的存储策略,以及实现长期运行训练任务可视化的观测模式。
我们的目标是将前一章所学原理融入生产就绪平台,使其既能支持企业级模型定制工作流,又能满足现代Kubernetes环境的运维标准。
注
本章将统一使用"训练任务"指代 所有形式的LLM定制工作负载(包括第6章讨论的微调及其他技术),因其共享相同平台需求:分布式执行的并行调度、梯度同步的高性能网络、GPU资源管理以及稳健的可观测性。
尽管数据科学技术各异,但所有LLMs模型定制方法的基础设施挑战和运维模式始终一致。
本章聚焦LLM定制,因传统预测模型(分类、回归及时间序列预测)通常规模较小,常可在单GPU或CPU上高效训练,无需本章所述的专用基础设施。
Kubernetes调度器优化
Kubernetes调度器提供灵活的可插拔架构,支持精细化配置以优化不同工作负载需求的Pod放置策略。 GPU训练平台可通过二进制打包等策略整合工作负载以降低成本,并结合动态重调度机制,在集群状态变化时持续优化配置。 本节涵盖核心调度机制、成本优化的二进制打包策略以及实现持续优化的调度器。
核心Kubernetes调度器
Kubernetes调度器通过 机制,对每个Pod独立执行两阶段决策流程。 首先在过滤阶段(候选节点筛选)剔除无法满足Pod要求的节点。 筛选条件包括:CPU/内存/GPU资源不足,或违反污点、容忍度及亲和性规则(参见"节点亲和性")。
评分阶段(节点排序)随后启动 ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access