Views
No views yet
| Property | Value |
|---|---|
| Parameters | 596M |
| Architecture | Qwen3 (GQA, RoPE, SwiGLU, RMSNorm) |
| Hidden size | 1024 |
| Layers | 28 |
| Attention heads | 16 (8 KV heads) |
| Head dimension | 128 |
| Vocab size | 151,936 |
| Max sequence length | 2048 |
| Quantization | INT4 (per-block, linear symmetric) |
| Model size | ~317 MB |
| CoreML target | iOS 18+ / macOS 15+ |
Qwen3Chat module:1import Qwen3Chat
2
3let model = try await Qwen3ChatModel.fromPretrained()
4
5// Single generation
6let response = try model.generate(messages: [
7 ChatMessage(role: .user, content: "Hello!")
8])
9
10// Streaming
11let stream = model.chatStream("What is Swift?", systemPrompt: "Be brief.")
12for try await chunk in stream {
13 print(chunk, terminator: "")
14}chat() / chatStream() methods cache the system prompt KV state. Subsequent turns restore from cache instead of re-prefilling (~300ms saved per turn).| File | Description |
|---|---|
Qwen3Chat.mlpackage/ | CoreML model (INT4 weights, float16 activations) |
chat_config.json | Model architecture config |
vocab.json | BPE vocabulary (151,936 tokens) |
merges.txt | BPE merge rules |
tokenizer_config.json | Tokenizer settings + added tokens |
tokenizer.json | Full tokenizer (HuggingFace format) |
coremltools 9.0 from the original PyTorch weights:1python scripts/convert_qwen3_chat_coreml.py \
2 --hf-model Qwen/Qwen3-0.6B \
3 --output models/Qwen3-0.6B-Chat-CoreML \
4 --quantize int4layer_{i}_key_cache, layer_{i}_value_cache (float16)layer_{i}_key_cache_out, layer_{i}_value_cache_out (float16)[1, 8, seq_len, 128] (batch, kv_heads, sequence, head_dim)