Zum Inhalt springen
CoMLRL
Benutzerhandbuch

Parallelisierung des Trainings

Automatisch übersetzt mit translategemma:4b Englisches Original

CoMLRL kann verschiedene Modelle auf verschiedenen GPUs platzieren. Mit parallel_training="mp" läuft jeder Agent auf seinem eigenen Gerät von agent_devices, und die Agenten generieren gleichzeitig; critics, Belohnungsmodelle, Vergleicher und Referenzmodelle haben ihre eigenen Geräteeinstellungen. Der Standard, "none", hält die Agenten auf einem Gerät. Beide Modi laufen auf einer einzigen Maschine und erfordern keinen Job-Scheduler.

Jedes Modell läuft vollständig auf seinem zugewiesenen Gerät und wird nicht über GPUs aufgeteilt. Geräteindizes beziehen sich auf die GPUs, die über CUDA_VISIBLE_DEVICES sichtbar sind. Eine Einstellung für mehrere Modelle verwendet entweder ein Gerät pro Modell oder ein Gerät für alle, sodass Benutzer die Platzierung an die verfügbaren GPUs und den Speicher jedes Modells anpassen können. Die Platzierung und die parallele Planung von Geräten können die numerischen Trainingsergebnisse beeinflussen.

Die folgende Konfiguration platziert jedes Modell einer iterativen MARLHF auf seinem eigenen GPU: zwei Agenten, einen zentralisierten critic für das Erlernen der MAAC-Richtlinie, das Belohnungsmodell und Kopien der aktuellen Agenten als Vergleicher.

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"],
)

Geräteplatzierung#

Device Placement Parameter
  • agent_devices: Agenten-Geräte; erforderlich im "mp"-Modus
  • critic_devices: Ein Gerät für eine zentrale critic oder ein Gerät pro Agent für separate critics; erforderlich im "mp"-Modus für MAAC und separate critic IAC, während MARLHF standardmäßig auf die Agenten-Geräte setzt
  • reward_model_device: MARLHF-Gerät für das Belohnungsmodell; standardmäßig "cuda:0" oder None für das trainer-Gerät
  • comparator_devices: Geräte für lokale Vergleicher-Modelle in iterativen PbRL; standardmäßig auf die Agenten-Geräte
  • reference_devices: Geräte für gefrorene Referenzmodelle mit Referenz KL; standardmäßig auf die Agenten-Geräte