AI News HubLIVE
站内改写2 分钟阅读

使用 NVIDIA srt-slurm、SLURM 配方、参数扫描和帕累托分析验证分布式 LLM 服务基准测试

本教程探讨了 NVIDIA 的 srt-slurm 框架,学习如何使用 srtctl 将声明式 YAML 配置转换为可重复的 SLURM 基准测试工作流,用于分布式 LLM 服务。在 Google Colab 中设置项目,检查内部架构,定义集群配置,试运行内置和自定义配方,并为 DeepSeek-R1 建模分离的预填充和解码部署。还生成参数扫描,与类型化 Python API 交互,验证扩展配置,并通过吞吐量与延迟的帕累托前沿分析模拟的基准测试结果。

来源MarkTechPost作者: Sana Hassan

在本教程中,我们深入探索 NVIDIA 的 srt-slurm 框架,并学习如何使用 srtctl 将声明式 YAML 配置转换为可重复的 SLURM 基准测试工作流,用于分布式 LLM 服务。我们在 Google Colab 中设置项目,检查其内部架构,定义集群配置,试运行内置和自定义配方,并为 DeepSeek-R1 建模一个分离的预填充和解码部署。我们还生成参数扫描,与类型化 Python API 交互,验证扩展配置,并通过吞吐量与延迟的帕累托前沿分析模拟的基准测试结果。尽管 Colab 不提供真实的 SLURM 环境,我们仍将其用作实用的开发工作空间,以理解、验证和准备生产级基准测试配方,然后将其提交到实际的 GPU 集群。

首先,我们准备 Colab 环境,导入必要的模块并定义用于命令执行和部分格式化的可重用辅助函数。我们克隆 NVIDIA srt-slurm 仓库,以可编辑模式安装,并将其源目录暴露给活跃的 Python 运行时。然后切换到仓库目录,验证 srtctl 命令行界面已正确安装。

接下来,我们检查仓库结构,了解 srtctl 如何组织其命令行工具、模式、后端、模板、配方和分析组件。然后创建一个本地的 srtslurm.yaml 文件,包含模拟的集群默认值、容器别名、GPU 设置和模型路径。我们使用此配置在 Colab 中解析配方引用,无需访问实际的 SLURM 集群。

我们试运行内置的模拟器配方,检查 srtctl 如何验证配置并生成 SLURM 提交工件,而无需执行真实的基准测试。然后,我们定义了一个高级的 DeepSeek-R1 配方,将预填充和解码工作负载分离到独立的节点和工作线程池中。通过另一次试运行验证此分离的 SGLang 配置,并检查服务参数如何转换为作业脚本。

我们执行示例参数扫描,并检查从其笛卡尔搜索空间创建的各个作业配置。通过类型化 Python API 加载自定义配方,检查其模型、精度、GPU 拓扑、基准测试设置和受支持的枚举值。还以编程方式扩展扫描模板,并验证每个参数组合如何影响生成的后端配置。

我们模拟了两个分块预填充变体的基准测试观测结果,覆盖不同的并发级别。计算了每 GPU 代表性吞吐量和令牌间延迟值,以模拟分布式服务系统中常见的饱和和延迟增长。然后在帕累托风格的图中可视化这些结果,以比较不同配置下的吞吐量和响应性。

最后,我们概述了将验证后的配方从 Colab 转移到真实 SLURM 基于 GPU 集群的生产工作流。回顾了用于环境设置、预检验证、作业提交、扫描执行、监控、仪表板分析和实验比较的命令。还强调了通过在基准测试配方内声明模型修订、容器标识和框架版本来实现可重复性。

总之,我们建立了对 srtctl 如何构建、验证、扩展和准备分布式 LLM 服务基准测试以在 SLURM 基础设施上执行的完整理解。我们从基本安装和仓库检查推进到高级分离服务配置、笛卡尔参数扫描、编程模式访问和基准测试结果分析。我们还看到了试运行如何暴露生成的作业工件,并帮助我们在昂贵的集群资源分配之前检测配置问题。有了这个工作流,我们可以自信地将验证后的配方转移到真实的 NVIDIA GPU 集群,运行预检检查,提交基准测试作业,监控执行,比较实验指纹,并以可重复的方式分析性能权衡。

完整代码请参见原文。记得关注我们的 Twitter 并加入 150k+ ML 子论坛和订阅我们的通讯。也可以在 Telegram 上找到我们。需要合作推广您的 GitHub Repo、Hugging Face 页面、产品发布或网络研讨会吗?请联系我们。