nroggendorff commited on
Commit
ac383dd
·
verified ·
1 Parent(s): 3ce5976

Update train.py

Browse files
Files changed (1) hide show
  1. train.py +2 -6
train.py CHANGED
@@ -6,7 +6,6 @@ import trl
6
  from transformers import AutoTokenizer, LlamaConfig, LlamaForCausalLM, TrainingArguments, PreTrainedTokenizerFast, AdamW, get_linear_schedule_with_warmup
7
  from datasets import load_dataset
8
  from tokenizers import ByteLevelBPETokenizer
9
- from accelerate import Accelerator
10
 
11
  MAX_SEQ_LENGTH = 512
12
  BATCH_SIZE = 32
@@ -94,7 +93,7 @@ def configure_tokenizer(tokenizer):
94
  chat_template = "{{ bos_token }}{% for message in messages %}{% if (message['role'] == 'user') != (loop.index0 % 2 == 0) %}{{ raise_exception('Conversation roles must alternate user/assistant/user/assistant/...') }}{% endif %}{% if message['role'] == 'user' %}{{ '<|user|>\n' + message['content'] + '<|end|>\n' }}{% elif message['role'] == 'assistant' %}{{ '<|bot|>\n' + message['content'] + '<|end|>\n' }}{% else %}{{ raise_exception('Only user and assistant roles are supported!') }}{% endif %}{% endfor %}{{ eos_token }}"
95
  tokenizer.chat_template = chat_template
96
 
97
- def train_model(accelerator, model, tokenizer, dataset, push):
98
  args = TrainingArguments(
99
  output_dir="model",
100
  num_train_epochs=EPOCHS,
@@ -114,8 +113,6 @@ def train_model(accelerator, model, tokenizer, dataset, push):
114
  num_warmup_steps=args.warmup_steps,
115
  num_training_steps=len(dataset) * args.num_train_epochs // args.gradient_accumulation_steps
116
  )
117
-
118
- model, optimizer = accelerator.prepare(model, optimizer)
119
 
120
  dataset = dataset.map(lambda examples: format_prompts(examples, tokenizer), batched=True)
121
  trainer = trl.SFTTrainer(
@@ -146,8 +143,7 @@ def main(push_to_hub=True):
146
  tokenizer = create_tokenizer(training_corpus)
147
  configure_tokenizer(tokenizer)
148
  model = create_model(tokenizer)
149
- accelerator = Accelerator()
150
- train_model(accelerator, model, tokenizer, dataset, push_to_hub)
151
 
152
  if __name__ == "__main__":
153
  main(PUSH_TO_HUB)
 
6
  from transformers import AutoTokenizer, LlamaConfig, LlamaForCausalLM, TrainingArguments, PreTrainedTokenizerFast, AdamW, get_linear_schedule_with_warmup
7
  from datasets import load_dataset
8
  from tokenizers import ByteLevelBPETokenizer
 
9
 
10
  MAX_SEQ_LENGTH = 512
11
  BATCH_SIZE = 32
 
93
  chat_template = "{{ bos_token }}{% for message in messages %}{% if (message['role'] == 'user') != (loop.index0 % 2 == 0) %}{{ raise_exception('Conversation roles must alternate user/assistant/user/assistant/...') }}{% endif %}{% if message['role'] == 'user' %}{{ '<|user|>\n' + message['content'] + '<|end|>\n' }}{% elif message['role'] == 'assistant' %}{{ '<|bot|>\n' + message['content'] + '<|end|>\n' }}{% else %}{{ raise_exception('Only user and assistant roles are supported!') }}{% endif %}{% endfor %}{{ eos_token }}"
94
  tokenizer.chat_template = chat_template
95
 
96
+ def train_model(model, tokenizer, dataset, push):
97
  args = TrainingArguments(
98
  output_dir="model",
99
  num_train_epochs=EPOCHS,
 
113
  num_warmup_steps=args.warmup_steps,
114
  num_training_steps=len(dataset) * args.num_train_epochs // args.gradient_accumulation_steps
115
  )
 
 
116
 
117
  dataset = dataset.map(lambda examples: format_prompts(examples, tokenizer), batched=True)
118
  trainer = trl.SFTTrainer(
 
143
  tokenizer = create_tokenizer(training_corpus)
144
  configure_tokenizer(tokenizer)
145
  model = create_model(tokenizer)
146
+ train_model(model, tokenizer, dataset, push_to_hub)
 
147
 
148
  if __name__ == "__main__":
149
  main(PUSH_TO_HUB)