--- license: apache-2.0 language: - en tags: - caid - blueprint - hardware - cad - text-to-cad - manufacturing - agents - structured-generation - json - lora - qlora - unsloth - peft - sft - trl pipeline_tag: text-generation base_model: Qwen/Qwen2.5-3B-Instruct library_name: peft --- # Parti Base β€” Qwen2.5-3B (adapter) **Parti turns a plain-English hardware idea into an organized project plan.** Tell it what you want to build β€” *"a compact desk clock with an e-ink display and a remote"* β€” and it gives back a structured blueprint: the parts list, how the parts connect, step-by-step build instructions, rough costs, and a quick design check. Everything comes out as clean, organized data that an app can read and build on. This repo is a small **add-on (LoRA adapter)** that sits on top of the Qwen2.5-3B model. For the all-in-one version that runs by itself, see [**parti-base**](https://huggingface.co/caid-technologies/parti-base). > **Early research preview.** Great for drafting and exploring ideas β€” not a replacement for > real engineering, CAD software, or safety review. By [caid-technologies](https://huggingface.co/caid-technologies). --- ## What it can do Give it a hardware idea and it can produce any of: - πŸ“‹ a **parts list** (components) - πŸ”Œ a **wiring/connection map** between the parts - πŸ› οΈ ordered **build steps** - πŸ’² rough **sourcing and cost** info - βœ… a basic **design check** - πŸ“¦ or the **whole project plan** at once You can ask for the complete plan, or just one piece (like only the parts list). ## What it's good for β€” and not βœ… **Good for:** brainstorming hardware projects, drafting parts lists and build steps, and turning a rough idea into an organized starting plan. 🚫 **Not for:** final engineering decisions, real CAD models, electrical safety, or anything safety-critical. Treat the output as a helpful **first draft to review**, not a finished design. ## Try it ```python from transformers import AutoModelForCausalLM, AutoTokenizer from peft import PeftModel REPO = "caid-technologies/blueprint-base-lora" base = AutoModelForCausalLM.from_pretrained( "Qwen/Qwen2.5-3B-Instruct", device_map="auto", torch_dtype="bfloat16") tok = AutoTokenizer.from_pretrained(REPO) model = PeftModel.from_pretrained(base, REPO) msgs = [ {"role": "system", "content": "You design hobbyist electronics projects. Given a request, reply with a single " "JSON object describing the full project. Output only the JSON."}, {"role": "user", "content": "A compact desk clock with an e-ink display and an IR remote."}, ] inputs = tok.apply_chat_template( msgs, add_generation_prompt=True, return_tensors="pt", return_dict=True).to(model.device) out = model.generate(**inputs, max_new_tokens=6144, repetition_penalty=1.1, pad_token_id=tok.eos_token_id) print(tok.decode(out[0][inputs["input_ids"].shape[1]:], skip_special_tokens=True)) ``` πŸ’‘ **Tip:** keep `max_new_tokens` high (β‰₯ 6000) so long plans aren't cut off, and keep `repetition_penalty=1.1` so wiring lists don't get stuck repeating. ## What it learned from It was trained on about **130 hobbyist hardware projects** β€” things like weather stations, small robots, drones, smart-home gadgets, lab tools, and audio gear β€” expanded into a few thousand practice examples. Everything is **small, maker-style** electronics-plus-hardware. **Most common project types in the training data:** | Project type | Share | Examples | |---|---|---| | Test & lab instruments | ~20% | function generator, Geiger counter | | Smart-home / IoT gadgets | ~15% | pet feeder, smart mailbox, pill dispenser | | Radio, comms & networking | ~9% | LoRa base station, APRS tracker, NAS | | Wearables & health | ~8% | sleep ring, heart-rate strap | | Audio & music | ~8% | synth module, guitar pedal, speaker | | Robotics & motion | ~7% | quadruped robot, robotic arm | | Environmental sensing | ~7% | air-quality monitor, weather station | | Clocks & e-ink displays | ~6% | word clock, e-ink calendar | | Maker / fabrication tools | ~5% | vinyl cutter, pen plotter | | Drones & aerial | ~5% | FPV drone, VTOL aircraft | | Everything else | ~10% | lighting, games, automotive, power | ## Good to know (limitations) - It's a **small model**, so complex, many-part projects are harder for it. - It **proposes** designs; it doesn't verify them. Always sanity-check before building. - It's strongest on common project types (lab tools, smart-home) and weaker on rarer ones (games, automotive). ## How well it works We tested it on projects it had **never seen during training**. Here's how often it produced a valid, well-structured result for each task: | Task | Valid result | |---|---| | πŸ› οΈ Build steps | ~100% | | βœ… Design check | ~100% | | πŸ“‹ Parts list | ~95% | | πŸ“¦ Full project plan | ~85–97% | | πŸ”Œ Wiring map | ~67% | It's strongest at build steps, design checks, and parts lists. Full end-to-end plans are close behind, and wiring maps are the hardest (and most sensitive to the `repetition_penalty` tip above). *Figures are from held-out testing and are being finalized for the current version.* ---
Technical details (for ML folks) - **Base model:** `Qwen/Qwen2.5-3B-Instruct` (trained 4-bit via `unsloth/Qwen2.5-3B-Instruct-bnb-4bit`) - **Method:** QLoRA with Unsloth β€” LoRA r=32, alpha=32, all attention+MLP projections - **Training:** 1 epoch, max_seq_len 6144, effective batch 8, lr 2e-4 (linear, 3% warmup), adamw_8bit, NEFTune Ξ±=5, loss masked to assistant turns, early stopping on eval loss - **Hardware:** single RTX 4070 (12 GB) - **Data:** synthetic dataset projected into 6 task "modes" (full plan, parts, wiring, instructions, validation); split **grouped by project** so none leak between train/test. ~3,242 rows; modes rebalanced (cap 350/mode) so the model doesn't coast on the easy ones. - **Inference:** `do_sample=False`, `repetition_penaltyβ‰ˆ1.1`, `max_new_tokensβ‰₯6000`, pass the attention mask. ```bibtex @misc{blueprint_base, title = {Blueprint Base: Qwen2.5-3B for structured hardware project generation}, author = {Caid Technologies}, year = {2026}, howpublished = {\url{https://huggingface.co/caid-technologies}} } ``` Built with [Unsloth](https://github.com/unslothai/unsloth) and πŸ€— PEFT / TRL.