跳至正文
CoMLRL
用户手册

并行训练

由 translategemma:4b 自动翻译 英文原文

CoMLRL 可以将不同的模型放置在不同的 GPUs 上。 使用 parallel_training="mp" 时,每个智能体在 agent_devices 上的设备上运行,并且智能体同时生成; critics、奖励模型、比较器和参考模型各自使用自己的设备设置。 默认设置 "none" 将智能体放在一个设备上。 两种模式都在一台机器上运行,不需要作业调度。

每个模型完全在分配的设备上运行,不会分散到 GPUs。 设备索引指的是通过 CUDA_VISIBLE_DEVICES 看到的 GPUs。 对于多个模型,设置可以是每个模型一个设备,也可以是所有模型一个设备,因此用户可以根据可用的 GPUs 和每个模型的内存进行匹配。 设备放置和并行调度会影响数值训练结果。

以下配置将迭代 MARLHF 中的每个模型放在各自的 GPU 上:两个智能体、一个用于 MAAC 策略学习的集中式 critic、奖励模型和当前智能体的副本作为比较器。

from comlrl.trainers.preference import MARLHFIterConfig

config = MARLHFIterConfig(
    num_agents=2,
    num_turns=1,
    rl_algorithm="maac",
    parallel_training="mp",
    agent_devices=["cuda:0", "cuda:1"],
    critic_devices="cuda:2",
    reward_model_device="cuda:3",
    comparator_policy="current_copy",
    comparator_devices=["cuda:4", "cuda:5"],
)

设备放置#

Device Placement 参数
  • agent_devices: 智能体设备;在 "mp" 模式下需要
  • critic_devices: 单个设备用于集中式 critic,或每个智能体分别使用 critics;在 "mp" 模式下,需要 MAAC 和单独的 critic IAC,而 MARLHF 默认使用智能体设备
  • reward_model_device: MARLHF 奖励模型设备; 默认为 "cuda:0",或 None 用于 trainer 设备
  • comparator_devices: 迭代 PbRL 中本地比较器模型的设备;默认使用智能体设备
  • reference_devices: 使用参考 KL 的冻结参考模型的设备;默认使用智能体设备