samsum_dataset.py 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. # Copyright (c) Meta Platforms, Inc. and affiliates.
  2. # This software may be used and distributed according to the terms of the Llama 2 Community License Agreement.
  3. # For dataset details visit: https://huggingface.co/datasets/samsum
  4. import copy
  5. import datasets
  6. def get_preprocessed_samsum(dataset_config, tokenizer, split):
  7. dataset = datasets.load_dataset("samsum", split=split)
  8. prompt = f"Summarize this dialog:\n{{dialog}}\n---\nSummary:\n"
  9. def apply_prompt_template(sample):
  10. return {
  11. "prompt": prompt.format(dialog=sample["dialogue"]),
  12. "summary": sample["summary"],
  13. }
  14. dataset = dataset.map(apply_prompt_template, remove_columns=list(dataset.features))
  15. def tokenize_add_label(sample):
  16. prompt = tokenizer.encode(
  17. tokenizer.bos_token + sample["prompt"], add_special_tokens=False
  18. )
  19. summary = tokenizer.encode(
  20. sample["summary"] + tokenizer.eos_token, add_special_tokens=False
  21. )
  22. sample = {
  23. "input_ids": prompt + summary,
  24. "attention_mask": [1] * (len(prompt) + len(summary)),
  25. "labels": [-100] * len(prompt) + summary,
  26. }
  27. return sample
  28. dataset = dataset.map(tokenize_add_label, remove_columns=list(dataset.features))
  29. return dataset