Text-to-API Command Model

This repository contains a fine-tuned T5-Small model trained to convert natural language commands into standardized API commands. The model is designed for use cases where human-written instructions need to be translated into machine-readable commands for home automation systems or other API-driven platforms.


Model Details

  • Base Model: T5-Small
  • Task: Text-to-API command generation
  • Dataset: A custom dataset of natural language commands paired with their corresponding API commands.
  • Training Framework: PyTorch and Hugging Face Transformers
  • Input Format: Natural language text, such as "Turn off the kitchen lights."
  • Output Format: API command, such as turn_off.kitchen_lights.

Training Details

  • Dataset Details:The model was trained on a dataset of command pairs. Each pair consisted of:

    • A natural language input (e.g., "Please lock the front door.")
    • A corresponding API-style output (e.g., lock.front_door).
    • The dataset was split into:
      • 90% Training Data
      • 10% Validation Data
  • Model Configuration

    • Pre-trained Model: T5-Small
    • Maximum Input and Output Sequence Lengths: 128 tokens
    • Learning Rate: 5e-5
    • Batch Size: 16
  • Hardware: The model was fine-tuned using a CUDA-enabled GPU.


Evaluation

The model was evaluated using validation data during training. Metrics used for evaluation include:

  • Loss: Averaged across training and validation batches.
  • Qualitative Analysis: Demonstrates strong alignment between input commands and output API commands.

Intended Use

This model is designed for:

  • Translating user-friendly commands into machine-readable API instructions.
  • Home automation systems, IoT devices, and other API-driven platforms requiring natural language input.

Limitations

  • The model may not generalize well to commands outside the scope of its training data.
  • Ambiguous or overly complex inputs may produce unexpected outputs.
  • Fine-tuning on domain-specific data is recommended for specialized use cases.

How to Use the Model

Loading the Model

Step 1: Install Required Libraries

To use this model, first install the required libraries:

pip install transformers torch

Step 2: Load and Use the Model

You can use the following Python code to generate API commands from natural language inputs:

from transformers import T5Tokenizer, T5ForConditionalGeneration

# Load the tokenizer and model
tokenizer = T5Tokenizer.from_pretrained('vincenthuynh/SLM_CS576')
model = T5ForConditionalGeneration.from_pretrained('vincenthuynh/SLM_CS576')

# Function to generate API commands
def generate_api_command(model, tokenizer, text, device='cpu', max_length=50):
    input_ids = tokenizer.encode(text, return_tensors='pt').to(device)
    with torch.no_grad():
        generated_ids = model.generate(input_ids=input_ids, max_length=max_length, num_beams=5, early_stopping=True)
    return tokenizer.decode(generated_ids[0], skip_special_tokens=True)

# Example usage
command = "Please turn off the kitchen lights"
api_command = generate_api_command(model, tokenizer, command)
print(api_command)
Downloads last month
123
Safetensors
Model size
60.5M params
Tensor type
F32
·
Inference Examples
This model does not have enough activity to be deployed to Inference API (serverless) yet. Increase its social visibility and check back later, or deploy to Inference Endpoints (dedicated) instead.