NNMRC — G4b (LoRA adapter, 0.86 public LB)

LoRA adapter (rank ≤ 32) for nvidia/NVIDIA-Nemotron-3-Nano-30B-A3B-BF16, trained for the NVIDIA Nemotron Model Reasoning Challenge (Kaggle). G4b is our best adapter: 0.86 public leaderboard, reached via anchored continuation from our G4 adapter (0.84) with a light cross‑entropy, completion‑only SFT.

  • Authors: Bastien (Tito‑42) & Dido Grigorov
  • Base model: nvidia/NVIDIA-Nemotron-3-Nano-30B-A3B-BF16 (hybrid Mamba‑2 + Transformer MoE)
  • Adapter type: PEFT LoRA, rank 32 / α 64 / dropout 0, eight explicit target_modules (q,k,v,o_proj, in,out_proj, up,down_proj; not all-lineargate_proj and lm_head are excluded), MoE router frozen
  • Task: 7 symbolic‑reasoning categories — bit_manipulation, cipher, equation_numeric, equation_symbolic, gravity, numeral, unit_conversion
  • Licence: CC BY 4.0 (adapter weights). Base model under NVIDIA's licence. See NOTICE.

Results (public LB)

G4b = 0.86 (matches our strongest reference recipe). Floor: G4 0.84. Per‑category detail and the full story (including failures) are in the project RESEARCH_LOG.md and PAPER_DRAFT.md.

Training config

Anchored continuation on G4 (0.84): cross-entropy, completion-only (variant a2), 1 epoch, lr 1e-4, rank 32 / α 64 / dropout 0, max_seq_length=8192, no packing, seed 42, 4,672 rows (architect_t800.jsonl), PEFT 0.18.1. Peak ~136 GB VRAM on a B200 — does not fit the 96 GB Kaggle GPU (OOM at 4096 for this Mamba-2 model). Final train loss 0.039. The LoRA trains the experts' feed-forward (up_proj/down_proj) but not the MoE routing gate (frozen, per NVIDIA guidance). (The Dido slot-2 final additionally adapts lm_head; G4b does not.)

Intended use

Research / reproducibility for the competition and for studying deterministic‑CoT SFT on hybrid Mamba‑Transformer MoE models. Not a general‑purpose assistant.

How to use

from peft import PeftModel
from transformers import AutoModelForCausalLM, AutoTokenizer

base = "nvidia/NVIDIA-Nemotron-3-Nano-30B-A3B-BF16"
tok = AutoTokenizer.from_pretrained(base)
model = AutoModelForCausalLM.from_pretrained(base, torch_dtype="bfloat16", device_map="auto")
model = PeftModel.from_pretrained(model, "<your-hf-namespace>/nnmrc-g4b")
# Chat template uses <|im_start|>/<|im_end|>; the answer is emitted in the last \boxed{...}.

Inference invariants: greedy decoding (temperature=0), max_new_tokens≈7680. On Blackwell GPUs, remove flashinfer if using vLLM. Mamba‑2 requires its deterministic kernels.

Training data

Deterministic, per‑token‑predictable chain‑of‑thought generated per category (DeepSeek teacher + deterministic solver verification). See the companion dataset card and 02_datasets/.

Limitations

  • equation_symbolic (hard cryptarithm) and equation_numeric (operator‑absent guess) are information walls (~8 / ~15) shared across the competition.
  • bit_manipulation is frozen at ~84 under SFT (a "vehicle wall"); surpassing it appears to need RL.

Citation

Bastien (Tito‑42) & D. Grigorov, Anchored Continuation over Re‑rolling: a rank‑32 LoRA recipe for NVIDIA Nemotron on symbolic reasoning, 2026. Code MIT, weights CC BY 4.0.

Downloads last month
-
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Model tree for Tito-42/nnmrc-g4b-0.86

Adapter
(210)
this model