Strojový překlad · Anglický originál

Qwen3.5 Chat (On- Device LLM)

Qwen3.5-0.8B je hybridní DeltaNet (lineární pozornost) + GatedRetence model s 24 vrstvy (18 DeltaNet + 6 GatedAdvisory), kvantifikovaný na INT4 pro MLX (Metal GPU) a INT8 pro CoreML (Neural Engine). Běží Mac prostřednictvím MLX nebo na iPhone a Mac prostřednictvím CoreML s streaming token generací. Určeno pro hlasové potrubí, kde on-zařízení LLM poskytuje "mozek" mezi ASR a TTS.

Hlasová potrubí připravena

Qwen3.5 Chat integruje s SpeechCore VoicePipeline jako LLM složka v ASR → LLM › TTS řetězce. Hybridní DeltaNet architektura poskytuje efektivní lineartime pozornost pro dlouhé kontexty.

Rychlý start

import Qwen3Chat

let chat = try await Qwen35MLXChat.fromPretrained()

// Single response
let response = try chat.generate(messages: [
    ChatMessage(role: .system, content: "Answer briefly."),
    ChatMessage(role: .user, content: "What is Swift?")
])
print(response)

// Streaming tokens
let stream = chat.generateStream(messages: [
    ChatMessage(role: .system, content: "Be funny."),
    ChatMessage(role: .user, content: "Tell me a joke")
])
for try await token in stream {
    print(token, terminator: "")
}

Architektura

Qwen3.5-0.8B je hybridní model s 24 vrstvy: 18 DeltaNet vrstvy (lineární pozornost s blokované delta pravidlo opakování a RMSNormGated) a 6 GatedRecenze vrstvy (standardní měřítko dot- produkt pozornost). MLX backend běží inference na Metal GPU s vahami safetensorů. CoreML backend využívá architekturu dvojitého modelu (předplň + dekódování) optimalizovanou pro Neural Engine. Oba podporují KV cache s rychlým cachováním a konfigurovatelným vzorkováním (teplota, top- k, top-p, opakovaný trest).

Vzor I / O

SměrNázevTvarPopis
Vstupinput_ids[1, seq _ len]Token ID (Int32)
Vstupattention_mask[1, seq _ len]Pozor maska (Int32)
Vstupkv_cacheper- vrstvaStav cache key- value
Výstuplogits[1, 1, 151936]Next- token logits (Float16)
Výstupkv_cache_outper- vrstvaAktualizovaná KV cache

Vzor Variantů

VariantaKvantizaceVelikostVypočítejteHuggingFace
Qwen3.5-0.8B ChatINT4418 MBMetal GPU (MLX)aufklarer / Qwen3.5-0.8B-Chat-MLX
Qwen3.5-0.8B ChatINT8981 MBNeural Engine (CoreML)aufklarer / Qwen3.5-0.8B-Chat-CoreML

Nastavení odběru vzorků

let config = ChatSamplingConfig(
    temperature: 0.7,
    topK: 40,
    topP: 0.9,
    maxTokens: 128,
    repetitionPenalty: 1.1
)
let response = try chat.generate(
    messages: [ChatMessage(role: .user, content: "Explain gravity")],
    sampling: config
)
ParametrVýchozíPopis
temperature0.6Náhoda (0 = chamtivost, 1 = kreativita)
topK50Udržujte top K kandidáty
topP0.95Prahová hodnota pro odběr vzorků z jaderných materiálů
maxTokens512Maximální reakční tokeny
repetitionPenalty1.1Penalizovat opakované žetony
disableThinkingfalseRežim přeskočení myšlení
maxThinkingTokens100Kapsle pro přemýšlení

Víceotáčivý rozhovor

let chat = try await Qwen35MLXChat.fromPretrained()

let history = [
    ChatMessage(role: .system, content: "Remember the user's name."),
    ChatMessage(role: .user, content: "My name is Alex"),
    ChatMessage(role: .assistant, content: "Nice to meet you, Alex!"),
    ChatMessage(role: .user, content: "What's my name?")
]
let response = try chat.generate(messages: history)
print(response)  // "Your name is Alex!"

chat.resetState()  // Clear inference state for a new conversation

Správa paměti

// Check memory state
print(chat.isLoaded)        // true
print(chat.memoryFootprint) // 438304768 (~418 MB)

// Free memory under pressure
chat.unload()
print(chat.isLoaded)        // false

// Reload when needed
let chat = try await Qwen35MLXChat.fromPretrained()
Tip paměti iOS

Na iPhone, vykládání LLM před TTS inference frees ~418 MB (INT4 MLX) nebo ~981 MB (INT8 CoreML), zabránění vypovězení jetsamu při plném provozu ASR → LLM → TTS potrubí.

Výkonnost

ZařízeníNáplňDecodeTokens / sec
M2 Max~ 50ms~ 65ms / tok~ 15 tok / s
iPhone 16 Pro~ 1.5s~ 450ms / tok~ 2.2 tok / s

Převod

Váhy MLX jsou převedeny z původního kontrolního bodu Qwen3.5-0.8B pomocí konverzního skriptu MLX. CoreML modely používají samostatný konverzní skript pro nasazení Neural Engine, předkonvertované váhy jsou dostupné na HuggingFace na aufklarer / Qwen3.5-0.8B-Chat-MLX (INT4: 418 MB) a aufklarer / Qwen3.5-0.8B-Chat-CoreML (INT8: 981 MB).