Spaces:
Runtime error
Runtime error
Update train.py
Browse files
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(
|
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 |
-
|
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)
|