Instructions to use modrill/MT11-OLMO3-THINK-OMR-R025-v1 with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- PEFT
How to use modrill/MT11-OLMO3-THINK-OMR-R025-v1 with PEFT:
from peft import PeftModel from transformers import AutoModelForCausalLM base_model = AutoModelForCausalLM.from_pretrained("allenai/Olmo-3-1025-7B") model = PeftModel.from_pretrained(base_model, "modrill/MT11-OLMO3-THINK-OMR-R025-v1") - Notebooks
- Google Colab
- Kaggle
| base_model: allenai/Olmo-3-1025-7B | |
| library_name: peft | |
| pipeline_tag: text-generation | |
| datasets: | |
| - nvidia/OpenMathReasoning | |
| tags: | |
| - peft | |
| - lora | |
| - olmo3 | |
| - think | |
| - math | |
| - mt11 | |
| - openmathreasoning | |
| - dynamic-lora | |
| # MT11-OLMO3-THINK-OMR-R025-v1 | |
| Dynamic PEFT/LoRA adapter for `allenai/Olmo-3-1025-7B`, trained as the | |
| `BASE-MATH-R025-12M` OLMo B candidate. This repository contains adapter weights | |
| only. It does **not** contain merged, baked, or base-model weights. | |
| ## Formal result | |
| The locked EvalScope 1.9.1 exact240 contract produced **46/240** for this adapter | |
| and **41/240** for the independently recomputed fresh base. Paired outcomes were | |
| **19 wins / 14 losses / 207 ties** on identical `(seed, dataset, index)` | |
| identities. This is a positive formal evaluation signal, not a claim of broad | |
| benchmark superiority. | |
| ## Required disclosure: legacy training runner | |
| These weights were trained by the old context-truncating legacy runner. During | |
| training, the model forward pass was invoked separately for each 1,024-token | |
| slice, resetting sequence context at every slice boundary. The legacy scheduler | |
| also had a historical first-update warmup problem. Both issues were fixed and | |
| tested in the later runner, but **this adapter was not trained with the fixed | |
| runner** and must never be described that way. | |
| The formal exact240 result remains valid as an evaluation of these frozen | |
| weights: checkpoint identity, dynamic LoRA loading, template, stop IDs, prompt | |
| budget, and paired review identities were independently checked. The training | |
| defects limit causal and recipe-transfer claims; they do not rewrite the | |
| observed 46/240 versus 41/240 result. | |
| ## Runtime contract | |
| - Base: `allenai/Olmo-3-1025-7B` at | |
| `996971efdc504b81f0a6caf73a6c92f976254b9c` | |
| - Template/tokenizer: official `allenai/Olmo-3-7B-Think` | |
| `chat_template.jinja` at | |
| `d97e442d7cc678210054dbcc9b440894d62c89a4` | |
| - Template SHA-256: | |
| `6d549883b5ed12879e191845c256a30c7dfd4eced0a4f160060a3ea0199d9e3a` | |
| - Context: dynamic 32K; generation budget is | |
| `32768 - exact_prompt_tokens - 64` | |
| - Stop token IDs: `[100265, 100257]` | |
| - LoRA: rank 64, alpha 128, dropout 0; targets `q_proj`, `k_proj`, | |
| `v_proj`, `o_proj`, `gate_proj`, `up_proj`, `down_proj` | |
| ## Loading example | |
| ```python | |
| import torch | |
| from peft import PeftModel | |
| from transformers import AutoModelForCausalLM, AutoTokenizer | |
| base_id = "allenai/Olmo-3-1025-7B" | |
| base_revision = "996971efdc504b81f0a6caf73a6c92f976254b9c" | |
| template_id = "allenai/Olmo-3-7B-Think" | |
| template_revision = "d97e442d7cc678210054dbcc9b440894d62c89a4" | |
| adapter_id = "modrill/MT11-OLMO3-THINK-OMR-R025-v1" | |
| tokenizer = AutoTokenizer.from_pretrained( | |
| template_id, revision=template_revision | |
| ) | |
| base = AutoModelForCausalLM.from_pretrained( | |
| base_id, | |
| revision=base_revision, | |
| torch_dtype=torch.bfloat16, | |
| device_map="auto", | |
| ) | |
| model = PeftModel.from_pretrained(base, adapter_id) # dynamic; do not merge | |
| messages = [{"role": "user", "content": "Solve the problem step by step."}] | |
| rendered = tokenizer.apply_chat_template( | |
| messages, | |
| tokenize=False, | |
| add_generation_prompt=True, | |
| ) | |
| inputs = tokenizer(rendered, return_tensors="pt").to(model.device) | |
| max_new_tokens = 32768 - inputs.input_ids.shape[-1] - 64 | |
| outputs = model.generate( | |
| **inputs, | |
| max_new_tokens=max_new_tokens, | |
| do_sample=True, | |
| temperature=0.6, | |
| top_p=0.95, | |
| top_k=20, | |
| eos_token_id=[100265, 100257], | |
| ) | |
| ``` | |
| Verify that the resolved tokenizer actually uses the pinned official | |
| `chat_template.jinja`; do not substitute the base tokenizer's default template. | |
| ## Data and evaluation notes | |
| Training used a 4,096-row public-source-derived manifest from | |
| `nvidia/OpenMathReasoning` at the pinned revision documented in | |
| `DATA_PROVENANCE.json`. Raw rows and the full training set are intentionally not | |
| included. Only public summaries, manifests, revisions, and hashes are released. | |
| For termination diagnostics, the corrected cap definition counts runtime | |
| `stop_reason`/`finish_reason` values of either `max_tokens` or `length`. Under | |
| that definition the adapter had 162/240 cap terminations and 78/240 natural | |
| `stop` terminations; 43 natural stops were formally correct. The historical | |
| matched120 helper checked only `length`, while this runtime emitted | |
| `max_tokens`, so its reported zero-cap diagnostic must not be reused. Literal | |
| `\boxed` presence is diagnostic only and never changes the authoritative | |
| EvalScope score. | |
| See the JSON contracts in this repository for exact provenance, scoring scope, | |
| hashes, and limitations. | |