Views
No views yet
1quantization_config = transformers.BitsAndBytesConfig(load_in_4bit=True)
2
3tokenizer = AutoTokenizer.from_pretrained("mistralai/Mixtral-8x7B-Instruct-v0.1", truncation=True, padding=True, padding_side="right")
4model = AutoModelForCausalLM.from_pretrained("mistralai/Mixtral-8x7B-Instruct-v0.1", quantization_config=quantization_config)
5tokenizer.add_special_tokens({'pad_token': '[PAD]'})
6
7model = prepare_model_for_kbit_training(model)
8
9config = LoraConfig(r = 4,
10 lora_alpha=4,
11 target_modules = ["gate", "q_proj", "k_proj", "v_proj", "o_proj",
12 "gate_proj", "up_proj", "down_proj"],
13 lora_dropout=0.1
14 )
15
16lora_model = get_peft_model(model, config)
17
18lora_model.print_trainable_parameters()
19
20dataset = load_dataset("Na0s/sft-ready-Text-Generation-Augmented-Data", split="train")
21
22trainer = SFTTrainer(
23 model = lora_model,
24 tokenizer = tokenizer,
25 train_dataset = dataset,
26 packing = True,
27 args = TrainingArguments(
28 per_device_train_batch_size = 1,
29 gradient_accumulation_steps = 16,
30 group_by_length = True,
31 warmup_steps = 5,
32 bf16 = True,
33 max_steps=10000,
34 learning_rate = 2e-4,
35 optim = "adamw_8bit",
36 weight_decay = 0.01,
37 lr_scheduler_type = "cosine",
38 seed = 3407,
39 eval_strategy="no",
40 do_eval=False,
41 output_dir = "./outputs",
42 push_to_hub=True,
43 remove_unused_columns=False,
44 )
45)
46
47torch.cuda.empty_cache()
48
49trainer.train()