Views
No views yet
pip install -U transformers, then copy the snippet from the section that is relevant for your usecase.[!IMPORTANT]
Given the model instabilities with SDPA/ FA2, by default, the model inference would utiliseeagerattention.
1# pip install accelerate
2from transformers import AutoTokenizer, AutoModelForCausalLM
3import torch
4
5tokenizer = AutoTokenizer.from_pretrained("google/gemma-2-27b-it")
6model = AutoModelForCausalLM.from_pretrained(
7 "google/gemma-2-27b-it",
8 device_map="auto",
9 torch_dtype=torch.bfloat16
10)
11
12input_text = "Write me a poem about Machine Learning."
13input_ids = tokenizer(input_text, return_tensors="pt").to("cuda")
14
15outputs = model.generate(**input_ids)
16print(tokenizer.decode(outputs[0]))bfloat16 precision.float32 if you skip the dtype, but no precision increase will occur (model weights will just be upcasted to float32). See examples below.torch.float321# pip install accelerate
2from transformers import AutoTokenizer, AutoModelForCausalLM
3
4tokenizer = AutoTokenizer.from_pretrained("google/gemma-2-27b-it")
5model = AutoModelForCausalLM.from_pretrained(
6 "google/gemma-2-27b-it",
7 device_map="auto"
8)
9
10input_text = "Write me a poem about Machine Learning."
11input_ids = tokenizer(input_text, return_tensors="pt").to("cuda")
12
13outputs = model.generate(**input_ids)
14print(tokenizer.decode(outputs[0]))bitsandbytes1# pip install bitsandbytes accelerate
2from transformers import AutoTokenizer, AutoModelForCausalLM, BitsAndBytesConfig
3
4quantization_config = BitsAndBytesConfig(load_in_8bit=True)
5
6tokenizer = AutoTokenizer.from_pretrained("google/gemma-2-27b-it")
7model = AutoModelForCausalLM.from_pretrained(
8 "google/gemma-2-27b-it",
9 quantization_config=quantization_config)
10
11input_text = "Write me a poem about Machine Learning."
12input_ids = tokenizer(input_text, return_tensors="pt").to("cuda")
13
14outputs = model.generate(**input_ids)
15print(tokenizer.decode(outputs[0]))1# pip install bitsandbytes accelerate
2from transformers import AutoTokenizer, AutoModelForCausalLM, BitsAndBytesConfig
3
4quantization_config = BitsAndBytesConfig(load_in_4bit=True)
5
6tokenizer = AutoTokenizer.from_pretrained("google/gemma-2-27b-it")
7model = AutoModelForCausalLM.from_pretrained(
8 "google/gemma-2-27b-it",
9 quantization_config=quantization_config)
10
11input_text = "Write me a poem about Machine Learning."
12input_ids = tokenizer(input_text, return_tensors="pt").to("cuda")
13
14outputs = model.generate(**input_ids)
15print(tokenizer.decode(outputs[0]))[!WARNING]
Gemma 2 is currently incompatible with Flash Attention/ SDPA, using it might result in unreliable generations. Use at your own risk.
flash-attn in your environment pip install flash-attn1model = AutoModelForCausalLM.from_pretrained(
2 model_id,
3 torch_dtype=torch.float16,
4+ attn_implementation="flash_attention_2"
5).to(0)1from transformers import AutoTokenizer, AutoModelForCausalLM
2import transformers
3import torch
4
5model_id = "google/gemma-2-27b-it"
6dtype = torch.bfloat16
7
8tokenizer = AutoTokenizer.from_pretrained(model_id)
9model = AutoModelForCausalLM.from_pretrained(
10 model_id,
11 device_map="cuda",
12 torch_dtype=dtype,
13)
14
15chat = [
16 { "role": "user", "content": "Write a hello world program" },
17]
18prompt = tokenizer.apply_chat_template(chat, tokenize=False, add_generation_prompt=True)<bos><start_of_turn>user
Write a hello world program<end_of_turn>
<start_of_turn>model<start_of_turn> delimiter and then the role of the entity
(either user, for content supplied by the user, or model for LLM responses). Turns finish with
the <end_of_turn> token.1inputs = tokenizer.encode(prompt, add_special_tokens=False, return_tensors="pt")
2outputs = model.generate(input_ids=inputs.to(model.device), max_new_tokens=150)
3print(tokenizer.decode(outputs[0]))