nemo_gym.rollout_compare.join
nemo_gym.rollout_compare.join
How rows on the two sides are matched to the same task.
Key detection by vote across rows, the taskset and task id behind a Harbor row’s task id, grouping rows by task with anonymous sidecar rows kept apart, stripping a namespace prefix one side carries and the other does not, and matching plain ids to keyed labels while reporting the ambiguous ones.
Module Contents
Functions
Data
API
A <prefix>/ every id shares (e.g. terminal-bench/), or None.
Strip a <prefix>/ namespace from whichever side carries one when that is what keeps the ids apart:
legacy servers often namespace the task (terminal-bench/x) where the Harbor path does not.
Join a side of plain task ids to one keyed taskset/task_id. A keyed group is relabelled with its plain
task id when that id lives in exactly one taskset (or in the plain side’s own taskset); an id the plain side
carries that recurs across tasksets is ambiguous: its groups keep their taskset labels and are reported.
Returns the two sides, the prefix stripped from each, and the ambiguous ids with their taskset labels.
Whether a row has a say in key detection: a sidecar failure that names no task at all does not.
(taskset, task id) named by key; the taskset is only known for a dict _ng_task_id.
The first candidate field every row carries. Sidecar failure rows that name no task at all are left out
of the vote; they cannot be joined and are listed as masked under an unknown (<side>) #<n> label.
(rows grouped by task label, anonymous rows). An anonymous row is a sidecar failure that names no task: it is kept out of the join entirely and listed as masked on its own side.
Whether a side names any task at all. A side that is empty, or holds only anonymous sidecar failures, has no key of its own to detect.
The label a row is joined and listed under: the plain task id, or taskset/task_id with with_taskset
(used when a side spans several tasksets, where the same task id may recur).