pytorch opt text-generation dataset:aeslc transformers generated_from_trainer custom-license non-commercial email auto-complete 125m license:other

---
license: other
tags:
- generated_from_trainer
- opt
- custom-license
- non-commercial
- email
- auto-complete
- 125m
datasets:
- aeslc

widget:
- text: "Hey <NAME>,\n\nThank 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>,\n\nI hope this email finds you well. Let me start by saying that I am a big fan of your work." 
  example_title: "fan"
- text: "Greetings <NAME>,\n\nI hope you had a splendid evening at the Company sausage eating festival. I am reaching out because" 
  example_title: "festival"
- text: "Good Morning <NAME>,\n\nI was just thinking to myself about how much I love creating value" 
  example_title: "value"
- text: "URGENT - I need"
  example_title: "URGENT"
parameters:
  min_length: 4
  max_length: 64
  length_penalty: 0.7
  no_repeat_ngram_size: 3
  do_sample: False
  num_beams: 4
  early_stopping: True
  repetition_penalty: 3.5
  use_fast: False
---
> NOTE: there is currently a bug with huggingface API for OPT models. Please use the [colab notebook](https://colab.research.google.com/gist/pszemraj/033dc9a38da31ced7a0343091ba42e31/email-autocomplete-demo-125m.ipynb) to test :) 

# opt for email generation - 125m

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

```
from transformers import pipeline
model_tag = "pszemraj/opt-125m-email-generation"
generator = pipeline(
              'text-generation', 
              model=model_tag, 
              use_fast=False,
              do_sample=False,
            )
            
prompt = """
Hello, 
Following up on the bubblegum shipment."""
generator(
    prompt,
    max_length=96,
) # generate
```
- [colab notebook](https://colab.research.google.com/gist/pszemraj/033dc9a38da31ced7a0343091ba42e31/email-autocomplete-demo-125m.ipynb) for testing/use

## About


This model is a fine-tuned version of [facebook/opt-125m](https://huggingface.co/facebook/opt-125m) on an `aeslc` dataset.


- Emails, phone numbers, etc., were attempted to be excluded in a dataset preparation step using [clean-text](https://pypi.org/project/clean-text/) in Python.
- Note that API is restricted to generating 64 tokens - you can generate longer emails by using this in a text-generation `pipeline` object

It achieves the following results on the evaluation set:
- Loss: 2.5552

## Intended uses & limitations

- OPT models cannot be used commercially
- [here is a GitHub gist](https://gist.github.com/pszemraj/c1b0a76445418b6bbddd5f9633d1bb7f) for a script to generate emails in the console or to a text file.

## Training and evaluation data

- the `email_body` field of train + validation (get more data) from the [aeslc](https://huggingface.co/datasets/aeslc) dataset.


### Training results

| Training Loss | Epoch | Step | Validation Loss |
|:-------------:|:-----:|:----:|:---------------:|
| 2.8245        | 1.0   | 129  | 2.8030          |
| 2.521         | 2.0   | 258  | 2.6343          |
| 2.2074        | 3.0   | 387  | 2.5595          |
| 2.0145        | 4.0   | 516  | 2.5552          |


### Framework versions

- Transformers 4.20.1
- Pytorch 1.11.0+cu113
- Tokenizers 0.12.1
