erik1988 commited on
Commit
77041ab
·
verified ·
1 Parent(s): 3267c93

Upload train_memory_agent.py with huggingface_hub

Browse files
Files changed (1) hide show
  1. train_memory_agent.py +74 -0
train_memory_agent.py ADDED
@@ -0,0 +1,74 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # /// script
2
+ # requires-python = ">=3.10"
3
+ # dependencies = [
4
+ # "trl>=0.12.0",
5
+ # "peft>=0.7.0",
6
+ # "transformers>=4.36.0",
7
+ # "accelerate>=0.24.0",
8
+ # "trackio",
9
+ # "datasets",
10
+ # ]
11
+ # ///
12
+
13
+ import trackio
14
+ from datasets import load_dataset
15
+ from peft import LoraConfig
16
+ from trl import SFTTrainer, SFTConfig
17
+
18
+ print("Loading dataset...")
19
+ dataset = load_dataset("erik1988/elias-memory-agent-sft-v1", split="train")
20
+ print(f"Dataset loaded: {len(dataset)} examples")
21
+
22
+ dataset_split = dataset.train_test_split(test_size=0.1, seed=42)
23
+ train_dataset = dataset_split["train"]
24
+ eval_dataset = dataset_split["test"]
25
+ print(f"Train: {len(train_dataset)}, Eval: {len(eval_dataset)}")
26
+
27
+ peft_config = LoraConfig(
28
+ r=32,
29
+ lora_alpha=64,
30
+ lora_dropout=0.05,
31
+ bias="none",
32
+ task_type="CAUSAL_LM",
33
+ target_modules=["q_proj", "k_proj", "v_proj", "o_proj", "gate_proj", "up_proj", "down_proj"],
34
+ )
35
+
36
+ config = SFTConfig(
37
+ output_dir="elias-memory-agent-v1",
38
+ push_to_hub=True,
39
+ hub_model_id="erik1988/elias-memory-agent-v1",
40
+ hub_strategy="every_save",
41
+ num_train_epochs=5,
42
+ per_device_train_batch_size=2,
43
+ gradient_accumulation_steps=4,
44
+ learning_rate=2e-4,
45
+ max_length=1024,
46
+ logging_steps=5,
47
+ save_strategy="steps",
48
+ save_steps=50,
49
+ save_total_limit=3,
50
+ eval_strategy="steps",
51
+ eval_steps=50,
52
+ warmup_ratio=0.1,
53
+ lr_scheduler_type="cosine",
54
+ gradient_checkpointing=True,
55
+ report_to="trackio",
56
+ project="way2agi-memory-agent",
57
+ run_name="memory-agent-sft-v1-qwen1.5b",
58
+ )
59
+
60
+ print("Initializing trainer...")
61
+ trainer = SFTTrainer(
62
+ model="Qwen/Qwen2.5-1.5B-Instruct",
63
+ train_dataset=train_dataset,
64
+ eval_dataset=eval_dataset,
65
+ args=config,
66
+ peft_config=peft_config,
67
+ )
68
+
69
+ print("Starting training...")
70
+ trainer.train()
71
+ print("Pushing to Hub...")
72
+ trainer.push_to_hub()
73
+ trackio.finish()
74
+ print("Done! Model at: https://huggingface.co/erik1988/elias-memory-agent-v1")