| | --- |
| | 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? |
| |
|
| | ```python |
| | 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']) |
| | ``` |
| |
|
| | - try it in a [Google Colab](https://colab.research.google.com/gist/pszemraj/91df57e0c2caf1d5273b78576ad2853e/postbot-distilgpt2-emailgen-demo.ipynb) notebook |
| | - Use it in bash/cmd [with this gist](https://gist.github.com/pszemraj/c1b0a76445418b6bbddd5f9633d1bb7f) :) |
| |
|
| | > 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](https://huggingface.co/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](https://huggingface.co/spaces/HuggingFaceH4/open_llm_leaderboard) |
| | Detailed results can be found [here](https://huggingface.co/datasets/open-llm-leaderboard/details_postbot__distilgpt2-emailgen) |
| | |
| | | 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 | |
| | |