Skip to content

v0.3.0 — LLM training templates

Choose a tag to compare

@r0lfi r0lfi released this 02 Oct 16:34
· 26 commits to main since this release

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-slim base was behind on a fixed HIGH issue in libpcre2.
  • The database gains a nullable builds.checks column, 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 -d

Keep the /data volume, as always.

Full changelog: v0.2.1...v0.3.0