moolm/candle-qwen38-27b-sft-1p
moolm Qwen3.8-27B SFT (LoRA)
QLoRA adapter that teaches Qwen/Qwen3.8-27B to write, explain, and refactor MOOCode, reason about Torchship design, and drive the live #340 agent harness (tool calls).
This is an adapter-only release (~897 MB). Load it on top of the base model; it is not a full merge.
Intended use
- MOOCode authoring, explanation, review, refactor, and dialect translation (mooR / classic LambdaMOO-style)
- Agentic multi-turn tool use against Torchship-style MCP tool schemas
- Chat-style design / principles / conventions Q&A grounded in the moolm corpus
Out of scope: general-purpose chat replacement for the base model; vision/video (this SFT is text/tool oriented); unsupervised production writes without a sandbox.
Training data
Built by the moolm pipeline from mined Torchship sessions plus synthesized, compile-checked examples.
Training only supervised the weight=1 assistant turn in each window. Tool schemas were omitted from the chat template (tool calls retained). Nearly all rows carry reasoning_content from the reasoning backfill.
Training details
Run artifact: training/output/qwen38-sft-full/final (completed 2026-08-16).
How to use
from peft import PeftModel
from transformers import AutoModelForCausalLM, AutoTokenizer
import torch
base_id = "Qwen/Qwen3.8-27B"
adapter_id = "moolm/candle-qwen38-27b-sft-1p" # replace ORG
tokenizer = AutoTokenizer.from_pretrained(adapter_id, trust_remote_code=True)
model = AutoModelForCausalLM.from_pretrained(
base_id,
torch_dtype=torch.bfloat16,
device_map="auto",
trust_remote_code=True,
)
model = PeftModel.from_pretrained(model, adapter_id)For 4-bit loading, pass a BitsAndBytesConfig when constructing the base model, then attach the adapter the same way.
Limitations
- Sequence budget for this adapter is 4096; longer agent windows from the dataset were excluded.
- Behavior is skewed toward Torchship / mooR; classic LambdaMOO coverage is thin.
- Agentic outputs assume Torchship
#340-style tools; other harnesses need their own schemas in context. - See Evaluation for held-out compile / tool metrics on A100-unused rows.
Evaluation
Held-out set drawn from the A100-unused slice of sft.reasoned.jsonl: complete examples whose training encoding exceeded 4096 tokens (never truncated into the SFT run). Stratified by family from the length band that still fits eval context.
Compile rate by family (rows with code fences)
Generation: greedy-ish sampling (temperature=0.3), thinking enabled then stripped for scoring; prompts capped so prompt+new tokens fit the eval context budget.
License
Apache 2.0, following the base Qwen3.8-27B license. You must also comply with Qwen's terms when redistributing derivatives.
