Skip to content
View thammegowda's full-sized avatar
🐻
simple bare necessities!
🐻
simple bare necessities!

Highlights

  • Pro

Organizations

@apache @isi-nlp @microsoft @USCDataScience @MicrosoftCopilot

Block or report thammegowda

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Content in all repositories owned by your account will be closed.
Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
thammegowda/README.adoc

Thamme "TG" Gowda

I build AI systems that survive the trip from research to production.

I am a Research Scientist at Microsoft working across multilingual and multimodal models, data and distributed training, evaluation, quantization, GPU systems, and low-latency inference.

Current work

Kidi: lightweight local AI inference

I built Kidi, a C++23 inference toolkit with shared model code across CPU, Apple Metal, and WebAssembly CPU. It supports Gemma 4 E2B text generation and RTG translation, including the 500-language many-to-English model, without PyTorch or Transformers at inference time.

Models use reusable tensors and neural layers with eager execution and backend-specific operators. Gemma’s original Safetensors checkpoints load directly, including trained mixed 2/4/8-bit mobile-QAT weights, without offline checkpoint conversion.

The experimental browser demo is my first attempt at WebAssembly; it’s still slow at the moment. It uses CPU inference with SIMD and optional threads, with no WebGPU acceleration. Prompts stay on your device. The first run downloads about 2.49 GB of model files, cached for reuse. Use a current 64-bit Chromium browser with ample memory; the Wasm heap can approach its 4 GiB limit. Chat is currently text-only.

WMT Model Compression and Tahoma

I lead the WMT Model Compression shared task, now in its second edition, and build the open infrastructure used to evaluate complete participant systems. The WMT25 harness standardized offline Docker submissions; WMT26 adds self-contained runnable systems, common install and inference contracts, sanity checks, reproducibility recipes, and organizer-run quality, footprint, memory, and speed measurements on controlled H100 hardware.

The second edition received 41 participant-submitted variants from 13 teams. Our forthcoming findings report shows why model compression is a systems problem: reduced precision only becomes fast when the serving runtime exploits it, and efficiency claims must account for quality.

In parallel, I am building Tahoma, a C++23 runtime and research platform for language models and machine translation. Current work includes low-bit quantization, custom CUDA and ROCm kernels, paged attention, continuous batching, and multi-GPU execution.

Reproducible multilingual data

I created MTData to replace brittle, one-off data scripts with versioned dataset recipes. As a WMT General MT organizer from 2022 through 2026, I have maintained the official MTData setup for five consecutive editions, giving participants version-pinned, command-line-reproducible definitions of the constrained-track training data. Coverage grew from 11 WMT22 recipe IDs to 21 WMT26 recipes.

Production AI

Algorithms and systems software

  • Built pigzpp, a thread-safe C++23 compression core with Python, Go, Rust, and WebAssembly bindings, plus ZIP and PNG support.

  • Reworked BPE learning from repeated linear scans to heap-based updates and merged it upstream into Google SentencePiece.

Open systems with lasting use

Project What I built

MTData

Reproducible acquisition and preparation of machine-translation data. It has supported five consecutive WMT General MT editions and Meta’s No Language Left Behind work.

NLLB Serve

A web interface, REST API, and batch decoder that makes Meta’s 200-language NLLB models straightforward to deploy.

RTG and NLCodec

An open training and inference toolkit plus inspectable vocabulary codecs. I used this toolchain to build a 500+ language many-to-English translation system.

Sparkler

I created Sparkler at USC and designed its core architecture: an extensible distributed web crawler built with Apache Spark, Kafka, Solr/Lucene, Tika, and JavaScript rendering. I later handed the project to its maintainers when I shifted focus to my Ph.D.

Pinned Loading

  1. mtdata mtdata Public

    A tool that locates, downloads, and extracts machine translation corpora

    Python 167 24

  2. nllb-serve nllb-serve Public

    Meta's "No Language Left Behind" models served as web app and REST API

    Python 261 41

  3. pigzpp pigzpp Public

    pigz++: modernizing pigz; parallel gzip for the whole stack

    C++ 14 2

  4. isi-nlp/rtg isi-nlp/rtg Public

    Reader Translator Generator - NMT toolkit based on pytorch

    Jupyter Notebook 30 6

  5. chrismattmann/sparkler chrismattmann/sparkler Public

    A crawl workstation: View, Control, and Crawl. Solr CrawlDB, Tika, Vue 3.

    Python 419 136

  6. marian-nmt/sotastream marian-nmt/sotastream Public

    A library for data streaming and augmentation

    Python 22 4