Skip to content

01. Product & System Overview

What it does

Export IndicTrans2 seq2seq models to browser-ready ONNX bundles, validate them, quantize them, and publish to Hugging Face so TypeScript apps can run Indic translation client-side without shipping a Python stack.

Why it exists

Keeps heavy export work out of local-voice-chat and powers indictrans2-onnx-browser-demo.

Model matrix

Size Directions Precisions
200M/320M distilled en↔indic, indic↔indic fp32, fp16, int8, q4f16
1B full same same

Default HF org: hari31416 (HF_ORG).

Primary workflow

%%{init: {
  "theme": "base",
  "themeVariables": {
    "primaryColor": "#1e293b",
    "primaryTextColor": "#f8fafc",
    "primaryBorderColor": "#38bdf8",
    "lineColor": "#64748b",
    "actorBackground": "#1e293b",
    "actorBorder": "#38bdf8",
    "actorTextColor": "#f8fafc",
    "noteBorderColor": "#fbbf24",
    "noteBkgColor": "#78350f",
    "noteTextColor": "#fffbeb"
  }
}}%%
sequenceDiagram
  participant Dev as Engineer
  participant Make as Makefile
  participant ORT as ONNX Runtime
  participant HF as Hugging Face

  Dev->>Make: make en-indic / *-1b
  Make->>Make: export + optimize + tokenizers
  Make->>ORT: parity vs PyTorch
  Dev->>Make: quantize / fp16 / q4f16
  Dev->>Make: upload-*
  Make->>HF: hf upload bundles

Interview one-liner

"I built the export factory that turns IndicTrans2 into optimized ONNX for the browser — manual export because Optimum can't, size optimizations for WASM downloads, and a 99% parity gate before anything hits Hugging Face."