/ Модель

Характеристики

Лицензия
Apache 2.0
Архитектура
qwen3_chat · dense
Базовая модель
Qwen3.5-0.8B
Библиотека
mlx
Опубликована
28 мар 2026

Qwen3.5-0.8B-Chat-MLX

Генерация текстаТекст → текст9 профессий

Компактная квантованная текстовая версия Qwen3.5-0.8B для локального чата и генерации текста на Apple Silicon.

250скачиваний за 30 дней1лайквеса обновлены30 июл 2026

Бенчмарки

Как модель справилась с задачами пользователей ailist и что о ней публикуют открытые лидерборды

Публичные оценки

Из открытых лидербордов. Сравнивайте результаты одного теста при одинаковых условиях — отсутствие оценки не значит, что модель хуже.

В подключённых источниках результатов для этой модели пока нет.

Что умеет модель

Описание составлено по карточке модели и метаданным Hugging Face

aufklarer подготовил текстовую чат-версию Qwen3.5-0.8B для локального запуска на устройствах Apple Silicon через MLX. Это плотная гибридная архитектура Qwen3.5 с 24 слоями: 18 слоёв DeltaNet с линейным вниманием и 6 слоёв GatedAttention. В репозитории опубликованы варианты квантования INT4, INT5 и INT8; размер модели в карточке указан как 752 млн параметров, а файлы занимают от 424 до 800 МБ. Модель принимает текст и генерирует текст, поддерживает языки, перечисленные в метаданных, включая русский, английский и китайский.

Модель предназначена для локального чата и генерации текста, в том числе структурированных ответов в формате JSON. По измерениям автора, INT8 близок к bf16 по качеству; INT4 заметно чаще нарушает формат JSON, поэтому для таких ответов рекомендуется INT5 или INT8. Vision tower и голова многотокенного предсказания исключены, поэтому эта сборка не обрабатывает изображения. Для INT5 и INT8 требуется совместимый runtime, который читает параметры квантования из config.json; имена весов также несовместимы напрямую с mlx-lm. Лицензия — Apache-2.0.

Сценарии применения

  • локальный чат на Mac с Apple Silicon
  • генерация ответов на русском и других поддерживаемых языках
  • создание структурированных ответов в формате JSON с INT5 или INT8
  • запуск компактной языковой модели на устройстве без облачного API

Ограничения

Сборка текстовая и не включает модуль обработки изображений; INT4 заметно хуже справляется со строгим JSON-форматом. Для INT5 и INT8 нужна совместимая версия runtime, а веса нельзя напрямую загрузить через mlx-lm.

Для каких профессий подходит9

Разделы каталога профессий, в задачах которых используется эта модель

Все профессии

Также подходит для

Карточка модели

README от автора на Hugging Face, как он его опубликовал

Открыть на Hugging Face

Qwen3.5-0.8B Chat — MLX (Apple Silicon)

Text-only extraction of Qwen3.5-0.8B, quantized with MLX for on-device chat on Apple Silicon. Three bit widths are published so the quality/size tradeoff can be made with measured numbers rather than assumed.

INT8 is the recommended default. INT4 is kept for size-constrained use but is no longer recommended for anything that parses the reply as JSON — see Measured quality.

Model

Parameters752 M (text model; the tied embedding / LM head is 254 M of that)
ArchitectureQwen3.5 hybrid — 24 layers, 18× DeltaNet linear attention + 6× GatedAttention, pattern [linear, linear, linear, full] × 6
Positional encodingPartial RoPE, 25 % of head_dim (64 of 256 rotary dims)
Output headTied to the token embedding (lm_head = embed_tokens)
FormatMLX safetensors
Quantizationmx.quantize affine round-to-nearest, group size 64, at 4 / 5 / 8 bits
Declared context2048 (max_seq_len); the MLX path does not enforce it — DeltaNet is recurrent and the KV cache grows on demand
Vocabulary248 320

Norm weights, A_log, dt_bias and the causal conv1d kernels are not quantized; they stay float. Quantized tensors are stored as MLX's weight / scales / biases triple with fp16 scales and biases.

VariantFile sizeQuantizedUse it when
INT8800 MB8-bit, group 64Default. Effectively indistinguishable from bf16.
INT5518 MB5-bit, group 64Memory matters more than the last 2 % of quality.
INT4424 MB4-bit, group 64Smallest download, free-form text only. Not for JSON.

Files

FileSizeDescription
int4/model.safetensors424 MBINT4 weights
int4/config.json1.3 kBArchitecture + quantization_bits: 4, quantization_group_size: 64
int4/tokenizer.json12.8 MBTokenizer
int4/tokenizer_config.json16.7 kBChat template and special tokens
int5/model.safetensors518 MBINT5 weights
int5/config.json1.3 kBSame, quantization_bits: 5
int5/tokenizer.json12.8 MBTokenizer
int5/tokenizer_config.json16.7 kBChat template and special tokens
int8/model.safetensors800 MBINT8 weights
int8/config.json1.3 kBSame, quantization_bits: 8
int8/tokenizer.json12.8 MBTokenizer
int8/tokenizer_config.json16.7 kBChat template and special tokens

