WAN, Ching Pui

Deep Learning researcher, Software engineer

About Me

Hi, my name’s Ching Pui. You can also call me Patrick. I’m from Hong Kong. I am working as a Data Engineer at Lenovo PCCW Solutions. I am interested in computer vision, foundation models, reinforcement learning, and privacy-preserving AI.

Education

Hong Kong University of Science & Technology

MPhil in Computer Science and Engineering – GPA: 4.0/4.3

Sep. 2019 – Aug. 2021

Highlight coursework: Advanced Algorithms, Optimization in Machine Learning, Deep Learning, Data Mining, Software Engineering

Thesis: Robust Federated Learning with Attack-Adaptive Aggregation, supervised by Prof Qifeng Chen (Best paper award in FTL-IJCAI’21)

Hong Kong University of Science & Technology

B.Sc in Mathematics and Computer Science – GPA: 3.9/4.3, First Class Honors

Sep. 2015 - Aug. 2019

Highlight coursework: Algorithm, Software Engineering, OOP, Probability, Statistical Inference, Analysis

ETH Zürich (Swiss Federal Institute of Technology in Zurich)

Exchange program – GPA: 5.3/6.0

Sep. 2018 - Jan. 2019

Highlight coursework: Deep Learning, Advanced Machine Learning, Computer Vision

Experience

Lenovo PCCW Solutions

Data Engineer

June. 2023 - Present

Deliver end-to-end AI solutions to help customers achieve their business goals!

  • Projects on large language model and video analytics
  • Deployed private LLMs and developed applications in chatbot, RAG on enterprise data, and automation agents
  • Trained object detection models and developed alarm systems for refuse room management and tunnel safety
  • Coached fresh graduates to develop competency in delivering AI solutions
  • LangChain, HuggingFace, Llama2, Mistral, mmdetection, DINO, SAM

Lenovo

Decision Intelligence Researcher

Sep. 2021 - May. 2023

Work smarter! Use deep learning models to support, augment, and automate decisions! From developing robust business intelligence tools to solving NP Hard problems in operation research!

  • Projects on computer vision and reinforcement learning for business intelligence and operation research
  • Developed OCR, table extraction, and layout parsing tools for light-weight document image analysis
  • Developed neural combinatorial optimization models with deep reinforcement learning
  • Delivered POC to industry partners on engineering diagram recognition
  • mmdetection, YoloX, LayoutLM, Ray RLlib, RLOR (my library for reinforcement learning)

Hong Kong University of Science & Technology

Teaching assistant

Feb. 2020 - Dec. 2020

  • Responsible for two courses: a UG level OOP course, a PG level AI course
  • Delivered a tutorial on C++ STL, designed coding assignments on template, operator overloading, friends
  • Designed written& coding assignments on perceptron/ search/ MDP/ knowledge representation/ game theory
  • Held AI contests for students to compete in a navigation mission with the AI methods they learned

Google LA x Institute for Pure & Applied Mathematics

Research Internship in Los Angeles

Jun. 2018 - Aug. 2018

Why bother annotating every sample when most of them are negative anyway? Verify only the predicted positive samples and tune the classifiers, as well as their ensemble!

  • Project on “Extreme rare events classification with predicted positive data”
  • Developed algorithms for effective classifiers ensemble on limited training samples
  • Applied the algorithm on advertising security
  • Delivered weekly meetings, reports, and oral presentations with industrial sponsors from Google LA

Microsoft Research Asia x HKUST

Research Internship in Hong Kong

Jun. 2017 - Aug. 2017

What is the best trade-off between convergence and communication overhead in distributed machine learning? How about convex vs non-convex case? Synchronous vs asynchronous SGD?

  • Project on “Efficient Communication in Distributed Machine Learning”
  • Implemented distributive machine learning with Microsoft’s deep learning framework (CNTK) on C++
  • Analyzed criteria for efficient distributed machine learning
  • Performed experiments on image classification, recommendation system, and language translation tasks

Projects

Robust Federated Learning with Attack-Adaptive Aggregation

Master thesis

Best paper award in FTL-IJCAI'21

https://github.com/cpwan/Attack-Adaptive-Aggregation

Federated learning is vulnerable to various attacks, such as model poisoning and backdoor attacks, even if some existing defense strategies are used. To address this challenge, we propose an attack-adaptive aggregation strategy to defend against various attacks for robust federated learning. The proposed approach is based on training a neural network with an attention mechanism that learns the vulnerability of federated learning models from a set of plausible attacks. To the best of our knowledge, our aggregation strategy is the first one that can be adapted to defend against various attacks in a data-driven fashion. Our approach has achieved competitive performance in defending model poisoning and backdoor attacks in federated learning tasks on image and text datasets.

SHAP for Visual Explanations of Time Series Models

Course project

Sep. 2020 - Dec. 2020

https://github.com/comp5331-Xtimeseries/Xtimeseries
  • Implemented LST-Net, TPA-LSTM, mWDN for time series prediction with PyTorch and Tensorflow
  • Performed experiments on multivariate time series datasets
  • Analyzed the effectiveness of SHAP for visual explanations of the time series models

Steel Defect Detection with Deep Semantic Segmentation

Course project

Sep. 2019 - Dec. 2019

https://github.com/cpwan/steel-defect-detection
  • Implemented U-net and Context Aggregated Network for semantic segmentation with PyTorch
  • Performed experiments on binary cross entropy loss and dice loss
  • Explored the shortcuts issues with dice loss

Colorization with Generative Adversarial Network

Independent study

Feb. 2019 - Jun. 2019

https://github.com/cpwan/colorization-with-cGAN
  • Implemented U-net for image style transfer with PyTorch
  • Performed experiments on regularizations and conditional discriminator
  • Performed colorization on various sources of training data

Voice Spoofing with Machine Learning

Course project

Sep. 2018 - Dec. 2018

  • Implemented GAN for voice synthesis on celebrities with PyTorch
  • Built voice identification system against generated voice with Gaussian Mixture model

Travel Agent Chatbot

Course project

Sep. 2017 - Dec. 2017

  • Built a chatbot on LINE messenger using Java Spring Boot, JDBC and DialogFlow
  • Implemented a database management system with Django
  • Practiced agile with pair programming and weekly sprint planning with Trello

Low-Rank and Sparsity Reconstruction in Data Science

Undergraduate Research Opportunity Program

Sep. 2016 - Dec. 2016

  • Perform literature reviews on sparse coding and dictionary learning
  • Implemented text recognition with K-SVD on MatLab

Competition

BigDatathon, HKUST x Radica

First runner-up, Best Entrepreneur Award

Dec. 2017

  • Prototyped a ranking system for restaurants in Hong Kong based on sentiment analysis
  • Extracted comments on restaurants from Instagram with Selenium
  • Performed sentiment analysis on Instagram posts with Stanford CoreNLP Projects

CodeIT Suisse, Credit Suisse

The 5th team

Sep. 2019

  • A coding competition on algorithms and time-series analysis

Hobbies and interests

Apart from machine learning and software engineering, I am also interested in:

  • Gaming
  • Manga and Anime