Traducere automată · Originalul în engleză

Qwen3.5 Chat (On-Device LLM)

Qwen3.5-0.8B este un model hibrid DeltaNet (atentie liniara) + GateAttention cu 24 straturi (18 DeltaNet + 6 GateAttention), cuantizată la INT4 pentru MLX (Metal GPU) și INT8 pentru CoreML (Neural Engine) Rulează pe Mac prin MLX sau pe iPhone și Mac prin CoreML Proiectat pentru conducte de voce, unde un dispozitiv de conectare LLM oferă "creierul" între ASR şi TTS.

Conductă vocală pregătită

Qwen3.5 Chat se integrează cu SpeechCore VoicePipeline ca componenta LLM în ASR → LLM→ Lanţuri TTS. Arhitectura hibridă DeltaNet oferă o atenţie liniară eficientă pentru contexte lungi.

Start rapid

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

Arhitectură

Qwen3.5-0.8B este un model hibrid cu 24 straturi: 18 Straturi DeltaNet (atentie liniara cu repetitie a regulii delta portata si RMSNormGated) si 6 Straturi de prindere Gated (atentie standard punct-produs). MLX backend ruleaza deductie pe Metal GPU cu greutăţi de siguranţă. CoreML suport foloseste o arhitectura dual-model (prefill + decod) optimizat pentru Neural Engine. Ambele suport KV cache cu cache-ul prompt și eșantionare configurabilă (temperatura, top-k, top-p, penalizare de repetiție).

Model I/O

Direcţie Nume Forma Descriere
Intrareinput_ids[1, continuă_ len]ID-uri pentru token (Int32)
Intrareattention_mask[1, continuă_ len]Masca de atentie (Int32)
Intrarekv_cacheperstrat Starea cache-ului cu valoare-cheie
Ieșirelogits[1, 1, 151936]Logite next-token (Float16)
Ieșirekv_cache_outperstratCache KV actualizat

Model Variante

VariantăCuantificareDimensiune CalculeazăHuggingFace
Qwen3.5-0.8B ChatINT4418 MOMetal GPU (MLX)aufklarer/Qwen3.5-0.8B-Chat-MLX
Qwen3.5-0.8B ChatINT8981 MONeural Engine (CoreML)aufklater/Qwen3.5-0.8B-Chat-CoreML

Configurare eșantionare

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
)
ParametruImplicit Descriere
temperature0.6Aleatoritate (0 = lacom, 1 = creativ)
topK50 Păstrați candidații K de top
topP0.95Prag de eșantionare Nucleus
maxTokens512Jetoane de răspuns maxim
repetitionPenalty1.1 Penalizează jetoanele repetate
disableThinking falsSari peste modul de gândire
maxThinkingTokens100Jetoane de gândire cu capac

Conversație multi-turn

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

Managementul memoriei

// 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 Tip de memorie

Pe iPhone, descărcarea LLM Înainte TTS Inference frees418 MB (INT4 MLX) sau ~981 MB (INT8 CoreML), prevenirea terminarii jetsam la rularea completă ASR → LLM → TTS conducte.

Performanță

DispozitivPrefillDecodeazăTokeni/sec
M2 Max~50ms~65ms/tok~15 tone/s
iPhone 16 Pro~1,5s~450ms/tok~2.2 tone/s

Conversie

MLX Greutățile sunt convertite din original Qwen3.5-0.8B punctul de control folosind MLX Script de conversie. CoreML modele utiliza un script de conversie separat pentru Neural Engine implementare. Greutăți preconvertite sunt disponibile pe HuggingFace la aufklaer/Qwen3.5-0.8B-Chat-MLX (INT4: 418 MB) și aufklaer/Qwen3.5-0.8B-Chat-CoreML (INT8: 981 MB).