【vLLM 学习】Torchrun Example
内容提要
本文介绍了使用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来执行特定操作,例如将结果保存到磁盘。