Research engineering role part of the Bergamot Project. Collaborating with academic and industry partners to build a browser extension that uses neural models to translate on the client machine.
Investigated parameter efficiency in multilingual neural machine translation. Explored the use of adapter layers in already trained large models as a means to achieve performance in domain adaptation and fine-tuning without degrading performance on the original within a limited training budget. Work published at EMNLP 2020 and a patent application in progress.
Research experience spread across machine learning, text recognition and machine translation.
Neural Machine Translation (NMT) on the client machine. Built on top of Marian NMT library. Powers Mozilla Firefox's privacy-focused local translation feature.
Integer GEMM wrapper library built on top of google/ruy towards capability of efficient matrix multiplications for neural models on ARM CPUs.
Multilingual NMT models - data collection, training and inference for translating between 11 language pairs spoken in the Indian subcontinent.
Input Method Engine (IME) enabling real-time translation into a target language while typing in the source language. Application use-case of bergamot-translator.
Singular Value Decomposition implementation for CPU and GPU using Householder reflections and Givens Rotations. Implemented as part of Introduction to Parallel and Scientific Computing Course.
A PyTorch reimplementation of MaskGAN: Better Text Generation via Filling in the _______ William Fedus, Ian Goodfellow, Andrew M. Dai.
Experimental Python code written to evaluate and aid HTML translations feature to bergamot-translator. Implements a google-translate web page feature to provide fast visual feedback on the upstream library's HTML translation capabilities.
Using representations learned by a Convolutional Neural Network trained to classify handwritten words, built a content-matching system for handwritten documents. Worked with text-detection systems followed bipartite matching and IR noise removal techniques to match regions of one document to another.
Stacked LSTM encoder and decoder with a bottleneck at the sentence encoding in order to obtain language-agnostic sentence representations. Implementation in PyTorch supports multi-node multi-GPU parallelism.
Low-Rank Approximation through SVD++ providing recommendations through a web application built in Django.
Undergraduate course project. Parsing, interpreting, and codegen via LLVM. Implemented parsing using YACC. Built an interpreter. Further extended the implementation to emit LLVM IR to be compiled into machine code.
Mini SQL engine that processes SQL queries. Implemented a parser that parses a subset of SQL using pyparsing to an abstract syntax tree (AST). Query executed as an evaluation of parsed AST.
Helping out in maintaining Valhalla GPU cluster of about 20 machines managed by the group to run machine learning experiments. Responsibilities include replacing hardware like GPUs and hard disks, provisioning software updates to ensure the smooth running of the cluster.
Fixing donated bicycles that are in need of repair before they can be reused.
Configured and deployed SLURM and supporting ecosystem on lab cluster of 20 High Performance Computing (HPC) nodes. Maintained software capable of running deep learning experiments on the machines, supporting a community of ~100 research scholars. Also volunteered for moderation duties for the larger university HPC cluster.