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 as qwen3_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_5 schema.

Method

  • Read the base model.safetensors (float32), unpack each tensor with struct, re-pack every value with struct.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.txt records 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
-
Safetensors
Model size
173k params
Tensor type
F16
Β·
Inference Providers NEW
This model isn't deployed by any Inference Provider. πŸ™‹ Ask for provider support

Model tree for aday777/qwen3_5_tiny_fixture_f16

Base model

Qwen/Qwen3.8-27B
Finetuned
(288)
this model