metadata
license:
- apache-2.0
tags:
- text generation
- emailgen
- email generation
- email
datasets:
- aeslc
- postbot/multi-emails-100k
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: 32
max_length: 128
no_repeat_ngram_size: 2
do_sample: true
temperature: 0.3
top_k: 20
top_p: 0.95
repetition_penalty: 3.5
length_penalty: 0.9
gpt2-medium-emailgen
Why write the entire email when you can generate (most of) it?
from transformers import pipeline
model_tag = "postbot/gpt2-medium-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'])
about
This model is a fine-tuned version of gpt2-medium on the postbot/multi-emails-100k dataset. It achieves the following results on the evaluation set:
- Loss: 1.5840
Model description
More information needed
Intended uses & limitations
- this is intended as a tool to save time writing predictable emails and not to write emails without a human-in-the-loop. validate that your email is factually correct before sending it to others.
Training and evaluation data
- the dataset is essentially a hand-curated/augmented expansion to the classic
aeslc
dataset
Training procedure
Training hyperparameters
The following hyperparameters were used during training:
- learning_rate: 0.001
- train_batch_size: 16
- eval_batch_size: 16
- seed: 42
- distributed_type: multi-GPU
- gradient_accumulation_steps: 8
- total_train_batch_size: 128
- optimizer: Adam with betas=(0.9,0.999) and epsilon=1e-08
- lr_scheduler_type: cosine
- lr_scheduler_warmup_ratio: 0.02
- num_epochs: 3
Training results
Training Loss | Epoch | Step | Validation Loss |
---|---|---|---|
1.8701 | 1.0 | 789 | 1.8378 |
1.5065 | 2.0 | 1578 | 1.6176 |
1.1873 | 3.0 | 2367 | 1.5840 |
Framework versions
- Transformers 4.22.2
- Pytorch 1.10.0+cu113
- Datasets 2.5.1
- Tokenizers 0.12.1
Open LLM Leaderboard Evaluation Results
Detailed results can be found here
Metric | Value |
---|---|
Avg. | 25.97 |
ARC (25-shot) | 26.45 |
HellaSwag (10-shot) | 34.31 |
MMLU (5-shot) | 24.1 |
TruthfulQA (0-shot) | 43.96 |
Winogrande (5-shot) | 50.43 |
GSM8K (5-shot) | 0.0 |
DROP (3-shot) | 2.53 |