Views
No views yet
1from transformers import pipeline
2model_id = "yujiepan/qwen3-moe-tiny-random"
3pipe = pipeline(
4 "text-generation", model=model_id, device="cuda",
5 trust_remote_code=True, max_new_tokens=3,
6)
7print(pipe("Hello World!"))
8
9from transformers import AutoModelForCausalLM, AutoTokenizer
10tokenizer = AutoTokenizer.from_pretrained(model_id)
11model = AutoModelForCausalLM.from_pretrained(
12 model_id,
13 torch_dtype="auto",
14 device_map="auto"
15)
16prompt = "Give me a short introduction to large language model."
17messages = [
18 {"role": "user", "content": prompt}
19]
20text = tokenizer.apply_chat_template(
21 messages,
22 tokenize=False,
23 add_generation_prompt=True,
24 enable_thinking=True # Switches between thinking and non-thinking modes. Default is True.
25)
26print(text)
27model_inputs = tokenizer([text], return_tensors="pt").to(model.device)
28generated_ids = model.generate(
29 **model_inputs,
30 max_new_tokens=128
31)
32output_ids = generated_ids[0][len(model_inputs.input_ids[0]):].tolist()
33try:
34 # rindex finding 151668 (</think>)
35 index = len(output_ids) - output_ids[::-1].index(151668)
36except ValueError:
37 index = 0
38thinking_content = tokenizer.decode(output_ids[:index], skip_special_tokens=True).strip("\n")
39content = tokenizer.decode(output_ids[index:], skip_special_tokens=True).strip("\n")
40print("thinking content:", thinking_content)
41print("content:", content)1import torch
2
3from transformers import (
4 AutoConfig,
5 AutoModelForCausalLM,
6 AutoTokenizer,
7 GenerationConfig,
8 pipeline,
9 set_seed,
10)
11
12source_model_id = "Qwen/Qwen3-235B-A22B"
13save_folder = "/tmp/yujiepan/qwen3-moe-tiny-random"
14
15tokenizer = AutoTokenizer.from_pretrained(
16 source_model_id, trust_remote_code=True,
17)
18tokenizer.save_pretrained(save_folder)
19
20config = AutoConfig.from_pretrained(
21 source_model_id, trust_remote_code=True,
22)
23config._name_or_path = source_model_id
24config.hidden_size = 64
25config.intermediate_size = 128
26config.moe_intermediate_size = 128
27config.head_dim = 32
28config.decoder_sparse_step = 2 # layer0=mlp, layer1=moe
29config.num_experts = 8
30config.num_experts_per_tok = 2
31config.num_key_value_heads = 1
32config.num_attention_heads = 2
33config.num_hidden_layers = 2
34config.max_window_layers = 1
35config.tie_word_embeddings = True
36model = AutoModelForCausalLM.from_config(
37 config,
38 torch_dtype=torch.bfloat16,
39 trust_remote_code=True,
40)
41model.generation_config = GenerationConfig.from_pretrained(
42 source_model_id, trust_remote_code=True,
43)
44set_seed(42)
45with torch.no_grad():
46 for name, p in sorted(model.named_parameters()):
47 torch.nn.init.normal_(p, 0, 0.5)
48 print(name, p.shape)
49model.save_pretrained(save_folder)