Skip to content
Merged
Show file tree
Hide file tree
Changes from 3 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 16 additions & 0 deletions eval_protocol/pytest/remote_rollout_processor.py
Original file line number Diff line number Diff line change
Expand Up @@ -122,9 +122,20 @@ async def _process_row(row: EvaluationRow) -> EvaluationRow:
status_logs.append(log)

if status_logs:
if len(status_logs) > 1:
logger.warning(
"Found %s status logs for rollout %s; expected at most 1. Using the first one: %s",
len(status_logs),
row.execution_metadata.rollout_id,
status_logs[0],
)
# Use the first log with status information
status_log = status_logs[0]
status_dict = status_log.get("status")
raw_extras = status_log.get("extras") or {}
status_extras = {
k: v for k, v in raw_extras.items() if k not in ("logger_name", "level", "timestamp")
}
Comment thread
xzrderek marked this conversation as resolved.

logger.info(
f"Found status log for rollout {row.execution_metadata.rollout_id}: {status_log.get('message', '')}"
Expand All @@ -149,6 +160,11 @@ async def _process_row(row: EvaluationRow) -> EvaluationRow:
details=status_details,
)

if row.execution_metadata.extra:
row.execution_metadata.extra.update(status_extras)
else:
row.execution_metadata.extra = status_extras
Comment thread
xzrderek marked this conversation as resolved.

logger.info("Stopping polling for rollout %s", row.execution_metadata.rollout_id)
break

Expand Down
11 changes: 11 additions & 0 deletions eval_protocol/pytest/tracing_utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -179,7 +179,18 @@ def update_row_with_remote_trace(
if k not in row.input_metadata.dataset_info:
row.input_metadata.dataset_info[k] = v

preserved_extra = row.execution_metadata.extra

row.execution_metadata = remote_row.execution_metadata

if preserved_extra:
if row.execution_metadata.extra:
# Merge remote and local extras; local takes precedence on conflicts
merged = row.execution_metadata.extra or {}
merged.update(preserved_extra)
row.execution_metadata.extra = merged
else:
row.execution_metadata.extra = preserved_extra
Comment thread
xzrderek marked this conversation as resolved.
return None
else:
raise ValueError("Output data loader should return exactly one row.")
Loading