Skip to content

feat(aalcr): add versioned v1.1 protocol - #3152

Merged
wprazuch merged 8 commits into
NVIDIA-NeMo:mainfrom
teelinsan:feat/aa-lcr-v1-1
Sep 8, 2026
Merged

wprazuch merged 8 commits into
NVIDIA-NeMo:mainfrom
teelinsan:feat/aa-lcr-v1-1

Conversation

@teelinsan

@teelinsan teelinsan commented Sep 8, 2026 •

Copy link
Copy Markdown
Collaborator

Summary

  • preserve the existing aalcr selector as the pinned v1.0 dataset and legacy judge protocol
  • add aalcr/config_v1_1 for dataset revision 9a77ef56b717057ade24ceab4d273712a0b4f19e, including its 16 corrected answers
  • configure the official GPT-5.6 Luna judge with medium reasoning for v1.1; read its credential from JUDGE_API_KEY with no fallback to another judge
  • implement the published v1.1 system prompt and strict JSON verdict protocol
  • attach dataset/protocol provenance to prepared rows and reject mismatched grading configurations
  • preserve the historical v1.0 behavior for valid, malformed, and empty judge responses

Compatibility evidence

  • all 100 pinned v1.0 prepared rows match Gym e446e4f exactly after excluding the three additive provenance fields
  • v1.0 sends the exact historical user-only judge prompt and produces identical rewards for CORRECT, INCORRECT, malformed, and empty verdicts
  • legacy prepared rows without provenance fields load with v1.0 defaults
  • v1.1 changes exactly the 16 published answer keys; questions, documents, policy prompts, and other task inputs are unchanged
  • v1.1 sends the published system/user prompts, uses Luna-medium, accepts strict JSON CORRECT/INCORRECT, and rejects malformed or cross-version inputs

Testing

  • uv run pytest -q benchmarks/aalcr/tests resources_servers/aalcr/tests/test_app.py (32 passed)
  • uv run pytest -q tests/unit_tests/test_benchmarks.py (49 passed)
  • pre-commit and secret-detector checks
  • gym eval prepare --benchmark aalcr (100 rows)
  • keyless gym eval prepare --benchmark aalcr/config_v1_1 (100 rows)
  • config tests verify missing-key startup validation and forwarding reasoning_effort=medium with model openai/openai/gpt-5.6-luna
  • direct data and verifier A/B against Gym e446e4f415b9cde0e95bb813c85e9e3e23f5d893

Signed-off-by: Andrea Santilli <asantilli@nvidia.com>
@copy-pr-bot

copy-pr-bot Bot commented Sep 8, 2026

Copy link
Copy Markdown

This pull request requires additional validation before any workflows can run on NVIDIA's runners.

Pull request vetters can view their responsibilities here.

Contributors can view more details about this message here.

teelinsan and others added 7 commits September 8, 2026 09:20
Signed-off-by: Andrea Santilli <asantilli@nvidia.com>
Signed-off-by: Andrea Santilli <asantilli@nvidia.com>
Signed-off-by: Andrea Santilli <asantilli@nvidia.com>
Signed-off-by: Andrea Santilli <asantilli@nvidia.com>
Signed-off-by: Andrea Santilli <asantilli@nvidia.com>
Signed-off-by: Andrea Santilli <asantilli@nvidia.com>

@wprazuch wprazuch left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@teelinsan

Copy link
Copy Markdown
Collaborator Author

/ok to test 7cb16ba

@wprazuch

wprazuch commented Sep 8, 2026

Copy link
Copy Markdown
Contributor

/ok to test 7cb16ba

@wprazuch
wprazuch merged commit 5a7dd6f into NVIDIA-NeMo:main Sep 8, 2026
30 checks passed
@teelinsan
teelinsan deleted the feat/aa-lcr-v1-1 branch September 8, 2026 09:39
jkyi-nvidia pushed a commit that referenced this pull request Sep 11, 2026
## Summary

- preserve the existing `aalcr` selector as the pinned v1.0 dataset and
legacy judge protocol
- add `aalcr/config_v1_1` for dataset revision
`9a77ef56b717057ade24ceab4d273712a0b4f19e`, including its 16 corrected
answers
- configure the official GPT-5.6 Luna judge with medium reasoning for
v1.1; read its credential from `JUDGE_API_KEY` with no fallback to
another judge
- implement the published v1.1 system prompt and strict JSON verdict
protocol
- attach dataset/protocol provenance to prepared rows and reject
mismatched grading configurations
- preserve the historical v1.0 behavior for valid, malformed, and empty
judge responses

## Compatibility evidence

- all 100 pinned v1.0 prepared rows match Gym `e446e4f` exactly after
excluding the three additive provenance fields
- v1.0 sends the exact historical user-only judge prompt and produces
identical rewards for `CORRECT`, `INCORRECT`, malformed, and empty
verdicts
- legacy prepared rows without provenance fields load with v1.0 defaults
- v1.1 changes exactly the 16 published answer keys; questions,
documents, policy prompts, and other task inputs are unchanged
- v1.1 sends the published system/user prompts, uses Luna-medium,
accepts strict JSON `CORRECT`/`INCORRECT`, and rejects malformed or
cross-version inputs

## Testing

- `uv run pytest -q benchmarks/aalcr/tests
resources_servers/aalcr/tests/test_app.py` (32 passed)
- `uv run pytest -q tests/unit_tests/test_benchmarks.py` (49 passed)
- pre-commit and secret-detector checks
- `gym eval prepare --benchmark aalcr` (100 rows)
- keyless `gym eval prepare --benchmark aalcr/config_v1_1` (100 rows)
- config tests verify missing-key startup validation and forwarding
`reasoning_effort=medium` with model `openai/openai/gpt-5.6-luna`
- direct data and verifier A/B against Gym
`e446e4f415b9cde0e95bb813c85e9e3e23f5d893`

---------

Signed-off-by: Andrea Santilli <asantilli@nvidia.com>
Signed-off-by: Junkeun Yi <jkyi@nvidia.com>
katherineh123 pushed a commit to katherineh123/Gym that referenced this pull request Sep 18, 2026
…eMo#3510)

## Expected

An empty or whitespace-only judge reply should produce a retryable
`judge_failed` result, excluded from scores by default—not count as an
incorrect policy answer.

## Actual

AA-LCR's legacy protocol returns `reward=0` and
`invalid_judge_response=True` for these replies, including the ungraded
sample in the score.

## Fix

Move the existing empty-reply check before protocol selection. Nonempty
verdicts, empty policy answers, and v1.1 behavior are unchanged.

This intentionally revises the legacy compatibility behavior preserved
in NVIDIA-NeMo#3152; scores may change for runs containing empty judge replies.

Validation: 231 tests and pre-commit passed. Still Draft: real-model
rollout and isolated server/data validation remain incomplete.

Signed-off-by: yaoyu-33 <yaoyu.094@gmail.com>

This branch was previously deployed

1 inactive deployment
public — 7cb16baa Deployed Sep 8, 2026 by copy-pr-bot[bot] via release / finalize / notify #2667
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants