Views
No views yet
transformers library on a machine with GPUs, first make sure you have the transformers library installed.pip install transformers==4.40.2token=True in the pipeline and login to hugginface_hub by running1import huggingface_hub
2huggingface_hub.login(<ACCESS_TOKEN>)token in the pipeline1from transformers import pipeline
2
3generate_text = pipeline(
4 model="yifanxie/taupe-bumblebee",
5 torch_dtype="auto",
6 trust_remote_code=True,
7 use_fast=True,
8 device_map={"": "cuda:0"},
9 token=True,
10)
11
12# generate configuration can be modified to your needs
13# generate_text.model.generation_config.min_new_tokens = 2
14# generate_text.model.generation_config.max_new_tokens = 256
15# generate_text.model.generation_config.do_sample = False
16# generate_text.model.generation_config.num_beams = 1
17# generate_text.model.generation_config.temperature = float(0.0)
18# generate_text.model.generation_config.repetition_penalty = float(1.0)
19
20messages = [
21 {"role": "user", "content": "Hi, how are you?"},
22 {"role": "assistant", "content": "I'm doing great, how about you?"},
23 {"role": "user", "content": "Why is drinking water so healthy?"},
24]
25
26res = generate_text(
27 messages,
28 renormalize_logits=True
29)
30print(res[0]["generated_text"][-1]['content'])1print(generate_text.tokenizer.apply_chat_template(
2 messages,
3 tokenize=False,
4 add_generation_prompt=True,
5))1from transformers import AutoModelForCausalLM, AutoTokenizer
2
3model_name = "yifanxie/taupe-bumblebee" # 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.
6messages = [
7 {"role": "user", "content": "Hi, how are you?"},
8 {"role": "assistant", "content": "I'm doing great, how about you?"},
9 {"role": "user", "content": "Why is drinking water so healthy?"},
10]
11
12tokenizer = AutoTokenizer.from_pretrained(
13 model_name,
14 use_fast=True,
15 trust_remote_code=True,
16)
17model = AutoModelForCausalLM.from_pretrained(
18 model_name,
19 torch_dtype="auto",
20 device_map={"": "cuda:0"},
21 trust_remote_code=True,
22)
23model.cuda().eval()
24
25# generate configuration can be modified to your needs
26# model.generation_config.min_new_tokens = 2
27# model.generation_config.max_new_tokens = 256
28# model.generation_config.do_sample = False
29# model.generation_config.num_beams = 1
30# model.generation_config.temperature = float(0.0)
31# model.generation_config.repetition_penalty = float(1.0)
32
33inputs = tokenizer.apply_chat_template(
34 messages,
35 tokenize=True,
36 add_generation_prompt=True,
37 return_tensors="pt",
38 return_dict=True,
39).to("cuda")
40
41tokens = model.generate(
42 input_ids=inputs["input_ids"],
43 attention_mask=inputs["attention_mask"],
44 renormalize_logits=True
45)[0]
46
47tokens = tokens[inputs["input_ids"].shape[1]:]
48answer = tokenizer.decode(tokens, skip_special_tokens=True)
49print(answer)load_in_8bit=True or load_in_4bit=True. Also, sharding on multiple GPUs is possible by setting device_map=auto.GemmaForCausalLM(
(model): GemmaModel(
(embed_tokens): Embedding(256000, 2048, padding_idx=0)
(layers): ModuleList(
(0-17): 18 x GemmaDecoderLayer(
(self_attn): GemmaSdpaAttention(
(q_proj): Linear(in_features=2048, out_features=2048, bias=False)
(k_proj): Linear(in_features=2048, out_features=256, bias=False)
(v_proj): Linear(in_features=2048, out_features=256, bias=False)
(o_proj): Linear(in_features=2048, out_features=2048, bias=False)
(rotary_emb): GemmaRotaryEmbedding()
)
(mlp): GemmaMLP(
(gate_proj): Linear(in_features=2048, out_features=16384, bias=False)
(up_proj): Linear(in_features=2048, out_features=16384, bias=False)
(down_proj): Linear(in_features=16384, out_features=2048, bias=False)
(act_fn): PytorchGELUTanh()
)
(input_layernorm): GemmaRMSNorm()
(post_attention_layernorm): GemmaRMSNorm()
)
)
(norm): GemmaRMSNorm()
)
(lm_head): Linear(in_features=2048, out_features=256000, bias=False)
)