Views
No views yet
| Parameter | Value |
|---|---|
| hidden_size | 1024 |
| num_hidden_layers | 28 |
| num_attention_heads | 16 |
| num_key_value_heads | 8 |
| intermediate_size | 3072 |
| vocab_size | 151936 |
| max_position_embeddings | 40960 |
| rope_theta | 1000000 |
| rms_norm_eps | 1e-6 |
| File | Format | Size | Description |
|---|---|---|---|
model.safetensors | HuggingFace SafeTensors | 1.4 GB | Original BF16 weights from Qwen |
model.bpk | Burn Burnpack | 1.4 GB | Converted for Burn (BF16) |
tokenizer.json | HuggingFace Tokenizers | 11 MB | Tokenizer file |
1use qwen3_burn::{Qwen3Config, Qwen3ForCausalLM, Qwen3Tokenizer};
2use burn::backend::candle::{Candle, CandleDevice};
3use half::bf16;
4
5type Backend = Candle<bf16, i64>;
6
7fn main() -> Result<(), Box<dyn std::error::Error>> {
8 let device = CandleDevice::metal(0); // or CandleDevice::Cpu
9
10 // Load tokenizer
11 let tokenizer = Qwen3Tokenizer::from_file("tokenizer.json")?;
12
13 // Initialize model with 0.6B config preset
14 let model = Qwen3Config::qwen3_0_6b()
15 .init_causal_lm::<Backend>(&device)
16 .with_weights("model.bpk")?; // or "model.safetensors"
17
18 // Generate text
19 let (input_ids, _) = tokenizer.encode("Hello, world!")?;
20 let input_tensor = Tensor::from_data(&input_ids, &device).unsqueeze();
21
22 let output = model.generate_with_cache(
23 input_tensor,
24 50, // max_new_tokens
25 0.0, // temperature (0 = greedy, >0 = sampling)
26 0.9, // top_p
27 50, // top_k
28 );
29
30 let text = tokenizer.decode(&output.to_data().to_vec())?;
31 println!("{}", text);
32
33 Ok(())
34}