distilgpt2-emailgen / README.md
pszemraj's picture
Update README.md
3bf1e72
|
raw
history blame
3.45 kB
metadata
license: apache-2.0
tags:
  - generated_from_trainer
  - email generation
  - email
datasets:
  - aeslc
  - postbot/multi_emails
widget:
  - text: >-
      Hey <NAME>,


      Thank you for signing up for my weekly newsletter. Before we get started,
      you'll have to confirm your email address.
    example_title: newsletter
  - text: >-
      Hi <NAME>,


      I hope this email finds you well. I wanted to reach out and ask about
      office hours
    example_title: office hours
  - text: >-
      Greetings <NAME>,


      I hope you had a splendid evening at the Company sausage eating festival.
      I am reaching out because
    example_title: festival
  - text: |-
      Good Morning <NAME>,

      I was wondering when the next
    example_title: event
  - text: URGENT - I need the TPS reports
    example_title: URGENT
  - text: |-
      Hi <NAME>,

      I hope this email finds you extremely well.
    example_title: emails that find you
parameters:
  min_length: 4
  max_length: 128
  length_penalty: 0.5
  no_repeat_ngram_size: 3
  do_sample: false
  num_beams: 4
  early_stopping: true
  repetition_penalty: 4.5

distilgpt2-emailgen

Why write the rest of your email when you can generate it?

from transformers import pipeline

model_tag = "postbot/distilgpt2-emailgen"
generator = pipeline(
              'text-generation', 
              model=model_tag, 
              do_sample=False,
              early_stopping=True,
            )
            
prompt = """
Hello, 

Following up on the bubblegum shipment."""

generator(
    prompt,
    max_length=64,
) # generate

A script to use this on CPU/command line can be found here :)

For this model, formatting matters. The results may be (significantly) different between the structure outlined above and prompt = "Hey, just wanted to ..." etc.

Model description

This model is a fine-tuned version of distilgpt2 on a dataset of 50k emails, including the classic aeslc dataset.

It achieves the following results on the evaluation set:

  • Loss: 2.6247

Intended uses & limitations

The intended use of this model is to provide suggestions to "autocomplete" the rest of your email. Said another way, it should serve as a tool to write predictable emails faster. It is not intended to write entire emails; at least some input is required to guide the direction of the model.

Please verify any suggestions by the model for A) False claims and B) negation statements before accepting/sending something.

Training procedure

Training hyperparameters

The following hyperparameters were used during training:

  • learning_rate: 6e-05
  • train_batch_size: 8
  • eval_batch_size: 8
  • seed: 42
  • distributed_type: multi-GPU
  • gradient_accumulation_steps: 32
  • total_train_batch_size: 256
  • optimizer: Adam with betas=(0.9,0.999) and epsilon=1e-08
  • lr_scheduler_type: cosine
  • lr_scheduler_warmup_ratio: 0.02
  • num_epochs: 5

Training results

Training Loss Epoch Step Validation Loss
2.8299 1.0 248 2.7971
2.6984 2.0 496 2.6826
2.7022 3.0 744 2.6361
2.6436 4.0 992 2.6245
2.6195 5.0 1240 2.6247

Framework versions

  • Transformers 4.21.1
  • Pytorch 1.12.0+cu113
  • Datasets 2.4.0
  • Tokenizers 0.12.1