Email: de@deigen.net
System to deploy and scale models on demand. Handles unexpected bursts and slowly adapting traffic, efficiently scales and shares GPUs between models. Streaming protocols allow workers to run on any network, enabling both customer on-site models and use of lowest-cost hardware providers.
Object detector for realtime detection on aerial videos. Led ML team and developed improvements to detection methods, data cleaning, measurement and iteration. Top-performing system in federal contracts over multiple years.
Developed fast classifier training used by customers and internal teams to quickly build many classifiers in diverse applications. Includes embeddings, quantization, data balancing, and network architecture. Benchmarked and improved based on customers' uses in deployments for improvements.
Created industry-leading classifier for image-based content moderation and filtering, using target labels created automatically from a word-based classifier applied to weak labels and user-supplied text.
Created a system to automatically classify web page content into categories.
Rewrote filesystem journal to eliminate lock contention, leading to over 10% higher total system throughput.
Created a software package for creating interactive differential geometry visualizations, and produced class labs and demonstrations using this software.
Official submission reviewer for NeurIPS, ICLR, TMLR, annually; other conferences and journals on occasion.
Advised in prototyping, design and development of "Compute Orchestration" protocols for model serving, including multi-cloud/multi-cluster workers, load balancing across workers, and scaling within clusters, along with simple RPC interface based on function introspection. Supports streaming as well as unary RPCs.
Simple and fast video pipeline engine in python, supporting real-time and faster multi-stage model inference applications (e.g. detect and track). Automatic rate adjustment, parallel execution and pipelining in small, easily importable python package under 1K lines. (github)
Designed and led development of model packaging and encapsulation, including input/output formats, dependency installs and runtime resource estimates. Models can be shipped between clusters, including air-gapped environments, without being tied to container base images.
Developed system to automatically scale model deployments in a cloud environment based on inference request load. Can load and scale up neural network models from zero on demand to handle both unexpected bursts and slowly adapting traffic, and efficiently share GPUs between models.
Led efforts to integrate third-party open source LLMs into our training and inference pipelines, including larger GPU deployments, profiling and LoRA adapter training.
Led efforts to integrate our training and experimentation system (see below) with our data platform to automatically create image-based object detection and classification models in multiple cluster environments. Handles data validation, model training, evaluation, and inference deployment. Defined benchmarks to measure accuracy and speed for different types of models, and found best price/performance points.
Developed prototype method to estimate camera field of view, pitch and roll from single image. Located and assembled initial datasets and models, simplified and improved models adding normalized angle regression and NLL loss. Combined FOV with horizon estimates to find pitch with its estimated certainty.
Wrote core execution engine for video object detection and tracking: frame buffering, parallel inference, serialized tracking and completion, and interface with custom video streaming protocols used by customer.
Mentored interns on projects in few-shot learning. Published works at CVPR 2019 and NeurIPS Meta-Learning Workshop 2018.
Wrote object detection code framework for use with in-house neural network library and tensorflow. Created object detection models performing at state-of-the-art accuracy and ~1.5x faster compared to concurrently developed opensource object detectors.
Built job scheduler and experiment tracking system targeted for ML model building, comparison, reproducibility and change tracking. Allowed team members to independently run modified codebases in our cluster, encapsulating most dependencies and automatically tracking changes for reproducibility.
Built a system to train detection models to recognize logos in images based on synthetic data; filed patent application.
Created industry-competitive face detection and recognition system, based on data collected from publicly available sources. Initial labeling for the detector based on combinations of open-source detectors with data filtering, and refined with hard example mining.
Created industry-leading classifier for image-based content moderation and filtering, using target labels created automatically from a word-based classifier applied to weak labels and user-supplied text.
Created a system to classify IP addresses as likely spam or ham senders for email based on recent trap rates, using as input live streams of spam trap hits and overall mail volume estimates.
Datasource aggregator to score HTTP requests according to the chance of malicious content. Automatically fed back traffic samples from deployments to improve accuracy and coverage.
Extracted static client code and dependencies into a dynamically updateable package, taking into account potential differences in system libraries and hardware architecture between client platform releases. Distinct from system upgrades, the engine is automatically updated live on the appliance to the current provisioned version, without any input or interaction by the administrator.
Outlined a design for dynamic microcores, a reporting and debugging feature. Microcores are partial coredump files, only a few megabytes. The project aimed to let engineers write descriptive recipes to identify memory regions, and trigger microcore generation upon hitting system events. For example, if a system message warns about possible corruption in a block, one could identify interesting memory regions relative to the in-core structures for the block and inode in the message.
Investigated the question of whether the use of different interaction techniques might impact the memory of a user. I designed a set of two experiments to address this: The first, a preliminary study confirming a well-known difference in performance between positional- and velocity-based controls, helped to verify my experimental methodology. The second, a comparison between three interaction modes in an immersive environment, was statistically inconclusive. Anecdotal evidence, however, suggested that for many subjects, memory performance improved with a full-body walking interaction.
Wrote and reviewed proposals for a 6-week project in a mock grant proposal process during a class on scientific visualization. Carried out research on my project on electrode parameter settings in deep brain stimulation for obsessive compulsive disorder, collaborating with Benjamin Greenberg, a psychiatrist at Butler Hospital. Presented a poster of this project in SIGGRAPH 2004.
Created a software package for creating interactive differential geometry visualizations, and produced class labs and demonstrations using this software. Staff and students continue to use this package in new applications and to explore mathematical concepts in several courses at Brown, including differential geometry, combinatorial topology, calculus, geometry, and linear algebra. It has also been used by Prof. Banchoff in classes at UCLA, Notre Dame, University of Georgia, and Stanford.