Views
No views yet
1from transformers import AutoConfig, AutoTokenizer, AutoModelForCausalLM
2
3repo_name = "MaxJeblick/llama2-0b-unit-test"
4model_name = "h2oai/h2ogpt-4096-llama2-7b-chat"
5config = AutoConfig.from_pretrained(model_name)
6config.hidden_size = 12
7config.max_position_embeddings = 1024
8config.intermediate_size = 24
9config.num_attention_heads = 2
10config.num_hidden_layers = 2
11config.num_key_value_heads = 2
12
13tokenizer = AutoTokenizer.from_pretrained(model_name)
14
15model = AutoModelForCausalLM.from_config(config)
16print(model.num_parameters()) # 770_940
17
18model.push_to_hub(repo_name, private=False)
19tokenizer.push_to_hub(repo_name, private=False)
20config.push_to_hub(repo_name, private=False)1import torch
2from transformers import AutoModelForCausalLM
3
4
5def test_manual_greedy_generate():
6 max_new_tokens = 10
7
8 # note this is on CPU!
9 model = AutoModelForCausalLM.from_pretrained("MaxJeblick/llama2-0b-unit-test").eval()
10 input_ids = model.dummy_inputs["input_ids"]
11
12 y = model.generate(input_ids, max_new_tokens=max_new_tokens)
13
14 assert y.shape == (3, input_ids.shape[1] + max_new_tokens)
15
16 for _ in range(max_new_tokens):
17 with torch.no_grad():
18 outputs = model(input_ids)
19
20 next_token_logits = outputs.logits[:, -1, :]
21 next_token_id = torch.argmax(next_token_logits, dim=-1).unsqueeze(-1)
22
23 input_ids = torch.cat([input_ids, next_token_id], dim=-1)
24
25 assert torch.allclose(y, input_ids)1import pytest
2from transformers import AutoModelForCausalLM
3@pytest.fixture(scope="session")
4def model():
5 return AutoModelForCausalLM.from_pretrained("MaxJeblick/llama2-0b-unit-test").eval()