CoMLRL 는 다른 모델을 GPUs 에 배치할 수 있습니다. parallel_training="mp" 를 사용하면 각 에이전트는 agent_devices 의 자체 장치에서 실행되며, 에이전트들은 동시에 생성됩니다; critics, 보상 모델, 비교기, 참조 모델은 자체 장치 설정을 사용합니다. 기본 설정인 "none" 는 에이전트를 하나의 장치에 유지합니다. 두 가지 모드는 단일 머신에서 실행되며 작업 스케줄러가 필요하지 않습니다.
각 모델은 할당된 장치에서 완전히 실행되며 GPUs로 분할되지 않습니다. 장치 인덱스는 CUDA_VISIBLE_DEVICES를 통해 보이는 GPUs를 참조합니다. 여러 모델에 대한 설정은 각 모델에 대해 하나의 장치 또는 모든 장치를 사용하는 것을 선택할 수 있으며, 사용자는 사용 가능한 GPUs와 각 모델의 메모리에 맞게 배치할 수 있습니다. 장치 배치 및 병렬 스케줄링은 수치적 훈련 결과에 영향을 미칠 수 있습니다.
다음 구성은 반복적인 MARLHF 의 각 모델을 자체 GPU 에 배치합니다: 두 개의 에이전트, 중앙 집중식 critic (MAAC 정책 학습용), 보상 모델, 현재 에이전트의 복사본을 비교기로 사용합니다.
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 / critic 에 대해 하나의 장치;"mp"모드에서 MAAC 및 별도 IAC / MARLHF 에 대해 필요, 기본값은 에이전트 장치reward_model_device: MARLHF 보상 모델 장치; 기본값은"cuda:0"또는None이며, trainer 장치에 사용됩니다.comparator_devices: 반복적인 PbRL 에 대한 지역 비교기 모델 장치; 기본값은 에이전트 장치reference_devices: 참조 모델 (참조 KL) 에 대한 고정된 참조 모델 장치; 기본값은 에이전트 장치