oExz commited on
Commit
c258461
·
verified ·
1 Parent(s): 13c79da

Upload train_qwen.py with huggingface_hub

Browse files
Files changed (1) hide show
  1. train_qwen.py +20 -3
train_qwen.py CHANGED
@@ -2,6 +2,7 @@
2
  # dependencies = [
3
  # "trl>=0.12.0",
4
  # "peft>=0.7.0",
 
5
  # "trackio",
6
  # "datasets",
7
  # "transformers>=4.40.0",
@@ -13,9 +14,11 @@
13
  # ///
14
 
15
  import os
 
16
  from datasets import load_dataset
17
  from peft import LoraConfig
18
  from trl import SFTTrainer, SFTConfig
 
19
  import trackio
20
 
21
  hf_token = os.getenv("HF_TOKEN")
@@ -32,7 +35,21 @@ train_ds = dataset["train"]
32
  eval_ds = dataset["eval"]
33
  print(f"Train: {len(train_ds)}, Eval: {len(eval_ds)}")
34
 
35
- print(f"Loading base model {BASE_MODEL}...")
 
 
 
 
 
 
 
 
 
 
 
 
 
 
36
 
37
  peft_config = LoraConfig(
38
  r=16,
@@ -49,7 +66,7 @@ trackio.init(
49
  )
50
 
51
  trainer = SFTTrainer(
52
- model=BASE_MODEL,
53
  train_dataset=train_ds,
54
  eval_dataset=eval_ds,
55
  peft_config=peft_config,
@@ -71,7 +88,7 @@ trainer = SFTTrainer(
71
  logging_steps=10,
72
  report_to="trackio",
73
  run_name="qwen3.5-4b-reasoning-qlora",
74
- max_length=2048,
75
  bf16=True,
76
  gradient_checkpointing=True,
77
  ),
 
2
  # dependencies = [
3
  # "trl>=0.12.0",
4
  # "peft>=0.7.0",
5
+ # "bitsandbytes",
6
  # "trackio",
7
  # "datasets",
8
  # "transformers>=4.40.0",
 
14
  # ///
15
 
16
  import os
17
+ import torch
18
  from datasets import load_dataset
19
  from peft import LoraConfig
20
  from trl import SFTTrainer, SFTConfig
21
+ from transformers import AutoModelForCausalLM, BitsAndBytesConfig
22
  import trackio
23
 
24
  hf_token = os.getenv("HF_TOKEN")
 
35
  eval_ds = dataset["eval"]
36
  print(f"Train: {len(train_ds)}, Eval: {len(eval_ds)}")
37
 
38
+ print(f"Loading base model {BASE_MODEL} with 4-bit quantization...")
39
+
40
+ bnb_config = BitsAndBytesConfig(
41
+ load_in_4bit=True,
42
+ bnb_4bit_quant_type="nf4",
43
+ bnb_4bit_compute_dtype=torch.bfloat16,
44
+ bnb_4bit_use_double_quant=True,
45
+ )
46
+
47
+ model = AutoModelForCausalLM.from_pretrained(
48
+ BASE_MODEL,
49
+ trust_remote_code=True,
50
+ quantization_config=bnb_config,
51
+ device_map="auto",
52
+ )
53
 
54
  peft_config = LoraConfig(
55
  r=16,
 
66
  )
67
 
68
  trainer = SFTTrainer(
69
+ model=model,
70
  train_dataset=train_ds,
71
  eval_dataset=eval_ds,
72
  peft_config=peft_config,
 
88
  logging_steps=10,
89
  report_to="trackio",
90
  run_name="qwen3.5-4b-reasoning-qlora",
91
+ max_length=1024,
92
  bf16=True,
93
  gradient_checkpointing=True,
94
  ),