Getting Started

This guide walks you through creating your first transformer architecture in Otter — from opening the canvas to exporting production-ready PyTorch code.

1Open the Canvas

Navigate to the Canvas page. You'll see a component library on the left and an empty canvas in the center.

💡 Tip: If this is your first visit, you'll see an onboarding guide that walks you through the basics.

2Add Components

Drag components from the library onto the canvas. Start with these essential building blocks:

  • Embedding — Converts token IDs to dense vectors
  • RMSNorm — Normalizes activations (Llama-style)
  • GroupedQueryAttention — Multi-head attention with KV sharing
  • SwiGLU — Feed-forward network with gated activations
  • OutputHead — Projects hidden states to vocabulary logits

3Connect Components

Click on a component's output handle (bottom) and drag to another component's input handle (top). The connection will validate automatically — green means dimensions match, red means there's a mismatch.

Real-time validation: Otter propagates dimensions through your graph and catches mismatches before you export.

4Configure Parameters

Click on any component to open its configuration panel on the right. Here you can adjust:

  • hidden_dim — Hidden dimension size (e.g., 4096)
  • num_heads — Number of attention heads
  • intermediate_dim — FFN intermediate size

5Export Your Model

When your architecture is valid (green checkmark in the header), click Export to download a ZIP containing:

  • model.py — Complete PyTorch model definition
  • config.json — HuggingFace-compatible configuration
  • train.py — Example training script
  • requirements.txt — Python dependencies
  • README.md — Usage instructions