Architect Agent (Gemma-4-26B-A4B MoE)
A fine-tune of unsloth/gemma-4-26b-a4b-it that emulates a senior software architect: applies DDD strategic patterns, surfaces architectural tensions, and reasons explicitly via blocks before recommending.
Fine-tuned from
unsloth/gemma-4-26b-a4b-it using
Unsloth +
TRL on a single NVIDIA DGX Spark GB10 (121 GB unified memory).
Intended use
Pairing with a developer on architecture decisions: bounded-context design, integration patterns, sequencing legacy-system migrations, and articulating trade-offs in writing. Built to be served behind llama-swap / Ollama / vLLM as part of a multi-agent system.
Sample prompt
1from transformers import AutoTokenizer, AutoModelForCausalLM
2import torch
3
4repo = "RichWoollcott/architect-agent-gemma4-26b-moe"
5tok = AutoTokenizer.from_pretrained(repo)
6model = AutoModelForCausalLM.from_pretrained(
7 repo, torch_dtype=torch.bfloat16, device_map="cuda"
8)
9
10messages = [{"role": "user", "content": "I'm building a new payments service that needs to integrate with five legacy systems. Which DDD strategic patterns should I apply first and why?"}]
11inputs = tok.apply_chat_template(
12 messages, return_tensors="pt", add_generation_prompt=True
13).to("cuda")
14out = model.generate(inputs, max_new_tokens=600, do_sample=False)
15print(tok.decode(out[0][inputs.shape[1]:], skip_special_tokens=False))
The model is trained to open every response with a <think>...</think>
reasoning block followed by the visible answer. If you do not see the tags,
add Begin every response with <think>...</think> to the system prompt.
Limitations
Trained on ~900 synthetic dialogues generated by an adversarial Player-Coach pipeline; coverage is biased towards the 10 architect-dimension categories enumerated in the dataset-factory generation plan. The model has no first-hand engineering experience and will confidently reason from incorrect premises if those premises are accepted. Always pair with a RAG layer over authoritative architecture sources for factual grounding.
Training data
894 reasoning-style (<think>...</think> then answer) dialogues covering 10 DDD-flavoured architect dimensions, accepted by an LLM Coach with a structured-JSON rubric. Generated by the agentic-dataset-factory Player-Coach pipeline. 83.2% acceptance rate; zero chat-template-token leaks; 100% <think> coverage.
The data is not released alongside the weights pending a license review
of source material referenced during generation. The generator
(agentic-dataset-factory, Player-Coach adversarial pipeline) is open-source
and reproducible.
Training procedure
- Framework: Unsloth + TRL (SFT)
- Precision: bfloat16
- PEFT: LoRA, rank 16
- Optimiser: AdamW (Unsloth defaults)
- Epochs: 1, effective batch size 4, max-seq-length 2048
- Hardware: NVIDIA DGX Spark GB10 (single device, unified memory)
- Container:
nvcr.io/nvidia/pytorch:25.11-py3
- Verified-compatible pins:
transformers==5.5.4, accelerate==1.10.0,
trl==0.26.1, datasets==4.3.0, latest unsloth/unsloth_zoo/bitsandbytes.
Loss trajectory and reproduction recipe: see the source runbook in
appmilla/agentic-dataset-factory
—
domains/architect-agent/RUNBOOK-architect-fine-tune.md.
Artefacts in this repo
/ (root) — merged-16bit weights (full standalone model, ~49 GB).
Load with AutoModelForCausalLM.from_pretrained(repo_id).
lora-adapter/ — the LoRA adapter (~1.9 GB). Apply on top of the
base model with PeftModel.from_pretrained(base, repo_id, subfolder="lora-adapter").
GGUF quantisations (q4_k_m, BF16) live in a separate repo:
RichWoollcott/architect-agent-gemma4-26b-moe-GGUF.
License
Released under the
Gemma Terms of Use,
as required by the base model.
Citation
If you use this model, please cite the base model, TRL, and Unsloth:
1@misc{vonwerra2022trl,
2 title = {TRL: Transformer Reinforcement Learning},
3 author = {Leandro von Werra and others},
4 year = 2020,
5 url = {https://github.com/huggingface/trl}
6}