Deep Graph Library
Recently, I am working on an open source project called (Deep Graph Library DGL), which is a python package that interfaces between existing tensor libraries and data being expressed as graphs.
The goal of this project is to make deep learning on graphs easy and efficient. DGL provides users with the most intuitive message passing interfaces to define computation on graphs. DGL also fuses message passing phase into one lower-level kernel whenever possible to speed up computation and reduce memory footprints. Besides, DGL offers rich APIs like graph batching, sampling, and heterogeneous graphs, which let users implement a large variety of Graph Neural Network models efficiently with minimum efforts.
DGL is published as a workshop paper at ICLR 2019 Workshop on Representation Learning on Graphs and Manifolds. It’s a joint project with collaborators at NYU, NYU Shanghai, AWS, and AWS Shanghai AI Lab.
My previous project BatchMaker is an inference system for Recurrent Neural Network (RNN). The goal is to achieve low latency and high throughput when serving RNN models.
In this project, we proposed a new batching techniques called Cellular Batching, which exploits the recursive nature and variable-length property of Recurrent Neural Network to batch cells of different requests at different time step together. With Cellular Batching, BatchMaker allows incoming requests to join execution of current running batch, and allows short requests to return to user without being delayed by long requests.
When you outsource your application and host it on a cloud service, how can you be sure that the cloud faithfully executed your program? OROCHI is an answer to this fundamental problem.
OROCHI provides an abstract solution called SSCO which requires slight modification to outsourced application to log hints (which we don’t trust) during runtime, and later verifies the trace (request and response) and hints offline efficiently.