Advertisement
mahmud11556

Untitled

Feb 23rd, 2025
204
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.77 KB | None | 0 0
  1. %%capture
  2. !pip install transformers datasets
  3. from datasets import load_dataset, Dataset
  4. from transformers import AutoTokenizer, AutoModelForSeq2SeqLM, Seq2SeqTrainingArguments, Seq2SeqTrainer,DataCollatorForSeq2Seq
  5. import torch
  6.  
  7.  
  8.  
  9.  
  10. def preprocessor(examples):
  11.  
  12.     model_inputs = tokenizer(examples["source"], max_length = 128, truncation = True, padding = "max_length")
  13.  
  14.     labels = tokenizer(examples["paraphrase"], max_length = 128, truncation = True, padding = "max_length")
  15.     model_inputs["labels"] = labels["input_ids"]
  16.  
  17.     return model_inputs
  18.  
  19.  
  20.  
  21. device = "cuda" if torch.cuda.is_available() else "cpu"
  22. %%capture
  23. dataset = load_dataset("mhdank/trainT5")
  24.  
  25. train_data = Dataset.from_dict(dataset["train"][:100])
  26. test_data = Dataset.from_dict(dataset["test"][:10])
  27. val_data = Dataset.from_dict(dataset["validation"][:10])
  28.  
  29.  
  30. train_data_processed = train_data.map(preprocessor, batched = True)
  31. test_data_processed = test_data.map(preprocessor, batched = True)
  32. val_data_processed = val_data.map(preprocessor, batched = True)
  33.  
  34.  
  35. training_args = Seq2SeqTrainingArguments(
  36.     output_dir="/t5-paraphrase",
  37.     num_train_epochs=2,
  38.     learning_rate=2e-5,
  39.     optim="adamw_torch_fused",
  40.     save_strategy="epoch",
  41.     per_device_train_batch_size=8,
  42.     per_device_eval_batch_size=8,
  43.     weight_decay=0.01,
  44.     save_total_limit=3,
  45.     warmup_ratio=0.03,
  46.     push_to_hub=False,
  47.     report_to="none"
  48. )
  49.  
  50.  
  51. trainer = Seq2SeqTrainer(
  52.     model=model,
  53.     args=training_args,
  54.     train_dataset=train_data_processed,
  55.     eval_dataset=val_data_processed,
  56.     tokenizer=tokenizer,
  57.     data_collator=DataCollatorForSeq2Seq(tokenizer, model=model),
  58. )
  59.  
  60.  
  61.  
  62.  
  63. trainer.train()
  64.  
  65.  
  66.  
  67. import torch
  68.  
  69. device = "cuda" if torch.cuda.is_available() else "cpu"
  70. model.to(device)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement