Prerequisites
- A Mac with Apple silicon (M-series). Unified memory decides the training memory profile: 16 GB works, more is faster.
- Python 3.10+ and the SDK:
pip install runapprentice - A CSV of examples with
input,outputcolumns. Rows you pass with--dataare treated as gold: no account or review step.
Hand it to your agent
Working in Claude Code, Codex, or Copilot CLI? Install the skill and hand over the whole path:Train
- Preflight checks the dataset, model, and memory profile.
mlx_lm lorafine-tunesQwen/Qwen3.5-4Bwith a LoRA adapter on your gold rows.- A held-out slice is scored before and after, so the report shows a real delta, not a feeling.
- The adapter, its SHA-256, the mlx-lm version, and the scores land in a local run report.
| Flag | What it does |
|---|---|
--effort low|medium|high | Memory profile, not a quality knob. Every tier trains the same model on the same examples; higher tiers use a bigger batch and need more memory. Default: auto-detected from unified memory. Hit an OOM? Drop a tier. |
--keep-awake | Keeps the Mac awake while training runs. Closing the lid still sleeps. |
--fresh | Ignore saved checkpoints and retrain from scratch. Training resumes from the last checkpoint by default. |
Serve
mlx-lm ships an OpenAI-compatible HTTP server. Point it at the base model plus your trained adapter:OPENAI_BASE_URL back.