Views
No views yet
Unsloth_finetuning_gemma_3_4b_pt_lora.ipynb and the model output directory, to create a clear and informative README.md for your project.Unsloth_finetuning_gemma_3_4b_pt_lora.ipynb and uses the fka/awesome-chatgpt-prompts dataset to teach the model to respond to a variety of instructions and prompts in a ChatGPT-like format..
├── Unsloth_finetuning_gemma_3_4b_pt_lora.ipynb # Main notebook for fine-tuning
└── gemma-7b-chatgpt-prompts/ # Output directory for model and tokenizer
├── adapter_config.json
├── adapter_model.safetensors
├── special_tokens_map.json
├── tokenizer_config.json
├── tokenizer.json
├── tokenizer.model
└── README.md # (This file)!pip install unsloth trl peft accelerate bitsandbytes transformers datasets fsspec1import torch
2print(torch.cuda.is_available())
3print(torch.cuda.get_device_name(0))1from datasets import load_dataset
2
3dataset = load_dataset("fka/awesome-chatgpt-prompts", split="train")
4dataset = dataset.map(lambda x: {
5 "text": f"### Instruction: {x['act']}\n### Prompt: {x['prompt']}\n### Response:"
6})1from unsloth import FastLanguageModel
2import transformers
3from transformers.cache_utils import StaticCache, HybridCache
4import transformers.models.gemma3.modeling_gemma3
5
6transformers.models.gemma3.modeling_gemma3.StaticCache = StaticCache
7transformers.models.gemma3.modeling_gemma3.HybridCache = HybridCache
8
9model, tokenizer = FastLanguageModel.from_pretrained(
10 model_name="google/gemma-7b",
11 max_seq_length=2048,
12 dtype=None,
13 load_in_4bit=True,
14 device_map="auto",
15)1model = FastLanguageModel.get_peft_model(
2 model,
3 r=64,
4 target_modules=["q_proj", "k_proj", "v_proj", "o_proj", "gate_proj", "up_proj", "down_proj"],
5 lora_alpha=128,
6 lora_dropout=0,
7 bias="none",
8 use_gradient_checkpointing="unsloth",
9 random_state=3407,
10 use_rslora=False,
11 loftq_config=None,
12)1from trl import SFTTrainer
2from transformers import TrainingArguments
3
4trainer = SFTTrainer(
5 model=model,
6 tokenizer=tokenizer,
7 train_dataset=dataset,
8 dataset_text_field="text",
9 max_seq_length=2048,
10 dataset_num_proc=2,
11 args=TrainingArguments(
12 per_device_train_batch_size=2,
13 gradient_accumulation_steps=4,
14 warmup_steps=10,
15 num_train_epochs=3,
16 learning_rate=2e-4,
17 fp16=not torch.cuda.is_bf16_supported(),
18 bf16=torch.cuda.is_bf16_supported(),
19 logging_steps=25,
20 optim="adamw_8bit",
21 weight_decay=0.01,
22 lr_scheduler_type="linear",
23 seed=3407,
24 output_dir="outputs",
25 save_strategy="epoch",
26 save_total_limit=2,
27 dataloader_pin_memory=False,
28 report_to="none"
29 ),
30)
31trainer.train()1model.save_pretrained("gemma-7b-chatgpt-prompts")
2tokenizer.save_pretrained("gemma-7b-chatgpt-prompts")google/gemma-7b (4-bit quantized via Unsloth)tokenizer.json, tokenizer.model, tokenizer_config.json, special_tokens_map.json<pad>, <eos>, <bos>, <unk>, <start_of_turn>, <end_of_turn>1inputs = tokenizer("### Instruction: Give me a recipe for chocolate cake.\n### Prompt: \n### Response:", return_tensors="pt").to("cuda")
2outputs = model.generate(**inputs, max_new_tokens=256, use_cache=True, do_sample=True, top_k=50, top_p=0.95)
3print(tokenizer.decode(outputs[0], skip_special_tokens=True))1from google.colab import files
2files.download("gemma-7b-chatgpt-prompts")