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."