Overview

Adaptive Math 2

A mathematics-specialized instruction dataset designed to improve reasoning, structured problem solving, and educational AI assistants through supervised fine-tuning with Adaptation Labs AutoScientist.

Research Snapshot

Property Value
Domain Mathematics
Dataset Type Instruction Tuning
Framework Adaptation Labs AutoScientist
Base Model Llama-4 Scout 17B
Fine-tuning LoRA (SFT)
Grade A
Quality Score 9.5 / 10

Dataset Highlights

Adaptive Math 2 focuses on educational mathematical reasoning rather than simple answer prediction.

Covers

  • Algebra
  • Geometry
  • Arithmetic
  • Number Theory
  • Statistics
  • Word Problems
  • Mathematical Reasoning
  • Multi-step Solutions

Characteristics

โœ… Structured instruction format

โœ… Educational explanations

โœ… Curriculum-oriented questions

โœ… Reasoning-aware responses

โœ… Clean supervised fine-tuning format

Example Dataset Samples

Example 1

Instruction

Solve:
4x - 9 = 19

Expected Response

4x = 28

x = 7

Example 2

Instruction

A triangle has angles of 45ยฐ and 65ยฐ.

Find the third angle.

Expected Response

180ยฐ โˆ’ (45ยฐ + 65ยฐ)

= 70ยฐ

Educational Impact

Adaptive Math 2 is intended for:

  • AI tutors
  • Educational assistants
  • Mathematical reasoning
  • Homework support
  • Classroom demonstrations
  • STEM education
  • Benchmark evaluation

The dataset emphasizes transparent reasoning instead of answer memorization.

Acknowledgement

Adaptive Math 2 was developed using the Adaption Lab AutoScientist pipeline with Meta Llama 4 Scout 17B as the foundation model.

Special thanks to:

  • Adaption Lab for the AutoScientist training and evaluation platform.
  • Meta AI for the Llama 4 Scout base model.
  • Hugging Face for open model hosting and distribution.
  • Kaggle for dataset publication and community accessibility.

This project demonstrates how adaptive instruction datasets can improve mathematical reasoning, instruction following, and educational AI through efficient LoRA fine-tuning.

๐Ÿ“Š Model Performance

Adaptive Math 2 Performance

{
  "job_id": "8db3bddd-326c-44ba-8440-2456d10d33f2",
  "training_experiment_id": "78a0fd31-7d13-40cf-bc55-fb2d2bf9e92c",
  "original_model_name": "meta-llama/Llama-4-Scout-17B-16E-Instruct",
  "trained_model_name": "adaption_adaptive_math_2",
  "training_method": "sft",
  "training_type": "lora",
  "data_format": "chat",
  "hyperparams": {
    "lora": "true",
    "lora_r": 16,
    "n_evals": 5,
    "n_epochs": 5,
    "batch_size": "max",
    "lora_alpha": 32,
    "lora_dropout": 0,
    "min_lr_ratio": 0.1,
    "warmup_ratio": 0.03,
    "weight_decay": 0,
    "learning_rate": 0.00005,
    "max_grad_norm": 2,
    "base_model_size": "109B",
    "train_on_inputs": "false",
    "training_method": "sft",
    "lr_scheduler_type": "linear",
    "scheduler_num_cycles": 0.5,
    "lora_trainable_modules": "k_proj,o_proj,q_proj,v_proj,shared_expert.gate_proj,shared_expert.up_proj,shared_expert.down_proj,feed_forward.gate_proj,feed_forward.up_proj,feed_forward.down_proj"
  }
}

Training Data

The model was trained on 1,306 rows of adapted data with the following domain distribution: math (77%), code (8%), science (8%), academic-education (8%).

Model Evaluation

The model was evaluated on an in-distribution held-out test set as well as a broader domain-specific test set to measure generalization.

Win rates

Domain Win rate vs. base model
math 66%

How to use

pip install torch transformers peft
import torch
from transformers import AutoModelForCausalLM, AutoTokenizer
from peft import PeftModel

BASE = "meta-llama/Llama-4-Scout-17B-16E-Instruct"
ADAPTER = "<this-repo-id>"

device = "cuda" if torch.cuda.is_available() else "cpu"
dtype = torch.float32 if device == "cpu" else torch.bfloat16

base = AutoModelForCausalLM.from_pretrained(BASE, dtype=dtype).to(device)
model = PeftModel.from_pretrained(base, ADAPTER)
# Optional: merge the LoRA weights into the base for faster inference
model = model.merge_and_unload()
model.eval()

tokenizer = AutoTokenizer.from_pretrained(BASE)
messages = [{"role": "user", "content": "Hello!"}]
text = tokenizer.apply_chat_template(
    messages, tokenize=False, add_generation_prompt=True)
inputs = tokenizer(text, return_tensors="pt").to(device)

with torch.inference_mode():
    out = model.generate(**inputs, max_new_tokens=512)
print(tokenizer.decode(out[0][inputs["input_ids"].shape[1]:], skip_special_tokens=True))
Downloads last month
-
Inference Providers NEW
This model isn't deployed by any Inference Provider. ๐Ÿ™‹ Ask for provider support