Qwen3.8-27B tiny fixture β F16 dtype-reduction demo (qwen3_5)
A float16 (F16) re-emission of the qwen3_5_tiny_fixture random-init checkpoint,
built with the Python standard library only (no torch / numpy / network / GPU). It
exercises the dtype-reduction / quant pipeline on the real qwen3_5 schema so a
loader, quant planner, or CI job can confirm that a float32 -> float16 conversion
preserves every tensor name, shape, and count while exactly halving the data bytes.
What this is
- Base schema:
Qwen/Qwen3.8-27B(model_type: qwen3_5), reduced to the same tiny geometry asqwen3_5_tiny_fixture. - What this file is: the same random-init weights as the base fixture, re-stored as float16. Byte-reproducible; no new training.
- How it is changed from the base fixture: dtype float32 -> float16 only. Tensor names, shapes, and count are identical; data bytes are exactly halved.
- What it is not: not trained, not distilled, not a real NVFP4 / FP8 / GGUF quantization, and not a quality or benchmark claim. A real low-bit quant needs a GPU toolchain (no reviewed Fleet recipe this cycle).
- Why it is useful: it is a deterministic, dependency-free fixture for testing
dtype-handling code paths (F16 load, cast, size accounting) on the
qwen3_5schema.
Method
- Read the base
model.safetensors(float32), unpack each tensor withstruct, re-pack every value withstruct.pack('<e', v)(IEEE-754 half precision), and re-emit a valid safetensors file (u64 header length, 8-byte-aligned JSON header, then tensor data). - Generator:
build_quant_f16.py(repo root) β rerunnable and diffable.
Geometry (measured, not asserted)
| Field | Base fixture (F32) | This file (F16) |
|---|---|---|
| tensors | 40 | 40 |
| data bytes | 690,944 | 345,472 |
| bytes ratio | 1.000 | 0.500 |
| dtype | F32 | F16 |
| tensor names / shapes | β | identical |
Verification actually performed (stdlib only, no torch)
- safetensors header parses: 40 tensors, contiguous
data_offsets, header padded to 8-byte alignment;__metadata__records the generator string. - Same-run validator asserted: F16 dtype on every tensor, tensor-name set matches the
base, and
f16_bytes * 2 == base_bytes(690,944 -> 345,472). checksums.txtrecords the SHA-256 of every F16 tensor blob.
Not yet verified: loading under a specific transformers version (no
torch/transformers in the build environment), and whether the F16 file is accepted by
a qwen3_5 loader. Treat those as open until run against a real install.
How to use
Read the tensors with the standard library (no torch needed, matching how this was built):
import json, struct
with open("model.safetensors", "rb") as f:
n = struct.unpack("<Q", f.read(8))[0]
header = json.loads(f.read(n))
# header[name] = {"dtype": "F16", "shape": [...], "data_offsets": [lo, hi]}
Or with the safetensors package:
from safetensors.torch import load_file
tensors = load_file("model.safetensors") # {name: float16 tensor}
License
The generated fixture content (random weights, config, scripts) is released under MIT
(see LICENSE). The qwen3_5 architecture and config schema belong to the base model
Qwen/Qwen3.8-27B under its own terms, which were not independently re-verified
this cycle β check the base repository before redistribution.
Citation
Qwen Team, Qwen3.8-27B, 2026.
Buy me a beer:
BTC bc1q5ayht3fxhj0v95fk0z8l2f6900g3awdsw5842p
- Downloads last month
- -
Model tree for aday777/qwen3_5_tiny_fixture_f16
Base model
Qwen/Qwen3.8-27B