Views
No views yet
| File path | Size |
|---|---|
| model.safetensors | 4.9MB |
1from transformers import pipeline
2model_id = "tiny-random/qwen2.5"
3pipe = pipeline(
4 "text-generation", model=model_id,
5 trust_remote_code=True, max_new_tokens=8,
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 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)
25model_inputs = tokenizer([text], return_tensors="pt").to(model.device)
26generated_ids = model.generate(
27 **model_inputs,
28 max_new_tokens=32
29)
30output_ids = generated_ids[0].tolist()
31content = tokenizer.decode(output_ids, skip_special_tokens=False)
32print(content)1import json
2from pathlib import Path
3
4import torch
5from huggingface_hub import hf_hub_download
6from transformers import (
7 AutoConfig,
8 AutoModelForCausalLM,
9 AutoTokenizer,
10 GenerationConfig,
11 pipeline,
12 set_seed,
13)
14
15source_model_id = "Qwen/Qwen2.5-72B-Instruct"
16save_folder = "/tmp/tiny-random/qwen25"
17
18tokenizer = AutoTokenizer.from_pretrained(
19 source_model_id, trust_remote_code=True,
20)
21tokenizer.save_pretrained(save_folder)
22
23with open(hf_hub_download(source_model_id, filename='config.json', repo_type='model'), 'r', encoding='utf-8') as f:
24 config_json: dict = json.load(f)
25config_json.update({
26 "num_hidden_layers": 4,
27 "hidden_size": 8,
28 "intermediate_size": 32,
29 "max_window_layers": 2,
30 "head_dim": 32,
31 "num_attention_heads": 8,
32 "num_key_value_heads": 4,
33})
34with open(f"{save_folder}/config.json", "w", encoding='utf-8') as f:
35 json.dump(config_json, f, indent=2)
36
37config = AutoConfig.from_pretrained(
38 save_folder,
39 trust_remote_code=True,
40)
41model = AutoModelForCausalLM.from_config(
42 config,
43 torch_dtype=torch.bfloat16,
44 trust_remote_code=True,
45)
46model.generation_config = GenerationConfig.from_pretrained(
47 source_model_id, trust_remote_code=True,
48)
49set_seed(42)
50with torch.no_grad():
51 for name, p in sorted(model.named_parameters()):
52 torch.nn.init.normal_(p, 0, 0.2)
53 print(name, p.shape)
54model.save_pretrained(save_folder)1Qwen2ForCausalLM(
2 (model): Qwen2Model(
3 (embed_tokens): Embedding(152064, 8)
4 (layers): ModuleList(
5 (0-3): 4 x Qwen2DecoderLayer(
6 (self_attn): Qwen2Attention(
7 (q_proj): Linear(in_features=8, out_features=256, bias=True)
8 (k_proj): Linear(in_features=8, out_features=128, bias=True)
9 (v_proj): Linear(in_features=8, out_features=128, bias=True)
10 (o_proj): Linear(in_features=256, out_features=8, bias=False)
11 )
12 (mlp): Qwen2MLP(
13 (gate_proj): Linear(in_features=8, out_features=32, bias=False)
14 (up_proj): Linear(in_features=8, out_features=32, bias=False)
15 (down_proj): Linear(in_features=32, out_features=8, bias=False)
16 (act_fn): SiLUActivation()
17 )
18 (input_layernorm): Qwen2RMSNorm((8,), eps=1e-06)
19 (post_attention_layernorm): Qwen2RMSNorm((8,), eps=1e-06)
20 )
21 )
22 (norm): Qwen2RMSNorm((8,), eps=1e-06)
23 (rotary_emb): Qwen2RotaryEmbedding()
24 )
25 (lm_head): Linear(in_features=8, out_features=152064, bias=False)
26)