-> Github | Google Scholar | Blog
Machine Learning Graph Representation Learning Programming Language Theory Compilers Functional Programming Hardware Design
Recent updates:
(2021.10.12) The paper An Empirical Study of Graph Contrastive Learning gets accepted to NeurIPS 2021!
(2021.9.1) A new paper Implementing Path-Dependent GADT Reasoning for Scala 3 gets accepted to Scala Symposium '21!
(2021.8.15) One paper gets accepted to CIKM '21!
Research interests mainly lie in the field of Machine Learning and Graph Representation Learning. Current research directions include self-supervised training of GNNs and contrastive learning on graphs. I am supervised by Prof. Shu Wu and work with Yanqiao Zhu.
I work on dotty, the Scala 3 compiler, and I am supervised by Aleksander Boruch-Gruszecki. Specifically, I am trying to improve the implementation of Generalized Algebraic Datatypes (GADTs) in the compiler. I am also working on the theory of GADT reasoning in Dependent Object Types. I have done the soundness proof for an extended variant of the pDOT calculus that allows us to invert the subtyping evidence. The extended calculus is useful for formalizing GADT reasoning.
I am supervised by Prof. Zhilin Yang, and working on designing and pretraining large-scale language models for code generation as the project of my Bachelor's thesis.
A compiler that compiles a subset of Scala to C. Basic functional programming and object-oriented programming functionalities and main language features are included in the subset. Implemented the Hindley-Milner type system for type checking and inferencing.
A battery-included library for graph contrastive learning with PyTorch. It implements a wide variety of contrastive objectives, data augmentations, contrasting modes and other utilities useful for implementing contrastive learning on graphs.
Sircle is an DSL designed for my project CoordML, a tool to bring automation to experimenting in machine learning research. Sircle is used for define experiment tasks with ease. It is interpreted, impure and dynamically typed, and it supports functional programming styles with first-class functions, lambda and currying. More information about Sircle can be found at Introduction to Sircle.
A cute little library for Cats.
A full-featured and high-performance MIPS32 cache written in Chisel3. It transfer data via AXI bus in wrap mode. It has a victim cache and supports write buffering, with all its parameters configurable. It is part of a MIPS32 CPU, EasterMIPS, which is the work of our team for the NSCSCC 2020 competition, and we got the First Prize in the contest.