Maskinoversettelse · Engelsk original

Qwen3.5 Chat (på enhet LLM)

Qwen3.5-0.8B er en hybrid DeltaNet (lineær oppmerksomhet) + GatedAttention-modell med 24 lag (18 DeltaNet + 6 GatedAttention), kvantisert til INT4 for MLX (Metal GPU) og INT8 for CoreML (Neural Engine. Runs on Mac via MLX eller på iPhone og Mac via CoreML med streaming token generasjon. Designet for stemmerørledninger der en on-device LLM gir -brain - mellom ASR og TTS.

Stemmepipeline klar

Qwen3.5 Chat integreres med SpeechCore VoicePipeline som LLM komponent i ASR → LLM → TTS kjeder. hybrid DeltaNet-arkitekturen gir effektiv lineær oppmerksomhet for lange sammenhenger.

Rask 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: "")
}

Arkitektur

Qwen3.5-0.8B er en hybridmodell med 24 lag: 18 DeltaNet-lag (lineær oppmerksomhet med ported delta-regelrepetisjon og RMSNormGated) og 6 GatedAttentment lag (standard dot-produkt merksomhet). MLX backend kjører inferens på Metal GPU med sikkerhetsvekter. CoreML bakstykket bruker en dobbelmodel-arkitektur (prefill + dekode) optimalisert for Neural Engine. Begge støtter KV-cache med hurtig caching og konfigurerbar prøvetaking (temperatur, topp-k, topp-p, repetisjonsstraff).

Modell I/O

Retning NavnForm Beskrivelse
Innganginput_ids[1, KB_len] Token ID-er (Int32)
Inngangattention_mask[1, KB_len] Oppmerksomhetsmaske (Int32)
Inngangkv_cacheper lagTilstand for nøkkelverdi-buffer
Utganglogits[1, 1, 151936] Neste-token loggits (Float16)
Utgangkv_cache_outper lag Oppdatert KV- cache

Modell Varianter

Variant Kvantisering StørrelseBeregnHuggingFace
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

Samplingskonfigurasjon

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
)
ParameterStandard Beskrivelse
temperature0.6Randomness (0 = grådig, 1 = kreativ)
topK50Hold topp K-kandidater
topP0.95Nukleus prøvetakingsterskel
maxTokens512Maks respons tokens
repetitionPenalty1.1Straffe gjentatte polletter
disableThinking falsk Hopp over tenkningsmodus
maxThinkingTokens100Cap tenkning polletter

Flervendingssamtale

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

Minneledelse

// 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()
iOS Minnetips

På iPhone, lossing av LLM før TTS inferens frigjør ~418 MB (INT4 MLX) eller ~981 MB ( INT8 CoreML), hindre jetsam oppsigelse når kjører full ASR → LLM → TTS pipelines.

Ytelse

EnhetPrefillDecode Tokens/sek
M2 Maks~ 50ms~65ms/tok~15 tok/s
iPhone 16 Pro~1.5s~450ms/tok~2.2 tok/s

Konvertering

MLX vekter konverteres fra den opprinnelige Qwen3.5-0.8B kontrollpunkt ved hjelp av MLX konverteringsskript. CoreML modeller bruker et separat konverteringsskript for Neural Engine distribusjon. Forkonverterte vekter er tilgjengelige på HuggingFace hos aufklarer/Qwen3.5-0.8B-Chat-MLX (INT4: 418 MB) og aufklarer/Qwen3.5-0.8B-Chat-CoreML (INT8: 981 MB).