Views
No views yet
1{
2 "StarCoder2-7b": "bigcode/starcoder2-7b",
3 "CodeLlama-7b-Instruct-hf": "codellama/CodeLlama-7b-Instruct-hf",
4 "Phi-2": "microsoft/phi-2",
5}1# load prefix_codellama for example
2import os
3import torch
4from transformers import AutoTokenizer, AutoConfig
5from prefix_models import CodeLlamaPrefixCausalLM
6
7
8lm_path = 'codellama/CodeLlama-7b-Instruct-hf'
9prefix_path = './CodeLlama-7b-Instruct-hf'
10
11prefix_config = config_from_pretrained(prefix_path)
12
13lm_config = AutoConfig.from_pretrained(lm_path)
14lm_config.n_prefix_token = prefix_config.n_prefix_token
15lm_config.prefix_dropout = prefix_config.prefix_dropout
16lm_config.n_control = prefix_config.n_control
17
18kwargs = dict()
19kwargs['torch_dtype'] = torch.bfloat16
20kwargs['device_map'] = 'auto'
21kwargs['trust_remote_code'] = True
22
23model = CodeLlamaPrefixCausalLM.from_pretrained(lm_path, **kwargs, config=lm_config)
24
25for param in model.prefix_params:
26 torch.nn.init.zeros_(param)
27
28tokenizer = AutoTokenizer.from_pretrained(lm_path)
29
30prefix_file = os.path.join(prefix_path, 'pytorch_model.bin')
31model.prefix_params.load_state_dict(torch.load(prefix_file))
32model.resize_token_embeddings(len(tokenizer))
33
34# generate
35prompt = "def hello_world:\n"
36input_ids = tokenizer(prompt, return_tensors='pt').input_ids
37model.generate(
38 input_ids,
39 do_sample=True,
40 num_return_sequences=1,
41 temperature=0.4,
42 top_p=0.95,
43 max_new_tokens=300,
44 pad_token_id=tokenizer.pad_token_id,
45 use_cache=True,
46 control_id=0,
47)
48