【vLLM 学习】Torchrun Example

💡 原文中文,约1200字,阅读约需3分钟。
📝

内容提要

本文介绍了使用torchrun进行张量并行推理的实验性支持,包括运行命令和示例代码,展示了如何创建提示和采样参数以生成输出,并提到跨进程传递控制消息的技巧。

🎯

关键要点

  • 本文介绍了使用torchrun进行张量并行推理的实验性支持。

  • 运行命令为:`torchrun --nproc-per-node=2 torchrun_example.py`,参数2需与`tensor_parallel_size`一致。

  • 示例代码展示了如何创建提示和采样参数以生成输出。

  • 使用`distributed_executor_backend="external_launcher"`配置,确保LLM引擎仅创建一个工作进程。

  • 所有rank将具有相同的输出。

  • 跨进程传递控制消息时,建议使用基于GLOO后端的CPU组。

🔎

延伸解读

张量并行推理的优势

使用torchrun进行张量并行推理可以显著提高大规模模型的推理效率。通过将计算任务分配到多个进程,用户能够更好地利用硬件资源,尤其是在处理复杂的自然语言处理任务时。

控制消息的传递技巧

在跨进程传递控制消息时,建议使用基于GLOO后端的CPU组。这种配置可以确保消息传递的高效性和可靠性,尤其是在多进程环境中,避免了潜在的通信瓶颈。

注意参数一致性

在使用torchrun时,确保`nproc-per-node`参数与`tensor_parallel_size`一致是至关重要的。这种一致性可以避免运行时错误,并确保模型的正确性和输出的一致性。

延伸问答

如何使用torchrun进行张量并行推理?

使用命令`torchrun --nproc-per-node=2 torchrun_example.py`,参数2需与`tensor_parallel_size`一致。

示例代码中如何创建提示和采样参数?

示例代码中使用`prompts`列表创建提示,并使用`SamplingParams`类设置采样参数,如温度和top_p。

在使用torchrun时,如何确保LLM引擎只创建一个工作进程?

通过配置`distributed_executor_backend="external_launcher"`来确保LLM引擎仅创建一个工作进程。

跨进程传递控制消息时,推荐使用什么?

建议使用基于GLOO后端的CPU组来跨进程传递控制消息。

所有rank的输出是否相同?

是的,所有rank将具有相同的输出。

如何在rank 0执行特定操作?

可以通过检查`torch_rank`是否为0来执行特定操作,例如将结果保存到磁盘。

🏷️

标签

➡️

继续阅读