distilgpt2-emailgen / README.md
pszemraj's picture
Adding Evaluation Results (#3)
15da1bb
metadata
license: apache-2.0
tags:
  - generated_from_trainer
  - distilgpt2
  - email generation
  - email
datasets:
  - aeslc
  - postbot/multi_emails
widget:
  - text: >-
      Good Morning Professor Beans,

      Hope you are doing well. I just wanted to reach out and ask if
      differential calculus will be on the exam
    example_title: email to prof
  - 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 Harold,

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

      I hope this email finds you extremely well.
    example_title: emails that find you
  - text: |-
      Hello there.

      I just wanted to reach out and check in to
    example_title: checking in
  - text: >-
      Hello <NAME>,


      I hope this email finds you well. I wanted to reach out and see if you've
      enjoyed your time with us
    example_title: work well
  - text: >-
      Hi <NAME>,


      I hope this email finds you well. I wanted to reach out and see if we
      could catch up
    example_title: catch up
  - text: >-
      I'm <NAME> and I just moved into the area and wanted to reach out and get
      some details on where I could get groceries and
    example_title: grocery
parameters:
  min_length: 4
  max_length: 128
  length_penalty: 0.8
  no_repeat_ngram_size: 2
  do_sample: false
  num_beams: 8
  early_stopping: true
  repetition_penalty: 5.5
base_model: distilgpt2

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, 
            )
            
prompt = """
Hello, 

Following up on the bubblegum shipment."""

result = generator(
    prompt,
    max_length=64,
    do_sample=False,
    early_stopping=True,
) # generate
print(result[0]['generated_text'])

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

Open LLM Leaderboard Evaluation Results

Detailed results can be found here

Metric Value
Avg. 24.89
ARC (25-shot) 21.76
HellaSwag (10-shot) 27.52
MMLU (5-shot) 25.97
TruthfulQA (0-shot) 46.17
Winogrande (5-shot) 51.62
GSM8K (5-shot) 0.0
DROP (3-shot) 1.16