Views
No views yet
1import torch
2from transformers import AutoModelForCausalLM, AutoTokenizer, pipeline
3
4model_id = "tiny-random/ring"
5tokenizer = AutoTokenizer.from_pretrained(model_id, trust_remote_code=True)
6model = AutoModelForCausalLM.from_pretrained(
7 model_id,
8 torch_dtype=torch.bfloat16,
9 trust_remote_code=True,
10)
11pipe = pipeline('text-generation', model=model, tokenizer=tokenizer, trust_remote_code=True)
12print(pipe('Write an article about Artificial Intelligence.'))1import json
2from pathlib import Path
3
4import accelerate
5import torch
6from huggingface_hub import file_exists, hf_hub_download
7from transformers import (
8 AutoConfig,
9 AutoModelForCausalLM,
10 AutoTokenizer,
11 GenerationConfig,
12 set_seed,
13)
14
15source_model_id = "inclusionAI/Ring-1T-preview"
16save_folder = "/tmp/tiny-random/ring"
17
18processor = AutoTokenizer.from_pretrained(source_model_id)
19processor.save_pretrained(save_folder)
20
21with open(hf_hub_download(source_model_id, filename='config.json', repo_type='model'), 'r', encoding='utf-8') as f:
22 config_json = json.load(f)
23for k, v in config_json['auto_map'].items():
24 config_json['auto_map'][k] = f'{source_model_id}--{v}'
25
26config_json['head_dim'] = 32
27config_json['hidden_size'] = 8
28config_json['intermediate_size'] = 64
29config_json['moe_intermediate_size'] = 64
30config_json['first_k_dense_replace'] = 1
31config_json['num_attention_heads'] = 8
32config_json['num_hidden_layers'] = 2
33config_json['num_key_value_heads'] = 4
34
35with open(f"{save_folder}/config.json", "w", encoding='utf-8') as f:
36 json.dump(config_json, f, indent=2)
37
38config = AutoConfig.from_pretrained(
39 save_folder,
40 trust_remote_code=True,
41)
42print(config)
43automap = config_json['auto_map']
44torch.set_default_dtype(torch.bfloat16)
45model = AutoModelForCausalLM.from_config(config, trust_remote_code=True)
46torch.set_default_dtype(torch.float32)
47
48if file_exists(filename="generation_config.json", repo_id=source_model_id, repo_type='model'):
49 model.generation_config = GenerationConfig.from_pretrained(
50 source_model_id, trust_remote_code=True,
51 )
52set_seed(42)
53model = model.cpu()
54with torch.no_grad():
55 for name, p in sorted(model.named_parameters()):
56 torch.nn.init.normal_(p, 0, 0.1)
57 print(name, p.shape)
58model.save_pretrained(save_folder)
59print(model)
60with open(f"{save_folder}/config.json", "r", encoding='utf-8') as f:
61 config_json = json.load(f)
62 config_json['auto_map'] = automap
63with open(f"{save_folder}/config.json", "w", encoding='utf-8') as f:
64 json.dump(config_json, f, indent=2)
65for python_file in Path(save_folder).glob('*.py'):
66 python_file.unlink()1BailingMoeV2ForCausalLM(
2 (model): BailingMoeV2Model(
3 (word_embeddings): Embedding(157184, 8, padding_idx=156892)
4 (layers): ModuleList(
5 (0): BailingMoeV2DecoderLayer(
6 (attention): BailingMoeV2SdpaAttention(
7 (query_key_value): Linear(in_features=8, out_features=512, bias=False)
8 (query_layernorm): BailingMoeV2RMSNorm()
9 (key_layernorm): BailingMoeV2RMSNorm()
10 (dense): Linear(in_features=256, out_features=8, bias=False)
11 )
12 (mlp): BailingMoeV2MLP(
13 (gate_proj): Linear(in_features=8, out_features=64, bias=False)
14 (up_proj): Linear(in_features=8, out_features=64, bias=False)
15 (down_proj): Linear(in_features=64, out_features=8, bias=False)
16 (act_fn): SiLU()
17 )
18 (input_layernorm): BailingMoeV2RMSNorm()
19 (post_attention_layernorm): BailingMoeV2RMSNorm()
20 )
21 (1): BailingMoeV2DecoderLayer(
22 (attention): BailingMoeV2SdpaAttention(
23 (query_key_value): Linear(in_features=8, out_features=512, bias=False)
24 (query_layernorm): BailingMoeV2RMSNorm()
25 (key_layernorm): BailingMoeV2RMSNorm()
26 (dense): Linear(in_features=256, out_features=8, bias=False)
27 )
28 (mlp): BailingMoeV2SparseMoeBlock(
29 (experts): ModuleList(
30 (0-255): 256 x BailingMoeV2MLP(
31 (gate_proj): Linear(in_features=8, out_features=64, bias=False)
32 (up_proj): Linear(in_features=8, out_features=64, bias=False)
33 (down_proj): Linear(in_features=64, out_features=8, bias=False)
34 (act_fn): SiLU()
35 )
36 )
37 (gate): BailingMoeV2Gate()
38 (shared_experts): BailingMoeV2MLP(
39 (gate_proj): Linear(in_features=8, out_features=64, bias=False)
40 (up_proj): Linear(in_features=8, out_features=64, bias=False)
41 (down_proj): Linear(in_features=64, out_features=8, bias=False)
42 (act_fn): SiLU()
43 )
44 )
45 (input_layernorm): BailingMoeV2RMSNorm()
46 (post_attention_layernorm): BailingMoeV2RMSNorm()
47 )
48 )
49 (norm): BailingMoeV2RMSNorm()
50 (rotary_emb): BailingMoeV2RotaryEmbedding()
51 )
52 (lm_head): Linear(in_features=8, out_features=157184, bias=False)
53)