CoolFace
Datasetpublic

hungbenjamin402/IF-RLVR-IFEval-prompts-LFM2.5

IF-RLVR prompts with IFEval verifier spec → LFM2.5 prompt format A derivative of [nvidia/Nemotron-RL-instruction_following + allenai/RLVR-IFeval (via sungyub/if-verl-unified)](https://huggingface.co/datasets/nvidia/Nemotron-RL-instruction_following + allenai/RLVR-IFeval (via sungyub/if-verl-unified)) (odc-by) normalized for fine-tuning Liquid AI LFM2 / LFM2.5 models, whose native tool-call format is Pythonic: <|im_start|>assistant <|tool_call_start|>[get_weather(location='Paris… See the full description on the dataset page: https://huggingface.co/datasets/hungbenjamin402/IF-RLVR-IFEval-prompts-LFM2.5.

sourceHugging Faceodc-byupdated 1mo agoView on Hugging Face
0likes19downloads
Dataset Card

IF-RLVR prompts with IFEval verifier spec → LFM2.5 prompt format

A derivative of nvidia/Nemotron-RL-instruction_following + allenai/RLVR-IFeval (via sungyub/if-verl-unified)) (odc-by) normalized for fine-tuning Liquid AI LFM2 / LFM2.5 models, whose native tool-call format is Pythonic:

<|im_start|>assistant
<|tool_call_start|>[get_weather(location='Paris, France', unit='celsius')]<|tool_call_end|><|im_end|>

Prompt-only rows (prompt_only = true) whose extra.ground_truth is the IFEval `instruction_id` / `kwargs` spec, so they score with the same verifier functions as hungbenjamin402/IF-multi-constraints-upto5-LFM2.5-prompts (open_instruct/IFEvalG or datatrove IFEval). Two sources: NVIDIA's WildChat-based IF-RLVR prompts and Ai2's RLVR-IFeval (Tulu-3), the latter via the verl repack sungyub/if-verl-unified. Per-row source column records provenance.

Every row was rendered through the official LiquidAI/LFM2.5-VL-3B chat template (identical to the LFM2.5 text models' template for text-only input); prompt-only rows carry no tool calls, so no round-trip check applies.

What changed vs. the source

TransformWhy
responses_create_params.input / verl prompt → messages; rendered with add_generation_prompt=TruePrompt set for on-policy sampling.
instruction_id_list + kwargs → extra.ground_truth = [{instruction_id, kwargs}] (IFEval shape); verl python-literal ground truth parsed to JSONOne verifier spec across both sources.
Tool names sanitized to Python identifiers (web-search → web_search), consistently in tools and calls; originals kept in renamed_toolsPythonic call syntax requires identifiers.
Exact-duplicate tool entries deduplicatedTemplate hygiene.
Dropped: calls to undeclared tools, unparseable arguments, argument names that are not identifiers or are Python keywords (from, class), rows over 8192 tokens, rows with no assistant tokensTraining hygiene.

Nothing was rephrased, re-generated, or re-labelled.

Columns

ColumnTypeDescription
id, source, split, licensestrprovenance
messagesstr (JSON)canonical OpenAI-style messages; tool_calls arguments are dicts. Feed this + `tools` to `apply_chat_template` to re-render with any LFM template version.
toolsstr (JSON)OpenAI-style tool schemas
textstrfully rendered LFM2.5 conversation, BOS included
prompt_onlybooltrue when the row is a prompt ending in the generation prompt (no assistant tokens)
n_turns, n_tool_calls, n_tools, n_tokens, n_assistant_tokensintsizes (LFM2.5 tokenizer)
renamed_toolsstr (JSON){original: sanitized} when any tool was renamed, else ""
extrastr (JSON)source-specific fields: ground_truth (IFEval spec), prompt/id (nvidia), data_source/extra_info (verl)

Stats

SplitReadKeptRows with renamed toolsDropped (reason=count)
nemotron_rl_if46,39146,3910
rlvr_ifeval14,97014,9700

Training notes

  • —Use assistant-only loss: apply_chat_template(messages, tools=tools, tokenize=True, return_assistant_tokens_mask=True).
  • —Prefer re-rendering from messages/tools over training on text if your template differs.
  • —Serving-side parsers must accept JSON literals (true, null, nested {}/[]) inside Pythonic calls.

Citation

Please cite the upstream dataset: https://huggingface.co/datasets/nvidia/Nemotron-RL-instruction_following + allenai/RLVR-IFeval (via sungyub/if-verl-unified)