CoolFace
Modelpublic

delimitter/qwen25-coder-7b-synoema-iot

sourceHugging Faceapache-2.0updated 5mo agoView on Hugging Face
0likes3downloads
Model Card

Qwen2.5-Coder-7B — Synoema IoT Fine-tune

LoRA adapter on Qwen2.5-Coder-7B-Instruct trained to generate correct Synoema IoT automation rules.

What is Synoema?

Synoema is an LLM-native programming language designed for IoT/edge automation:

  • —33 BPE-aligned operators (cl100k_base) — no tokenizer misalignment
  • —GBNF grammar for constrained decoding (100% syntactic correctness)
  • —Cranelift JIT + WebAssembly targets
  • —Contract annotations (requires/ensures) for formal verification

Model Details

PropertyValue
Base modelunsloth/Qwen2.5-Coder-7B-Instruct-bnb-4bit
Adapter typeLoRA (QLoRA 4-bit)
LoRA rankr=8, alpha=32
Training epochs3
Train examples5,479
Eval suite7-task IoT sandbox (T1–T7)
Best score5/7 (Cycle 22, 2026-05-03)
Training hardwareAMD RX 7900 GRE (ROCm, unsloth)

Eval Results — IoT 7-Task Suite

TaskStatusDescription
T1-bearing-protection✅ PASSAPI 670 bearing temperature/vibration protection relay
T2-irrigation-interlock✅ PASSSoil moisture + rain sensor irrigation interlock
T3-async-sensor-poll✅ PASSAsync GPIO sensor polling with cancellation token
T4-bearing-anomaly❌ FAILBearing anomaly diagnosis (lubrication failure pattern)
T5-hvac-setback❌ FAILHVAC occupancy setback (BACnet/Modbus control)
T6-vitals-alert✅ PASSPatient vitals alert (HR/SpO2 thresholds)
T7-co2-anomaly✅ PASSCO2 anomaly detection (NDIR sensor, ventilation logic)

Score: 5/7 (71.4%) — Training ongoing, target 7/7.

Continuous Training

This model is trained in a continuous improvement loop:

  • —22+ cycles completed (2026-04-18 → 2026-05-03)
  • —Each cycle: corpus expansion → QLoRA fine-tune → IoT eval → targeted corpus generation
  • —Corpus: 5,479 training examples across 15 domains

Corpus Composition

CategoryExamples
Anchor format / doc annotations329
Async IoT patterns104
Contract codegen48
Doc interrogation (MCP)500
IoT aggregation48
IoT verticals (agri/building/industrial/medical)112
IoT hypothesis patterns502
Multi-step chains500
Multi-step training3,242
Pkg interrogation200
Syntax drills/fixes160
Targeted fixes (T2–T5)320+

Usage

python
from peft import AutoPeftModelForCausalLM
from transformers import AutoTokenizer

model = AutoPeftModelForCausalLM.from_pretrained(
    "synoema/qwen25-coder-7b-synoema-iot",
    device_map="auto",
)
tokenizer = AutoTokenizer.from_pretrained(
    "synoema/qwen25-coder-7b-synoema-iot"
)

prompt = """Generate a Synoema IoT rule that monitors bearing temperature.
Alert if temperature > 85°C, trip if > 95°C."""

inputs = tokenizer(prompt, return_tensors="pt").to(model.device)
out = model.generate(**inputs, max_new_tokens=512, temperature=0.7)
print(tokenizer.decode(out[0], skip_special_tokens=True))

Training Setup

bash
# Training command (AMD ROCm, unsloth)
TORCHDYNAMO_DISABLE=1 python3 train_mcp_finetune.py \
  --model unsloth/Qwen2.5-Coder-7B-Instruct-bnb-4bit \
  --output output/ci-c22-qwen25-7b \
  --train corpus/mcp_train.jsonl \
  --epochs 3 \
  --batch-size 1 \
  --grad-accum 16 \
  --max-seq-len 2048 \
  --lora-r 8

Note: TORCHDYNAMO_DISABLE=1 required to work around unslothzoo CE loss decorator on AMD ROCm (TorchDynamo shape mismatch with `s97 vs s7` tensors in crossentropy).

Known Issues

  • —T4 / T5 still failing — targeted corpus expansion in progress
  • —TORCHDYNAMO_DISABLE required on AMD ROCm — unslothzoo CE loss applies `@torch.dynamo.optimize()` at import time; must monkey-patch or disable globally

Links