Skip to content

Add flores200 benchmark - #1259

Merged
bxyu-nvidia merged 1 commit into
NVIDIA-NeMo:mainfrom
gwarmstrong:georgea/migrate-gym-flores200-on-main
May 7, 2026
Merged

bxyu-nvidia merged 1 commit into
NVIDIA-NeMo:mainfrom
gwarmstrong:georgea/migrate-gym-flores200-on-main

Conversation

@gwarmstrong

Copy link
Copy Markdown
Contributor

Add flores200 benchmark

Migrates the flores200 benchmark from NeMo Skills into Gym on top of the
existing wmt_translation resource server (introduced for wmt24pp in #1199).
The same deterministic corpus-BLEU + optional xCOMET-XXL verifier scores all
30 directed pairs of FLORES+ devtest's default six-language set (en, de,
es, fr, it, ja).

Includes

  • benchmarks/flores200/ β€” benchmark config, prepare.py, prompt template, sample rollouts
    • Data source: openlanguagedata/flores_plus, devtest split, six configs
      (eng_Latn, deu_Latn, spa_Latn, fra_Latn, ita_Latn, jpn_Jpan)
    • 30 360 rows = 30 directed pairs Γ— 1012 sentences (interleaved JSONL,
      byte-equivalent to NeMo-Skills' flores200/prepare.py output under the
      same defaults β€” md5 8e0c08feb62f336b4c5fe61ccdadd9bc)
    • Prompt strategy: prompt_config at rollout time β†’
      prompts/default.yaml, character-identical to NeMo-Skills'
      multilingual/segment-translation.yaml
    • Bound to the existing wmt_translation resource server via
      _inherit_from; per-row fields (text, translation, source_language,
      target_language, source_lang_name, target_lang_name) match the
      server's WmtTranslationRunRequest schema
    • prepare.py carries the same xCOMET-XXL + xlm-roberta-xxl prefetch
      helper as wmt24pp/prepare.py, so first-job COMET startup stays fully
      offline
    • data/example_rollouts.jsonl β€” 5 rollouts collected against a hosted
      OpenAI-compatible endpoint (Nemotron-Nano 9B v2), all with
      reward ∈ [0, 1] and non-empty translations

Validated against NeMo Skills

prepare.py output is byte-identical to NeMo-Skills' reference under the
same default arguments (split=devtest, languages=[en, de, es, fr, it, ja]):

============================================================
flores200 prepare-output parity (devtest, default 6 languages)
============================================================
Metric                          Skills                 Gym
-------------------------------------------------------------
Output rows                     30360                  30360
md5 hash                        8e0c08feb62f336b4c5f…  8e0c08feb62f336b4c5f…
Field set                       text/translation/      identical
                                source_language/
                                target_language/
                                source_lang_name/
                                target_lang_name

The shared wmt_translation resource server (landed in the parent PR) is
reused unchanged: deterministic corpus-BLEU per language pair plus the
xx->xx, <src>->xx, xx->{tgt} aggregations, optionally augmented by
xCOMET-XXL when compute_comet: true is set on the server. Verification
parity with NeMo-Skills' TranslationMetrics was already established for
wmt24pp and applies here unchanged β€” the verifier reads the same row
fields and emits the same key set.

A 5-row smoke run via ng_e2e_collect_rollouts against a hosted
OpenAI-compatible endpoint produced 5/5 non-empty translations with sentence
BLEU spread across [11.7, 42.0], confirming the prompt + per-row schema
plumb cleanly through the existing wmt_translation_simple_agent β†’
wmt_translation β†’ vllm_model chain. (Heavy parity at production scale is
inherited from the parent wmt24pp PR's full-cluster comparison; no model
changes here.)

Adds the FLORES-200 multilingual translation benchmark (devtest split, default 6 languages = en/de/es/fr/it/ja, 30 directed pairs Γ— 1012 = 30360 rows) on top of the existing wmt_translation resource server. Prepare-output is byte-identical to NeMo-Skills' flores200/prepare.py (md5 8e0c08feb62f336b4c5fe61ccdadd9bc); prompt template is character-identical to multilingual/segment-translation.yaml. 5 example rollouts captured against a hosted OpenAI-compatible endpoint with all rewards in [0,1] and non-empty translations.

Signed-off-by: gwarmstrong <georgea@nvidia.com>
@copy-pr-bot

copy-pr-bot Bot commented May 7, 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.

@cwing-nvidia cwing-nvidia added the env-integration Integrate with existing environments or gyms external to NeMo Gym label May 7, 2026
@bxyu-nvidia
bxyu-nvidia merged commit 22ade9f into NVIDIA-NeMo:main May 7, 2026
7 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

env-integration Integrate with existing environments or gyms external to NeMo Gym

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants