mahmud11556

Untitled

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