Views
No views yet
transformers library on a machine with GPUs, first make sure you have the transformers, accelerate and torch libraries installed.1pip install transformers==4.30.2
2pip install einops==
3pip install accelerate==0.20.3
4pip install torch==2.0.01from transformers import AutoModelForCausalLM, AutoTokenizer
2import torch
3
4def generate_response(prompt, model_name):
5 tokenizer = AutoTokenizer.from_pretrained(
6 model_name,
7 use_fast=True,
8 trust_remote_code=True,
9 )
10
11 model = AutoModelForCausalLM.from_pretrained(
12 model_name,
13 torch_dtype=torch.float32,
14 device_map={"": "cpu"},
15 trust_remote_code=True,
16 )
17 model.cpu().eval()
18
19 inputs = tokenizer(prompt, return_tensors="pt", add_special_tokens=False).to("cpu")
20
21 tokens = model.generate(
22 input_ids=inputs["input_ids"],
23 attention_mask=inputs["attention_mask"],
24 min_new_tokens=2,
25 max_new_tokens=500,
26 do_sample=False,
27 num_beams=2,
28 temperature=float(0.0),
29 repetition_penalty=float(1.0),
30 renormalize_logits=True
31 )[0]
32
33 tokens = tokens[inputs["input_ids"].shape[1]:]
34 answer = tokenizer.decode(tokens, skip_special_tokens=True)
35
36 return answer1model_name = "diegomiranda/EleutherAI-70M-cypher-generator"
2prompt = "Create a Cypher statement to answer the following question:Retorne os processos de Direito Tributário que se baseiam em lei 939 de 1992?<|endoftext|>"
3response = generate_response(prompt, model_name)
4print(response)transformers package, this will allow you to set trust_remote_code=False.1import torch
2from h2oai_pipeline import H2OTextGenerationPipeline
3from transformers import AutoModelForCausalLM, AutoTokenizer
4
5tokenizer = AutoTokenizer.from_pretrained(
6 "diegomiranda/EleutherAI-70M-cypher-generator",
7 use_fast=True,
8 padding_side="left",
9 trust_remote_code=True,
10)
11model = AutoModelForCausalLM.from_pretrained(
12 "diegomiranda/EleutherAI-70M-cypher-generator",
13 torch_dtype="auto",
14 device_map={"": "cuda:0"},
15 trust_remote_code=True,
16)
17generate_text = H2OTextGenerationPipeline(model=model, tokenizer=tokenizer)
18
19res = generate_text(
20 "Why is drinking water so healthy?",
21 min_new_tokens=2,
22 max_new_tokens=500,
23 do_sample=False,
24 num_beams=2,
25 temperature=float(0.0),
26 repetition_penalty=float(1.0),
27 renormalize_logits=True
28)
29print(res[0]["generated_text"])1from transformers import AutoModelForCausalLM, AutoTokenizer
2
3model_name = "diegomiranda/EleutherAI-70M-cypher-generator" # either local folder or huggingface model name
4# Important: The prompt needs to be in the same format the model was trained with.
5# You can find an example prompt in the experiment logs.
6prompt = "How are you?<|endoftext|>"
7
8tokenizer = AutoTokenizer.from_pretrained(
9 model_name,
10 use_fast=True,
11 trust_remote_code=True,
12)
13model = AutoModelForCausalLM.from_pretrained(
14 model_name,
15 torch_dtype="auto",
16 device_map={"": "cuda:0"},
17 trust_remote_code=True,
18)
19model.cuda().eval()
20inputs = tokenizer(prompt, return_tensors="pt", add_special_tokens=False).to("cuda")
21
22# generate configuration can be modified to your needs
23tokens = model.generate(
24 input_ids=inputs["input_ids"],
25 attention_mask=inputs["attention_mask"],
26 min_new_tokens=2,
27 max_new_tokens=500,
28 do_sample=False,
29 num_beams=2,
30 temperature=float(0.0),
31 repetition_penalty=float(1.0),
32 renormalize_logits=True
33)[0]
34
35tokens = tokens[inputs["input_ids"].shape[1]:]
36answer = tokenizer.decode(tokens, skip_special_tokens=True)
37print(answer)load_in_8bit=True or load_in_4bit=True. Also, sharding on multiple GPUs is possible by setting device_map=auto.GPTNeoXForCausalLM(
(gpt_neox): GPTNeoXModel(
(embed_in): Embedding(50304, 512)
(layers): ModuleList(
(0-5): 6 x GPTNeoXLayer(
(input_layernorm): LayerNorm((512,), eps=1e-05, elementwise_affine=True)
(post_attention_layernorm): LayerNorm((512,), eps=1e-05, elementwise_affine=True)
(attention): GPTNeoXAttention(
(rotary_emb): RotaryEmbedding()
(query_key_value): Linear(in_features=512, out_features=1536, bias=True)
(dense): Linear(in_features=512, out_features=512, bias=True)
)
(mlp): GPTNeoXMLP(
(dense_h_to_4h): Linear(in_features=512, out_features=2048, bias=True)
(dense_4h_to_h): Linear(in_features=2048, out_features=512, bias=True)
(act): GELUActivation()
)
)
)
(final_layer_norm): LayerNorm((512,), eps=1e-05, elementwise_affine=True)
)
(embed_out): Linear(in_features=512, out_features=50304, bias=False)
)