Skip to content

[monitor] Unify explorer and trainer wandb logging into a single run #556

@MengsD

Description

@MengsD

Problem

When monitor_type: wandb is configured, Trinity creates two separate wandb runs — {name}_explorer and {name}_trainer. This makes it harder to correlate
explorer and trainer metrics (e.g., comparing rollout accuracy against actor loss), and clutters the wandb project with twice as many runs.

Proposed Solution

A primary process in the launcher creates the wandb run, and both Explorer and Trainer join as
secondary writers via wandb.init(id=run_id, resume="allow", mode="shared").

Planned Changes:

  • config.py: Add wandb_run_id field to MonitorConfig (auto-populated by launcher)
  • monitor.py: Add init_wandb_primary() / finish_wandb_primary() helpers; modify WandbMonitor to support shared (secondary) mode
  • launcher.py: In both(), create the primary run before spawning actors and pass wandb_run_id through config

Expected Outcome:

  • In shared mode, all metrics are prefixed with their role (explorer/ or trainer/), producing two clean top-level sections in the wandb UI
  • wandb.define_metric assigns independent step axes (explorer/step and trainer/step) so the two processes' step counters don't conflict
  • for standalone mode, explore() and train() standalone entry points should remain unchanged — they would still create their own independent runs since wandb_run_id remains None.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions