openai/gsm8k
Benchmark • Updated • 17.6k • 957k • 1.33k
How to use CrystalRaindropsFall/smollm2-gsm8k-curriculum-answer-length with PEFT:
from peft import PeftModel
from transformers import AutoModelForCausalLM
base_model = AutoModelForCausalLM.from_pretrained("experiment_results/curriculum_answer_length_smolLM2_gsm8k_20251112_215640/stage_2_normal/merged_model")
model = PeftModel.from_pretrained(base_model, "CrystalRaindropsFall/smollm2-gsm8k-curriculum-answer-length")This is a LoRA adapter for HuggingFaceTB/SmolLM2-135M fine-tuned on the GSM8K dataset for mathematical reasoning.
LoRA adapter for SmolLM2 trained with curriculum learning (answer length method)
This model was trained using curriculum learning, where the model is exposed to progressively harder problems:
The curriculum was determined based on answer length (number of solution steps).
from transformers import AutoModelForCausalLM, AutoTokenizer
from peft import PeftModel
# Load base model
base_model = AutoModelForCausalLM.from_pretrained(
"HuggingFaceTB/SmolLM2-135M",
device_map="auto",
torch_dtype="auto"
)
# Load tokenizer
tokenizer = AutoTokenizer.from_pretrained("HuggingFaceTB/SmolLM2-135M")
# Load LoRA adapter
model = PeftModel.from_pretrained(base_model, "CrystalRaindropsFall/smollm2-gsm8k-curriculum-answer-length")
# Inference
prompt = "Question: Janet's ducks lay 16 eggs per day. She eats three for breakfast every morning and bakes muffins for her friends every day with four. She sells the remainder at the farmers' market daily for $2 per fresh duck egg. How much in dollars does she make every day at the farmers' market?\nAnswer:"
inputs = tokenizer(prompt, return_tensors="pt")
outputs = model.generate(**inputs, max_new_tokens=256)
print(tokenizer.decode(outputs[0], skip_special_tokens=True))
from transformers import pipeline
from peft import PeftModel, AutoPeftModelForCausalLM
# Load model with adapter
model = AutoPeftModelForCausalLM.from_pretrained(
"YOUR_USERNAME/REPO_NAME",
device_map="auto"
)
# Create pipeline
pipe = pipeline("text-generation", model=model, tokenizer=tokenizer)
# Generate
result = pipe("Question: A robe takes 2 bolts of blue fiber and half that much white fiber. How many bolts in total does it take?\nAnswer:")
print(result[0]['generated_text'])
Evaluated on GSM8K test set (512 samples):
| Metric | Score |
|---|---|
| Exact Match | 2.73% |
| Format Correct | 100% |
Apache 2.0 (following base model license)
Base model
HuggingFaceTB/SmolLM2-135M