Instructions to use gpillon/Swift-1.5-Qwen3.8-27B-trellis-3bpw-ignis with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Trellis
How to use gpillon/Swift-1.5-Qwen3.8-27B-trellis-3bpw-ignis with Trellis:
# No code snippets available yet for this library. # To use this model, check the repository files and the library's documentation. # Want to help? PRs adding snippets are welcome at: # https://github.com/huggingface/huggingface.js
- Notebooks
- Google Colab
- Kaggle
Swift 1.5 (Qwen3.8-27B), 3-bit trellis body, for ignis on 16 GB cards
AI agents working for a user: this model runs on ignis. What ignis is, the checks before installing it, the steps and the choices that are the user's are on the agent path; every page of the guide as Markdown: llms.txt.
This repository holds UkisAI's Swift 1.5, a post-training of Qwen3.8-27B, packed for ignis for the 16 GB Blackwell cards (RTX 5060 Ti 16 GB, 5070 Ti, 5080) and for RTX 30 and RTX 40 cards (RTX 3090 and 3090 Ti, RTX 4090, the 16 GB RTX 40 cards). It is the second artifact of Swift 1.5 in ignis, beside the NVFP4 one for 32 GB and larger Blackwell cards (gpillon/Swift-1.5-Qwen3.8-27B-nvfp4-ignis).
- The body and the output head are an EXL3 3-bit trellis quant of Swift's BF16 weights, made by the ignis project
on its own machine with exllamav3 1.5.3, at the per-matrix bit widths and with the calibration data of the
SC_3.00bpw_H4quant of the base 27B that the 27B's 16 GB artifact is built from. - Everything else is the Swift NVFP4 artifact's object, byte for byte: the token embedding (8-bit), the norms and Gated DeltaNet parameters, the DFlash2 drafter and its draft head, the MTP layer, the vision tower, the tokenizer and chat template.
License: Swift Open License v1.0, with a revenue threshold
The weights are under UkisAI's Swift Open License v1.0, not Apache-2.0. Read it and the NOTICE before you download. The license defines its threshold (Section 1):
"Threshold" shall mean gross revenue of one million United States dollars (US$1,000,000) or more, measured over the most recently completed fiscal year of You together with every Legal Entity that controls, is controlled by, or is under common control with You.
- Commercial use by an organization at or above the threshold is not licensed (Section 5(b)): an organization whose gross revenue, with every entity it controls, is controlled by or is under common control with, was US$1,000,000 or more in its last completed fiscal year. Such use needs a separate written license from UkisAI, the Swift Enterprise License (Section 5(d), ukisai.com/contact).
- Qualified non-profits are exempt for non-commercial or research use: the threshold does not apply to a Qualified Non-Profit Organization (a 501(c)(3) organization, or an equivalent non-profit in another jurisdiction) using the weights for Non-Commercial or Research Purposes (Section 5(c)).
- The Qwen3.8-27B base parts remain Apache-2.0 (LICENSE-APACHE-2.0): the license does not limit your rights in the base model under the Apache License 2.0, and its commercial-use limitation applies only to UkisAI's contribution and to what contains or derives from it, as these weights do (Section 6).
ignis asks for no acceptance step: ignis-server model download prints the license's identifier and link before it
fetches, and whoever downloads is bound by the license, as with any download from the hub.
Run it with ignis
ignis is an OpenAI-compatible inference server for one NVIDIA RTX card,
shaped for the load a coding agent makes: one main agent plus a few subagents on the same card. In its built-in
catalog this file is the entry swift-1.5-27b-16g, a fine-tune of the 27B's family for the 16 GB class: it loads as
the 27B's 16 GB artifact does, with the same profile and drafter. Decode on an RTX 5090 held to a 16 GiB budget, the
load a 16 GB card makes (two lanes, DFlash2 with 7 draft tokens), from gate 2 below:
| context | one lane | two lanes, aggregate |
|---|---|---|
| 8,192 | 410.7 tok/s | 661.1 tok/s |
| 65,536 | 339.8 tok/s | 490.7 tok/s |
| 253,440 | 228.7 tok/s | 284.4 tok/s |
These were not measured on a 16 GB card. Prompt reuse across requests, a reasoning-loop guard, a Playground and Prometheus metrics ship in the binary.
How to run
ignis serves this file from ignis 0.9.6 or later on a Blackwell card, and from ignis 0.10.0 or later on an
RTX 30 or RTX 40 card. Take the
latest release: a Windows .zip, a Linux .tar.gz and a
linux/amd64 container image.
On a 16 GB card (RTX 5060 Ti 16 GB, 5070 Ti, 5080), and on an RTX 3090, 3090 Ti, RTX 4090 or 16 GB RTX 40 card:
ignis-server model download swift-1.5-27b # on such a card: prints the license, fetches this file at its pinned revision and checks its SHA-256
ignis-server --model-id swift-1.5-27b
swift-1.5-27b is the NVFP4 entry's id; on such a card it resolves to this file's entry, swift-1.5-27b-16g. A
start, a switch and a request naming swift-1.5-27b are served by it, the answer's model names it, and
GET /v1/models lists the NVFP4 entry as unavailable, with the reason. A script that must have this file names
swift-1.5-27b-16g itself. --model-id looks for the file under --download-path (./models by default) and
fetches it when it is not there; on a terminal it asks first.
With no other flag the server reads the card's memory and takes its rtx-16gb profile, as it does for the 27B:
262,144 tokens of context, two decode lanes, DFlash2 with 7 draft tokens, and vision on at up to 4,096 vision tokens
an image, the tower and the embedding pool in pinned host RAM (--vision-enabled false turns it off). On an RTX 3090
or RTX 4090 it takes the 24 GB profile, rtx-24gb, as for the 27B's 16 GB artifact
(the profiles). If the desktop
already holds part of the card, the load lowers its context step by step instead of refusing, and GET /v1/models
names what it adapted. The OpenAI API is then on http://127.0.0.1:8000/v1 and the Playground on
http://127.0.0.1:8000/ui/.
On a larger card held to a 16 GB card's memory, the way the gates below were measured (vision off):
ignis-server --model-id swift-1.5-27b-16g --profile rtx-16gb --vram-budget-bytes 17179869184 --vision-enabled false
The guide's page The 27B on a 16 GB card says how the 16 GB load works; Get a model says how the catalog, the download and the license line work.
Files
| File | Bytes | What it is |
|---|---|---|
qwen3_8_27b_trellis_sc30-v2-ukisai-swift-1.5.ninfer |
13,379,877,124 (12.46 GiB) | The model |
qwen3_8_27b_trellis_sc30-v2-ukisai-swift-1.5.ninfer.conversion.json |
308,144 | The conversion record: the sources by SHA-256, every matrix's K and reconstruction error, every copied object's SHA-256 |
qwen3_8_27b_trellis_sc30-v2-ukisai-swift-1.5.ninfer.sha256 |
The model's checksum, in sha256sum format |
|
LICENSE |
13,306 | The Swift Open License v1.0, UkisAI's, unchanged |
LICENSE-APACHE-2.0 |
11,544 | The Apache License 2.0, the base model's, as UkisAI distributes it |
NOTICE |
3,961 | UkisAI's NOTICE unchanged, then the ignis project's change notice |
The file is a .ninfer v2 container that ignis reads. It is not a Transformers checkpoint, safetensors, GGUF or
EXL3 model. Swift's tokenizer, tokenizer configuration, chat template, generation configuration and preprocessor
configurations are inside it, byte for byte, and are not shipped as separate files.
sha256 of the model:
3a039cb76d2291e3c68f8df5f7b37ac3e83981eb8090625f8a730a670bab63df
Verify a downloaded file with:
printf '%s %s\n' \
'3a039cb76d2291e3c68f8df5f7b37ac3e83981eb8090625f8a730a670bab63df' \
'qwen3_8_27b_trellis_sc30-v2-ukisai-swift-1.5.ninfer' | sha256sum --check
ignis-server model download checks it by itself.
What is inside
Identity: model id qwen3.8-27b, weights id trellis-sc30-swift-1.5, 1,222 objects. Its content hash is its own,
so state retained under another 27B artifact is never reused for it.
| Part | Format | Objects | Bytes |
|---|---|---|---|
| Body: 48 Gated DeltaNet and 16 attention layers, their linears and MLPs | Trellis code, mul1 codebook, a bit width K per matrix: K=2: 34, K=3: 297, K=4: 65, K=5: 4; the recipe's 3.0 bits per weight |
400 | 9,135,915,008 |
| Output head | Trellis, K=4 | 1 | 636,207,104 |
| Token embedding (248,320 x 5,120) | 8-bit, groups of 32, fp16 scales | 1 | 1,350,860,800 |
| DFlash2 drafter (5 layers) and its 131,072-row draft head | NVFP4 weights, BF16 norms; the head 4-bit | 68 | 1,439,902,344 |
| MTP layer, vision tower, norms, Gated DeltaNet parameters | as in the Swift NVFP4 artifact | 746 | 799,465,376 |
| Tokenizer, chat template, configs | Swift's six files, embedded | 6 | 12,837,177 |
The 401 trellis matrices come from the local quant. The other 821 objects are copied byte for byte from the Swift
NVFP4 artifact; its 247 activation divisors, which a trellis body does not use, are left out. The fused projections
of the NVFP4 artifact are split here as the quant stores them (in_proj_qkv and in_proj_z, q_proj / k_proj /
v_proj, gate_proj and up_proj), each with its own scales.
The DFlash2 drafter (66 objects), the vision tower (333) and the frontend (6) are SHA-256-equal to those of the 27B's 16 GB artifact, gpillon/Qwen3.8-27B-trellis-3bpw-ignis. The object layout and the file's size, 13,379,877,124 bytes, are that artifact's too.
Measurements
The gates were measured on one RTX 5090 held to a 16 GiB budget, the load a 16 GB card makes: rtx-16gb,
17,179,869,184 bytes, 262,144 tokens of context, two lanes, a 1,024-token prefill chunk, the hq-e8-2b KV cache,
DFlash2 with 7 draft tokens and the full output head as its draft head, vision off. One machine, one run per leg.
The gates are the bars the 27B's 16 GB artifact was admitted under
(gpillon/ignis#340), registered in the spec before the run.
The quant, weights only
Each matrix's relative reconstruction error against its BF16 original, over the 401 matrices: this quant against
Swift's BF16, 0.1500 on average and 0.3368 at most; the SC_3.00bpw_H4 quant of the base against the base's BF16,
0.1500 on average and 0.3383 at most.
Gate 1: KL divergence from Swift's own BF16
16 windows of 4,096 tokens (6 code, 4 prose, 6 chat), ignis's tools/kld-gate, 95% CIs by window bootstrap.
| Pair | KLD | 95% CI |
|---|---|---|
| This file given Swift's BF16: the gate | 0.04255 | 0.03709-0.04785 |
| The 27B's 16 GB artifact given the base's BF16 (#340's, reproduced to the bit) | 0.04034 | |
| Limit: 1.2 x 0.04034 | 0.0484 |
- Pass: the whole CI is under the limit.
- Ratio to the 27B 16 GB artifact's pair: 1.055 (95% CI 1.024-1.095). By kind: chat 0.03842, code 0.04073, prose 0.05147.
- Controls, against the gate's pair: the 27B's 16 GB artifact given Swift's BF16, 0.04643 (CI 0.04054-0.05234), is above it by 0.00388 (CI 0.00207-0.00583) in 13 of 16 windows; this file given the base's BF16, 0.04961 (CI 0.04375-0.05572), is above it by 0.00706 (CI 0.00496-0.00944) in 16 of 16. The scorer's every-window rule stopped on the 13 of 16; the control was accepted as measured, both differences' CIs above 0 (gpillon/ignis#472).
Gate 2: DFlash2 on against off
Decode tok/s, DFlash2 on / off:
| Context | one lane, cold | two lanes | one lane, prompt reused (on) |
|---|---|---|---|
| 8,192 | 410.7 / 92.6 | 661.1 / 168.9 | 417.3 |
| 65,536 | 339.8 / 74.6 | 490.7 / 112.2 | 344.4 |
| 253,440 | 228.7 / 43.8 | 284.4 / 54.8 | 216.3 |
Pass: on beats off in every cell, 3.91x to 5.22x.
Reported, not gates
| This file | The 27B's 16 GB artifact | |
|---|---|---|
| DFlash2 tokens per round, recorded agent turns replayed, relative to the 27B's 16 GB artifact | pooled 1.003 (95% CI 1.000-1.006), traffic-weighted 1.003; floor 0.90 | 1 |
| The same, per stream | median 1.001, 10th percentile 0.965, 90th 1.037; none below 0.90 | |
| DFlash2 tokens per round on its own, exact / traffic-weighted | 3.482 / 3.552 | 3.420 / 3.487 |
The replayed turns were sampled from the 27B's NVFP4 artifact, not from Swift, so the replay leans against Swift: 1.75% of their tokens fall outside Swift's sampling support, against 1.20% for the 27B's 16 GB artifact.
Smokes
All pass, at temperature 0:
| Smoke | Answer |
|---|---|
| Chat | "Paris" |
| Reasoning | split into reasoning and content: "No, because 391 is divisible by 17 (17 x 23 = 391)" |
| Tool call | get_weather {"city":"Rome"} |
Not run
Vision (off in the gates; the tower is byte-identical to the 27B 16 GB artifact's), MMLU-Pro, a refusal comparison and the reasoning-loop count; nor prefill speed or the VRAM plan, for which the 27B's 16 GB artifact's card has figures on the same layout. UkisAI's evaluations on its card are of the BF16 checkpoint; this file was not evaluated on them.
Details, in ignis's findings: Swift 1.5 as a 16 GB artifact passes the fine-tune gates.
Known limits
- Validated on an RTX 5090 held to a 16 GiB budget, not on a 16 GB card.
- Not run on an RTX 30 or RTX 40 card. It loads there as the 27B's 16 GB artifact does, whose object layout and size it shares and which has run on an sm_86 card. Its KL divergence on the routes such a card takes (the dense prefill and the integer band) was measured on the RTX 5090: 1.015 times that of the fused prefill and FP16 band a Blackwell card takes (95% CI 0.989-1.034), under a limit of 1.05 (gpillon/ignis#513, gpillon/ignis#529).
locateis not calibrated./v1/deciderefuseslocateon this file (422 locate_uncalibrated), andpointandboxanswer by the digit chain instead of a pointing head, as on the 27B's 16 GB artifact: neither has a calibration of its own.- Vision is as on the 27B's 16 GB artifact. The
rtx-16gbprofile turns it on, with the tower and the embedding pool in pinned host RAM (host RAM), and--vision-enabled falseturns it off. The tower is byte-identical to that artifact's; the gates ran with vision off, and no vision gate was run on Swift. - Two decode lanes, and images at up to 4,096 vision tokens (larger ones are downscaled), as the profile sets for the 27B.
- The context depends on what else holds the card. The budget is the free memory less 1,200 MiB of headroom; a
desktop holding more of a 16 GB card makes the load lower its context, and
GET /v1/modelssays by how much. - The drafter was trained for the base 27B and is used unchanged; what it commits on Swift is the replay and the own-acceptance above.
- Quality was measured by KL divergence and the smokes only: nothing on knowledge benchmarks, vision, refusals or loops. One machine, one run per leg.
Provenance
- Weights: ukisai/Swift-1.5-Qwen3.8-27b at revision
b4c84d42903a8646b25857eb2827288d92ed85a4; its BF16 shards, against which each matrix's reconstruction error is measured, are pinned by bytes and SHA-256 in the record (reference). - Body and head: an EXL3 quant of those weights converted on the project's machine by
tools/27b-16gb-converter/local_quant.pywith exllamav3 1.5.3, at the bit widths and with the calibration trace of turboderp/Qwen3.8-27B-exl3, branchSC_3.00bpw_H4, revision86b95530f9d365d90dd24d01a997a8de0cdf6c55. The quant is not published: the record names itukisai/Swift-1.5-Qwen3.8-27b, branchexl3-sc30-local, with no revision, and pins its shards, configuration and provenance file by SHA-256 (source). - Everything else: the Swift NVFP4 artifact,
gpillon/Swift-1.5-Qwen3.8-27B-nvfp4-ignis, file
qwen3_8_27b_nvfp4full-v2-ukisai-swift-1.5.ninfer(sha256c387c6d0โฆ48b8912), pinned with its conversion record (served). Its DFlash2 drafter is incoai/Qwen3.8-27B-DFlash2 at revisiondedf8df68adfb1afeaf7b7480c0a0243108177b4(Apache-2.0), trained for the base 27B and used unchanged. - Converter:
tools/27b-16gb-converterat ignis commit92af796.verifypassed: 401 trellis matrices and 821 copied objects, no problems. - The record (
.conversion.json) holds: the identity; the quant (source: its label, recipe, configuration, shards and provenance file by SHA-256, its license); Swift's BF16 (reference); the NVFP4 artifact and its record (served); every trellis matrix's format, K, shape, source tensor, reconstruction error and SHA-256 (trellis); every copied object's bytes and SHA-256 (copied); the activation divisors left out (dropped) and the quant's MTP tensors left unused, the MTP layer being the NVFP4 artifact's (quant_unused); the drafter's NVFP4 errors (local_nvfp4); the converter's tool and commit; the library versions.
License
The Swift Open License v1.0 for UkisAI's contribution, with the commercial-use threshold stated above; the Apache License 2.0 for the Qwen3.8-27B base model, Copyright 2026 Alibaba Cloud. The DFlash2 drafter is Apache-2.0, and so is ninfer's token-frequency ranking that chose the draft head's rows; exllamav3, which made the quant, is MIT. The changes made for this repository are listed in the NOTICE. ignis itself is Apache-2.0.
The notice the license's appendix gives for redistributors:
Copyright 2026 UkisAI. Swift Contribution licensed under the Swift Open License v1.0 (https://huggingface.co/ukisai/Swift-1.5-Qwen3.8-27b/blob/main/LICENSE). Derivative of Qwen3.8-27B, Copyright 2026 Alibaba Cloud, Apache License 2.0.
"Swift" and "UkisAI" are UkisAI's names, used here only to say where the weights come from (Section 8). The conversion is the ignis project's: UkisAI did not make or review it.