Views
No views yet
| File path | Size |
|---|---|
| model.safetensors | 6.4MB |
1import torch
2import transformers
3from transformers import AutoModelForCausalLM, AutoTokenizer, pipeline
4transformers.utils.import_utils.is_torch_fx_available = transformers.utils.import_utils.is_torch_available
5
6model_id = "yujiepan/ring-2.5-tiny-random"
7tokenizer = AutoTokenizer.from_pretrained(model_id, trust_remote_code=True)
8model = AutoModelForCausalLM.from_pretrained(
9 model_id,
10 torch_dtype=torch.bfloat16,
11 trust_remote_code=True,
12)
13pipe = pipeline('text-generation', model=model, tokenizer=tokenizer, trust_remote_code=True)
14print(pipe('Write an article about Artificial Intelligence.', max_new_tokens=16))1import json
2from pathlib import Path
3
4import accelerate
5import torch
6import transformers
7from huggingface_hub import file_exists, hf_hub_download
8from transformers import (
9 AutoConfig,
10 AutoModelForCausalLM,
11 AutoTokenizer,
12 GenerationConfig,
13 set_seed,
14)
15transformers.utils.import_utils.is_torch_fx_available = transformers.utils.import_utils.is_torch_available
16source_model_id = "inclusionAI/Ring-2.5-1T"
17save_folder = "/tmp/yujiepan/ring-25-tiny-random"
18
19processor = AutoTokenizer.from_pretrained(source_model_id, trust_remote_code=True)
20processor.save_pretrained(save_folder)
21
22with open(hf_hub_download(source_model_id, filename='config.json', repo_type='model'), 'r', encoding='utf-8') as f:
23 config_json = json.load(f)
24for k, v in config_json['auto_map'].items():
25 config_json['auto_map'][k] = f'{source_model_id}--{v}'
26
27# config_json['head_dim'] = 32
28config_json['hidden_size'] = 8
29config_json['intermediate_size'] = 32
30config_json['moe_intermediate_size'] = 32
31config_json['moe_shared_expert_intermediate_size'] = 32
32config_json['first_k_dense_replace'] = 1
33config_json['num_attention_heads'] = 4
34config_json['num_hidden_layers'] = 2
35config_json['num_key_value_heads'] = 4
36config_json['q_lora_rank'] = 32
37config_json['layer_group_size'] = 2
38del config_json['quantization_config']
39
40with open(f"{save_folder}/config.json", "w", encoding='utf-8') as f:
41 json.dump(config_json, f, indent=2)
42
43config = AutoConfig.from_pretrained(
44 save_folder,
45 trust_remote_code=True,
46)
47print(config)
48automap = config_json['auto_map']
49torch.set_default_dtype(torch.bfloat16)
50model = AutoModelForCausalLM.from_config(config, trust_remote_code=True)
51torch.set_default_dtype(torch.float32)
52
53if file_exists(filename="generation_config.json", repo_id=source_model_id, repo_type='model'):
54 model.generation_config = GenerationConfig.from_pretrained(
55 source_model_id, trust_remote_code=True,
56 )
57set_seed(42)
58model = model.cpu()
59with torch.no_grad():
60 for name, p in sorted(model.named_parameters()):
61 torch.nn.init.normal_(p, 0, 0.1)
62 print(name, p.shape)
63model.model.layers[1].mlp.gate.expert_bias = model.model.layers[1].mlp.gate.expert_bias.float()
64model.save_pretrained(save_folder)
65print(model)
66with open(f"{save_folder}/config.json", "r", encoding='utf-8') as f:
67 config_json = json.load(f)
68 config_json['auto_map'] = automap
69with open(f"{save_folder}/config.json", "w", encoding='utf-8') as f:
70 json.dump(config_json, f, indent=2)
71for python_file in Path(save_folder).glob('*.py'):
72 python_file.unlink()1BailingMoeV2_5ForCausalLM(
2 (model): BailingMoeV2_5Model(
3 (word_embeddings): Embedding(157184, 8, padding_idx=156892)
4 (layers): ModuleList(
5 (0): BailingMoeV2_5DecoderLayer(
6 (attention): BailingMoeV2_5LinearAttention(
7 (query_key_value): Linear(in_features=8, out_features=1536, bias=False)
8 (query_layernorm): BailingMoeV2_5RMSNorm()
9 (key_layernorm): BailingMoeV2_5RMSNorm()
10 (rotary_emb): BailingMoeV2_5RotaryEmbedding()
11 (dense): Linear(in_features=512, out_features=8, bias=False)
12 (g_proj): Linear(in_features=8, out_features=512, bias=False)
13 (g_norm): BailingMoeV2_5GroupRMSNorm()
14 )
15 (mlp): BailingMoeV2_5MLP(
16 (gate_proj): Linear(in_features=8, out_features=32, bias=False)
17 (up_proj): Linear(in_features=8, out_features=32, bias=False)
18 (down_proj): Linear(in_features=32, out_features=8, bias=False)
19 (act_fn): SiLUActivation()
20 )
21 (input_layernorm): BailingMoeV2_5RMSNorm()
22 (post_attention_layernorm): BailingMoeV2_5RMSNorm()
23 )
24 (1): BailingMoeV2_5DecoderLayer(
25 (attention): BailingMoeV2_5MultiLatentAttention(
26 (q_a_proj): Linear(in_features=8, out_features=32, bias=False)
27 (q_a_layernorm): BailingMoeV2_5RMSNorm()
28 (q_b_proj): Linear(in_features=32, out_features=768, bias=False)
29 (kv_a_proj_with_mqa): Linear(in_features=8, out_features=576, bias=False)
30 (kv_a_layernorm): BailingMoeV2_5RMSNorm()
31 (kv_b_proj): Linear(in_features=512, out_features=1024, bias=False)
32 (dense): Linear(in_features=512, out_features=8, bias=False)
33 )
34 (mlp): BailingMoeV2_5SparseMoeBlock(
35 (experts): ModuleList(
36 (0-255): 256 x BailingMoeV2_5MLP(
37 (gate_proj): Linear(in_features=8, out_features=32, bias=False)
38 (up_proj): Linear(in_features=8, out_features=32, bias=False)
39 (down_proj): Linear(in_features=32, out_features=8, bias=False)
40 (act_fn): SiLUActivation()
41 )
42 )
43 (gate): BailingMoeV2_5Gate()
44 (shared_experts): BailingMoeV2_5MLP(
45 (gate_proj): Linear(in_features=8, out_features=32, bias=False)
46 (up_proj): Linear(in_features=8, out_features=32, bias=False)
47 (down_proj): Linear(in_features=32, out_features=8, bias=False)
48 (act_fn): SiLUActivation()
49 )
50 )
51 (input_layernorm): BailingMoeV2_5RMSNorm()
52 (post_attention_layernorm): BailingMoeV2_5RMSNorm()
53 )
54 )
55 (norm): BailingMoeV2_5RMSNorm()
56 (rotary_emb): BailingMoeV2_5RotaryEmbedding()
57 (rotary_emb_mla): BailingMoeV2_5MLARotaryEmbedding()
58 )
59 (lm_head): Linear(in_features=8, out_features=157184, bias=False)
60)