Each variant is self-contained: one directory is everything needed to run it. The vision tower and the multi-token-prediction draft head (mtp.*) are not included — no runtime here reads them. Dropping the draft head alone took 14 MB off the INT4 download compared with the previous revision.

Measured quality

Every number below is measured, not estimated. Method: the exporter's exact quantize/dequantize step is reproduced on the bf16 checkpoint — same kernel, same bit width, same group size — and the result is compared against the unmodified bf16 model on identical inputs. 32 768 teacher-forced tokens per corpus. A control run with quantization disabled reproduced bf16 exactly (0.000 % perplexity change, 100 % agreement, 0 KL), so the deltas below are the quantization and nothing else.

Perplexity is relative to the bf16 checkpoint; lower is better and 0 % is the target. Top-1 agreement is how often the quantized model's most likely next token is the same as bf16's.

VariantPerplexity vs bf16 (wikitext)Perplexity vs bf16 (dialogsum)Top-1 agreementMean KL from bf16
bf16 reference22.7984.846——
INT8+0.19 %−0.002 %97.9 % / 98.8 %0.0013 / 0.0008 nats
INT5+2.2 %+1.6 %89.6 % / 94.7 %0.032 / 0.016 nats
INT4+19.9 %+9.5 %78.3 % / 88.5 %0.149 / 0.079 nats

Structured replies

24 tasks that ask for a single JSON object and are scored the way a strict parser would score them: greedy decoding, no repair pass, no leniency for markdown fences or prose. bf16 passes 24 of 24.

VariantStrict JSON validByte-identical to bf16
INT824 / 2418 / 24
INT523 / 2412 / 24
INT418 / 245 / 24

The INT4 failures are not near-misses. Five of the six are unbalanced braces — replies such as {"action_items": [{"owner": "Chen", "task": "..."]} that drop the object's closing brace, which no parser recovers from. The sixth invents a different key name. This is why INT4 is no longer recommended for any consumer that parses the reply: it degrades exactly where a downstream pipeline is least able to cope. INT5's single failure is the same kind of dropped closing brace.

Raising only the embedding to 8 bits while keeping the body at 4 was measured and does not rescue INT4: +15.4 % perplexity, 23 of 24 JSON. If structured output matters, use INT5 or INT8 rather than a mixed INT4.

Usage

Swift (speech-swift)

import Qwen3Chat

let model = try await Qwen35MLXChat.fromPretrained(quantization: .int8)
let response = try model.generate(
    messages: [ChatMessage(role: .user, content: "Hello!")],
    sampling: ChatSamplingConfig(temperature: 0.3, maxTokens: 100)
)

INT5 and INT8 need a runtime that reads the bit width from config.json. Older speech-swift versions build every QuantizedLinear and PreQuantizedEmbedding with bits = 4 hardcoded, which fits the INT4 file only; they will not read an INT5 or INT8 file correctly. Use a speech-swift version that takes quantization_bits and quantization_group_size from config.json, or stay on INT4.

Python

import json
import mlx.core as mx
from huggingface_hub import snapshot_download

path = snapshot_download("aufklarer/Qwen3.5-0.8B-Chat-MLX",
                         allow_patterns=["int8/*"])

cfg = json.load(open(f"{path}/int8/config.json"))
weights = mx.load(f"{path}/int8/model.safetensors")

# Quantized tensors are stored as a weight/scales/biases triple. Always take the
# bit width and group size from config.json rather than assuming them.
up = mx.dequantize(
    weights["layers.0.mlp.up_proj.weight"],
    weights["layers.0.mlp.up_proj.scales"],
    weights["layers.0.mlp.up_proj.biases"],
    group_size=cfg["quantization_group_size"],
    bits=cfg["quantization_bits"],
)
print(cfg["quantization"], up.shape)   # int8 (3584, 1024)

The layout is the custom key set the Swift runtime loads (layers.N.linear_attn.* for DeltaNet, layers.N.self_attn.* for the attention layers), not the mlx-lm naming, so mlx_lm.load will not read it directly.

CLI

# One variant only — do not pull all three
hf download aufklarer/Qwen3.5-0.8B-Chat-MLX --include "int8/*" \
    --local-dir ./qwen35-0.8b-int8

A note on earlier downloads

These files replace an earlier export in which the model's final RMSNorm weight was written without the +1 offset that Qwen3.5 stores its norm weights with. That mis-scaled the hidden state feeding the LM head and cost about +19 % perplexity on its own, on top of any quantization error. If you downloaded this repository before this revision, re-download it; the numbers in this card apply only to the current files.

Source

Converted from Qwen/Qwen3.5-0.8B (Apache-2.0). The vision tower and the multi-token-prediction head are dropped; the text model is quantized with mx.quantize at group size 64, the zero-centered RMSNorm weights are folded to 1 + w, and the DeltaNet conv1d kernels are transposed to MLX's channels-last layout.

Links

Как запустить

На своей GPU в ailist. Цена — по текущим предложениям провайдеров

GPU в ailist

Универсальный рантайм · mlx

Нельзя запустить

MLX-модели работают только на Apple Silicon.

Ревизия весов
d47d1aa

0 моделей