mrsandip commited on
Commit
87f48ad
·
verified ·
1 Parent(s): dee1439

Train seq128 + adafactor + cpu flag

Browse files
Files changed (1) hide show
  1. scripts/train.py +12 -6
scripts/train.py CHANGED
@@ -6,7 +6,7 @@ from transformers import LlamaConfig, LlamaForCausalLM, Trainer, TrainingArgumen
6
  from torch.utils.data import Dataset
7
 
8
  class JsonlDS(Dataset):
9
- def __init__(self, path, tok_len=512):
10
  self.rows = [json.loads(l) for l in open(path, encoding="utf-8")]
11
  self.tok_len = tok_len
12
  def __len__(self): return len(self.rows)
@@ -24,17 +24,23 @@ def main():
24
  ap = argparse.ArgumentParser()
25
  ap.add_argument("--epochs", type=int, default=3)
26
  ap.add_argument("--out", default="outputs/tiny-50M")
 
27
  a = ap.parse_args()
28
  cfg = LlamaConfig(hidden_size=512, num_hidden_layers=8, num_attention_heads=8,
29
  num_key_value_heads=4, intermediate_size=1376, vocab_size=32000, max_position_embeddings=2048)
30
  model = LlamaForCausalLM(cfg)
31
  ds = JsonlDS("data/processed/train.jsonl")
32
- use_cuda = torch.cuda.is_available()
33
- args = TrainingArguments(output_dir=a.out, per_device_train_batch_size=2,
34
- gradient_accumulation_steps=8,
 
 
35
  num_train_epochs=a.epochs, logging_steps=5, save_steps=200,
36
- save_total_limit=1, fp16=use_cuda,
37
- gradient_checkpointing=True, report_to="none")
 
 
 
38
  Trainer(model=model, args=args, train_dataset=ds).train()
39
  model.save_pretrained(a.out)
40
  print(f"saved -> {a.out}")
 
6
  from torch.utils.data import Dataset
7
 
8
  class JsonlDS(Dataset):
9
+ def __init__(self, path, tok_len=128):
10
  self.rows = [json.loads(l) for l in open(path, encoding="utf-8")]
11
  self.tok_len = tok_len
12
  def __len__(self): return len(self.rows)
 
24
  ap = argparse.ArgumentParser()
25
  ap.add_argument("--epochs", type=int, default=3)
26
  ap.add_argument("--out", default="outputs/tiny-50M")
27
+ ap.add_argument("--cpu", action="store_true", help="force CPU")
28
  a = ap.parse_args()
29
  cfg = LlamaConfig(hidden_size=512, num_hidden_layers=8, num_attention_heads=8,
30
  num_key_value_heads=4, intermediate_size=1376, vocab_size=32000, max_position_embeddings=2048)
31
  model = LlamaForCausalLM(cfg)
32
  ds = JsonlDS("data/processed/train.jsonl")
33
+ use_cuda = torch.cuda.is_available() and not a.cpu
34
+ import os
35
+ os.environ.setdefault("PYTORCH_CUDA_ALLOC_CONF", "expandable_segments:True")
36
+ args = TrainingArguments(output_dir=a.out, per_device_train_batch_size=1,
37
+ gradient_accumulation_steps=32,
38
  num_train_epochs=a.epochs, logging_steps=5, save_steps=200,
39
+ save_total_limit=1, fp16=use_cuda, use_cpu=a.cpu,
40
+ gradient_checkpointing=True, report_to="none",
41
+ optim="adafactor",
42
+ dataloader_num_workers=0, dataloader_pin_memory=False,
43
+ max_grad_norm=0.0)
44
  Trainer(model=model, args=args, train_dataset=ds).train()
45
  model.save_pretrained(a.out)
46
  print(f"saved -> {a.out}")