Awtomatikong salin · Orihinal sa Ingles

Qwen3.5 Chat (On-Device LLM)

Qwen3.5-0.8B ay isang hybrid DeltaNet (linear attention) + Gated Attension model na may model 24 mga suson (18 DeltaNet + 6 Gated Attension), quadified to INT4 para sa MLX (Metal GPU) at INT8 para sa CoreML (Neural Engine). tumatakbo Mac sa pamamagitan MLX o sa iPhone at Mac sa pamamagitan CoreML may kasamang umaagos na "watawat na salinlahi. " na dinisenyo para sa mga tubo ng boses kung saan isang on-device LLM nagbibigay ng "brain" sa pagitan ng ASR at TTS.

Handa Na ang Boses

Qwen3.5 Ang Chat Inuugnay sa Tinig ng Pagsasalita Bilang ang Boses LLM bahagi sa ASR → LLM → TTS Mga kadena. Ang hybrid DeltaNet arkitektura ay nagbibigay ng mahusay na linear-time na pansin para sa mahabang mga konteksto.

Mabilis na Pasimula

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

Arkitektura

Qwen3.5-0.8B ay isang hybrid model na may 24 mga patong: 18 Ang mga suson ng DeltaNet (linear attention na may gated delta rule region at RMSNormGated) at RM 6 Gated Attension layers (stard scaled dot-product attention). MLX Ang backend ay tumatakbo nang pabaligtad Metal GPU na may ligtas na mga pabigat. CoreML Ang backend ay gumagamit ng isang dual-model na arkitektura (prefill + decode) na ginawang optimisado para sa Neural Engine. Parehong sumusuporta sa KV cache na may agarang caching at configurable na mga halimbawa (temperature, toper-k, toper stap-p, parusang pag-uulit).

Modelo I/O

Tagubilin PangalanHugis Paglalarawan
Ilagayinput_ids[1, seq_len]Token IDs (Int32)
Ilagayattention_mask[1, seq_len] maskarang pang - pansin (Int32)
Ilagaykv_cacheper-layer Ang key-halaga cache state
Ilabaslogits[1, 1, 151936] Susunod-token logits (Float16)
Ilabaskv_cache_outper-layer Binagong "KV cache "

Modelong mga Variante

Kaurian Pagiging Kuwalente Laki Pag - aaralHuggingFace
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

Nakapangingilabot na Pagsang - ayon

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
)
Parameter Pagkawasak Paglalarawan
temperature0.6Randomness (0 = sakim, 1 = mapanlikha)
topK50 Panatilihin ang nangungunang mga kandidato sa K
topP0.95 Pasimula ng mga Nuclearus
maxTokens512Max tugon ay nagmememorya
repetitionPenalty1.1Isulat ang paulit - ulit na mga paunawa
disableThinking bulaan Paraan ng pag - iisip sa pamamagitan ng Skip
maxThinkingTokens100 Mga tanda ng pag - iisip ng Cap

Multi - Pag - uusap ng Pagbabago

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

Pangangasiwa ng Alaala

// 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 Memory Tip

Sa iPhone, i-unload ang LLM bago TTS Ang Di - maipaliwanag na mga Kalayaan ay umaalpas sa Eksperimento418 MB (MBINT4 MLX) o girl981 MB (MBINT8 CoreML), paghadlang sa pag - aalis ng jetsam kapag tumatakbong ganap ASR → LLM → TTS Mga tubo.

Pag - aasikaso

Kalagan Patiunang PagganapDecode Mga Token/sec
M2 MaxEX50msxi65ms/tok°15 tok/s
IPhone 16 Pro°1.5EX450ms/tokEX2.2 tok/s

Pagkumberte

MLX Ang mga pabigat ay ginagawa mula sa orihinal Qwen3.5-0.8B Talaan ng mga Nilalaman MLX Sulat para sa pangungumberte. CoreML gumagamit ang mga modelo ng hiwalay na sulat para sa pangungumberte Neural Engine Paglalagay. May magagamit na pre-converted na mga pabigat sa HuggingFace sa Aufklarer/Qwen3.5-0.8B-Chat-MLX (INT4: 418 MB) at Aufklarer/Qwen3.5-0.8B-Chat-CoreML (INT8: 981 MB).