Repository navigation
v0.3.0 — LLM training templates
LayerSmith gains templates for LLM training and fine-tuning. They are built into the normal LayerSmith image, with nothing extra to install, and offered as another category in Create image. What they build is an ordinary image of yours: the right tooling for training language models, pinned versions that agree with each other, checks run before it leaves the connected side, and an export that says what to bring separately.
New: LLM training templates
In the dashboard, go to Create image → LLM Training & Fine-tuning. You start from the purpose: the training task, the adaptation method and where it will run. LayerSmith suggests a profile and explains every tool it includes.
| Profile | For | Stack |
|---|---|---|
| Hugging Face Fine-tuning (recommended) | SFT and DPO with LoRA or QLoRA | PyTorch 2.13.0 + CUDA 12.9, transformers 5.17.0, peft 0.21.0, trl 1.13.0, bitsandbytes 0.50.2 |
| PyTorch / Hugging Face Advanced | Full fine-tuning, continued pretraining, DDP/FSDP, DeepSpeed, FlashAttention | Same stack; a PyTorch 2.8 variant with FlashAttention 2.8.3; DeepSpeed switches to NVIDIA's CUDA devel base |
| LLaMA-Factory - Web UI | LLaMA Board (started with a login) or YAML runs | llamafactory 0.9.5, PyTorch 2.6.0 + CUDA 12.4 |
| Dataset Preparation - CPU | Validate, filter, split and convert data; token statistics | Python 3.12, no PyTorch |
- Locked, not latest. Base images are pinned by digest. Python packages are installed from hash-locked files, one consistent resolution per stack. Incompatible choices are refused before the build, with a working alternative. For example, FlashAttention on PyTorch 2.13 offers a switch to the PyTorch 2.8 stack.
- Checked without network. After each build, three checks run inside the image with networking disabled: locked versions and imports, a CPU training step on a tiny local model, and the bundled examples (SFT with LoRA, resuming from a checkpoint, DPO). No GPU is needed to build or check. The build page shows exactly what was verified.
- An export you can carry in. The air-gap bundle gains
training/. It holds Docker and Podman commands for that exact image, the locks, examples, check results, and a list of what is not included (model weights, data). - Run-time defaults for closed environments. The image runs as a non-root user and has fixed mount points. Telemetry is off. Web UIs need a token or password and are published on localhost. Tokens are never baked into images.
Measured sizes: 0.9 GB for the CPU profile and 11 to 14 GB for the GPU profiles. A profile that includes DeepSpeed comes to about 29 GB. Details, versions and the offline workflow are in docs/training.md.
Also in this release
- The LayerSmith image now applies Debian security updates at build time. The
python:3.12-slimbase was behind on a fixed HIGH issue in libpcre2. - The database gains a nullable
builds.checkscolumn, added in place on startup. No manual migration is needed, and existing projects, builds and scans are unaffected. - Long values in tables wrap on narrow screens.
Upgrading
docker compose pull && docker compose up -dKeep the /data volume, as always.
Full changelog: v0.2.1...v0.3.0