Skip to content

v0.9.6

Choose a tag to compare

@github-actions github-actions released this 04 Nov 00:19
· 498 commits to main since this release

ignis v0.9.6

Swift 1.5, a fine-tune of the 27B

  • Swift 1.5 in the built-in catalog (#449, #473, guide): UkisAI's post-training of Qwen3.8-27B, as two artifacts a client names with one id. swift-1.5-27b is an NVFP4 artifact for a 32 GB card or larger (18.1 GiB, gpillon/Swift-1.5-Qwen3.8-27B-nvfp4-ignis); swift-1.5-27b-16g is a trellis artifact for a 16 GB card (12.5 GiB, gpillon/Swift-1.5-Qwen3.8-27B-trellis-3bpw-ignis), and on a 16 GB card it answers to swift-1.5-27b, as qwen3.8-27b-16g answers to qwen3.8-27b. ignis-server model download swift-1.5-27b fetches the one the card loads.
  • Its license is not Apache-2.0: both artifacts are under UkisAI's Swift Open License v1.0. Commercial use by a user whose gross revenue, with its affiliates, was US$1,000,000 or more in the most recently completed fiscal year needs UkisAI's Swift Enterprise License; a qualified non-profit is exempt for non-commercial or research use; the Qwen3.8-27B base parts remain Apache-2.0. Each repository holds the LICENSE and the NOTICE: read them before you download.
  • Measured against Swift's own BF16 on an RTX 5090: top-64 KLD 0.05355 for swift-1.5-27b (limit 0.0590) and 0.04255 for swift-1.5-27b-16g (limit 0.0484); DFlash2 decodes 3.71x to 5.27x and 3.91x to 5.22x faster than no drafter across 8,192 to 253,440 tokens of context. locate is refused on Swift (no calibration for its weights), and point and box answer by the digit chain; vision works as on the 27B.

Licenses in the catalog

  • Every catalog entry states its license (#464, ADR 0078, the catalog): model list shows it in a LICENSE column (license in --format json), model download prints it before it fetches, the Server view links it on each row, and GET /v1/models/catalog gives every row license: {id, url}. No step asks to accept it: whoever downloads is bound by it, as with any download from the hub. An operator entry may state its own.

Converting a 27B fine-tune

  • An NVFP4 converter for 27B checkpoints (#467, #468, #469, tools/27b-nvfp4-converter/): a Qwen3.8-27B BF16 checkpoint becomes an NVFP4 artifact under its own weights id, through the packer family qwen3.8-27b-nvfp4. Run on the base checkpoint it reproduces the served 27B: 831 objects byte-equal and 135 weights equal, while 68 of 135 activation divisors differ.
  • The 16 GB converter takes a fine-tune: its served NVFP4 artifact and a locally converted quant (#465).
  • Gate 1 for a fine-tune is tools/kld-gate/gate1.py, with the BF16 reference side in tools/kld-gate/ref_kld.py (#470).

Older cards

  • A start on a card the build's kernels were not compiled for is refused by name, before anything loads, instead of failing at its first kernel (#457, troubleshooting). Every release is compiled for 120a only: RTX 50 and RTX PRO 6000 Blackwell. model download, model list and the config commands still run on such a card.
  • A development build for Ampere (#456, ADR 0077, building): IGNIS_CUDA_ARCHITECTURES='86;120a' compiles the kernels for compute capability 8.6 as well; on such a card the server takes the FP16 prompt band and refuses, as ignis.model.route_unsupported, the loads whose kernels exist for Blackwell alone (the 27B's NVFP4 artifact, the image model, Flash-Next's staged expert decode). A finding records the 27B's trellis entry on an sm_86 card: top-64 KLD against the BF16 checkpoint 0.03777, against the RTX 5090's 0.03825 on the same band. RTX 30 and 40 cards are not supported by the release binaries.

The guide

  • The Playground's pages play their panel tour videos (#458).
  • The Install page installs the latest release, not v0.8.0 (#459).

Other changes

  • Findings: a Metal or AMD backend, the roads and a seam at the segment (#439); what in the kernels needs Blackwell (#456); the RTX PRO 6000 findings describe the card and its measurements, not the machine around them (#329).

Decisions

  • ADR 0078: the built-in catalog names each entry's license and may ship weights whose license restricts commercial use
  • ADR 0077: a vendored file may carry a portability patch
  • ADR 0054: a resident Flash-Next load keeps its experts only in VRAM (amended)

Container image (linux/amd64)

podman run --rm --device nvidia.com/gpu=all -p 8000:8000 \
  -v /path/to/models:/models:ro \
  -e IGNIS_MODEL_ARTIFACT=/models/<name>.ninfer \
  ghcr.io/gpillon/ignis:0.9.6

(docker: --gpus all in place of --device.) The image carries
the CUDA runtime but no driver — the host's NVIDIA driver is
injected by the container runtime. It is built from the same
compile as the Linux tarball below, so the two always carry the
same binaries.

Binaries

The kernel is compiled for SM120a (RTX 5090 / Blackwell
consumer) only, and the engine needs a .ninfer artifact, which
is not part of this release. The Linux tarball needs the CUDA 13
runtime on the host; the Windows zip carries cudart64_*.dll.
Both need an NVIDIA driver new enough for CUDA 13.

Apache-2.0 (LICENSE, NOTICE); the vendored reference ops keep
their own terms (NOTICE-kernel).

Full Changelog: v0.9.5...v0.9.6