erdos-forge-7b-qlora β€” FORGE: Fabrication-Oriented Reasoning Engine (Qwen2.5-Coder-7B QLoRA)

QLoRA adapters and intermediate checkpoints for FORGE β€” a constraint-graph–driven engineering system that turns natural-language intent into manufacturable CAD parts (source on GitHub).

What FORGE does

Traditional CAD stores geometry. FORGE stores engineering intent as a live constraint graph, with every dimension traceable to the constraint that produced it. Change the manufacturing process and the part re-derives.

Adapter / training config

Base model Qwen/Qwen2.5-Coder-7B-Instruct
Method QLoRA (4-bit base + LoRA adapters)
LoRA rank r 64
LoRA alpha 128
LoRA dropout 0.05
PEFT version 0.18.1
Tokenizer included (tokenizer.json, vocab.json, merges.txt, etc.)

Repository layout

.
β”œβ”€β”€ adapter_config.json         # final adapter config
β”œβ”€β”€ adapter_model.safetensors   # final LoRA weights
β”œβ”€β”€ tokenizer.json              # tokenizer artifacts
β”œβ”€β”€ tokenizer_config.json
β”œβ”€β”€ added_tokens.json
β”œβ”€β”€ special_tokens_map.json
β”œβ”€β”€ vocab.json
β”œβ”€β”€ merges.txt
β”œβ”€β”€ chat_template.jinja
β”œβ”€β”€ training_args.bin           # HF TrainingArguments at final
β”œβ”€β”€ checkpoint-500/             # intermediate checkpoints from training
β”œβ”€β”€ checkpoint-1000/
β”œβ”€β”€ checkpoint-1500/
β”œβ”€β”€ checkpoint-2000/
└── checkpoint-2184/            # latest step (effectively final)

Each checkpoint-{step}/ mirrors the top-level adapter layout for resuming.

Loading the adapter

from peft import PeftModel
from transformers import AutoModelForCausalLM, AutoTokenizer

base = AutoModelForCausalLM.from_pretrained(
    "Qwen/Qwen2.5-Coder-7B-Instruct",
    torch_dtype="auto",
    device_map="auto",
)
tokenizer = AutoTokenizer.from_pretrained("nileshsarkar-ai/erdos-forge-7b-qlora")
model = PeftModel.from_pretrained(base, "nileshsarkar-ai/erdos-forge-7b-qlora")

prompt = "Design a mounting bracket for an M8 bolt, injection molded in ABS."
inputs = tokenizer(prompt, return_tensors="pt").to(model.device)
out = model.generate(**inputs, max_new_tokens=512)
print(tokenizer.decode(out[0], skip_special_tokens=True))

To load an intermediate checkpoint instead of the final one:

model = PeftModel.from_pretrained(
    base,
    "nileshsarkar-ai/erdos-forge-7b-qlora",
    subfolder="checkpoint-2000",
)

Reproducing

Training pipeline (data generation β†’ training β†’ eval β†’ serving) is at ERDOS/forge-training/ on GitHub. Axolotl config: 03_training/axolotl_config.yaml.

cd ERDOS/forge-training
bash 06_scripts/run_full_pipeline.sh

Related

Downloads last month
49
Inference Providers NEW
This model isn't deployed by any Inference Provider. πŸ™‹ Ask for provider support

Model tree for nileshsarkar-ai/erdos-forge-7b-qlora

Base model

Qwen/Qwen2.5-7B
Adapter
(650)
this model