YAML Metadata Warning: empty or missing yaml metadata in repo card (https://huggingface.co/docs/hub/model-cards#model-card-metadata)

Model Card: T5 Email Response Generator

  • Model Details
  • Model Name: T5 Email Response Generator
  • Model Version: 1.0
  • Base Model: t5-base (Hugging Face Transformers)
  • Task: Text generation for email response automation

Model Description

This model is a fine-tuned version of the T5 (Text-to-Text Transfer Transformer) t5-base model, designed to generate concise and contextually appropriate email responses. It was trained on a custom dataset (email.csv) containing input prompts and corresponding email responses. The model supports both FP32 and FP16 precision, with the latter optimized for reduced memory usage on GPUs.

Intended Use

  • Primary Use Case: Automating email response generation for common queries (e.g., scheduling, confirmations, updates).
  • Target Users: Individuals or organizations looking to streamline email communication.
  • Out of Scope: Generating long-form content, handling highly sensitive or complex email threads requiring human judgment.

Model Architecture

-bBase Model: T5 (t5-base)

  • Parameters: ~220M
  • Layers: 12 encoder layers, 12 decoder layers
  • Hidden Size: 768
  • Precision: Available in FP32 (full precision) and FP16 (mixed precision)

Training Details

  • Dataset
  • Source: Custom dataset (email.csv)
  • Format: CSV with columns input (prompt) and output (response)

Preprocessing:

  • Added prefix "generate response: " to all inputs.
  • Filtered out examples with None values, lengths > 100 characters, or containing "dataset" in the input.
  • Split: 90% training, 10% validation.

Training Procedure

  • Framework: Hugging Face Transformers
  • Hardware: GPU (e.g., NVIDIA with 12 GB memory)

Training Arguments:

  • Epochs: 30
  • Batch Size: 4 (effective 8 with gradient accumulation)
  • Learning Rate: 3e-4
  • Warmup Steps: 10
  • Weight Decay: 0.01
  • Optimizer: AdamW
  • Mixed Precision: FP16 enabled
  • Evaluation: Performed at the end of each epoch, using validation loss as the metric for the best model.

Tokenization

  • Tokenizer: T5Tokenizer from t5-base
  • Max Length: 128 tokens (input and output)
  • Padding: Applied with max_length
  • Truncation: Enabled for longer sequences

Performance

  • Metrics: Validation loss (best model selected based on lowest loss)

Sample Outputs:

  • Input: "Can you send me the report?"
  • Output: I’ll send the report over this afternoon!
  • Input: Write a follow-up email for our last discussion.
  • Output: I’ll send a follow-up for you shortly.
  • Limitations: Performance depends on the quality and diversity of email.csv. May struggle with prompts outside the training distribution.

Installation

  • pip install transformers datasets torch pandas accelerate -q

Loading the Model

from transformers import T5ForConditionalGeneration, T5Tokenizer
device = torch.device("cuda" if torch.cuda.is_available() else "cpu")

# Load FP16 model
model = T5ForConditionalGeneration.from_pretrained("./t5_email_finetuned_fp16").to(device)
tokenizer = T5Tokenizer.from_pretrained("./t5_email_finetuned_fp16")

# Generate a response
def generate_response(prompt, max_length=128):
    input_text = f"generate response: {prompt}"
    inputs = tokenizer(input_text, max_length=128, truncation=True, padding="max_length", return_tensors="pt").to(device)
    outputs = model.generate(input_ids=inputs["input_ids"], attention_mask=inputs["attention_mask"], max_length=max_length, num_beams=4, early_stopping=True)
    return tokenizer.decode(outputs[0], skip_special_tokens=True)

# Example
print(generate_response("Can you send me the report?"))
Downloads last month
3
Safetensors
Model size
223M params
Tensor type
F16
·
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support