AI/ML Projects


Generative AI

LLM Copilot to provide Natural Language support for the WSO2 Mobile app (Software Engineer - Machine Learning, AI & Research Team, WSO2 LLC)

  • Worked on adding an LLM Copilot for the WSO2 Mobile app that can provide natural language based interaction. The copilot agent is capable of understanding the user’s intent and performing the required actions.

  • For example, the user can ask the agent via voice or text to “Show me the sales report for the last month” and the agent will understand the user’s intent and show the sales report for the last month.

  • The Ballerina Agent library uses the OpenAI GPT3 API to understand the user’s intent and then it invokes the REST APIs with the required parameters extracted from the user’s intent to perform the required actions and return the results to the user in a human-readable conversational format to provide a seemless chat experience.

  • Skills: Ballerina, LLMs, OpenAI GPT3 APIs, Azure OpenAI, React, OAuth2, Dockerization, Cloud Deployment, Full stack development.

Retrieval Augmented Generation (RAG) based chat assistant for WSO2 Choreo (Software Engineer - Machine Learning, AI & Research Team, WSO2 LLC)

  • Co-developed a GPT-3 Davinci powered chat assistant which uses WSO2 Choreo Documentation as a knowledge base to answer user queries and is also capable of citing the sources and grounding the answer based on facts and avoiding hallucinations.
  • Used a Vector Database called Weaviate to store the documents as small chunks and used Prompt Engineering to guide the models in giving a conversational and factual chat experience.
  • Skills: Python, OpenAI GPT3 APIs, Weaviate, Vector Database, Prompt Engineering, Chatbot, Full stack development, React, OAuth2, Dockerization, Cloud Deployment

Computer Vision

Human Affect and Behavior Based Threat Predication (Final Year Project, University of Moratuwa, Sri Lanka)

  • Developed a novel Computer Vision approach that incorporates multiple aspects in a video, such as human behaviors and facial emotions, to achieve a 5% improvement in accuracy in identifying threatening behaviors when compared to state-of-the-art consumer video surveillance algorithms.
  • Skills: Computer Vision, Deep Learning, Supervised Learning, Unsupervised Learning, YOLO, ResNet, GSOMs, Python, OpenCV, TensorFlow, Keras, PyTorch, NumPy, Pandas, Matplotlib, Jupyter Notebook, Google Colab, Git, Linux, Bash, Docker, GCP

Human behavior detection for video surveillance (Final Year Project, University of Moratuwa, Sri Lanka)

  • Created a pipeline that can detect human behaviors in a video and classify them into different categories such as jumping, fighting, running, etc.
  • Used a preprocessing technique to extract the human skeleton based representation from the video and then used a novel ResNet+UNet approach to classify the behaviors.
  • Skills: Computer Vision, Deep Learning, Unsupervised Learning, ResNet, UNet, Autoencoders, Python, Keras, NumPy, Pandas, Matplotlib, Jupyter Notebook

Facial expression detection (Final Year Project, University of Moratuwa, Sri Lanka)

  • Implemented a facial expression detection pipeline that can detect the facial expressions of a person in a video and classify them into different categories such as happy, sad, angry, and so on.
  • Used a facial contour mapping to identify the facial landmarks and then used a novel ResNet based auto encoder approach to classify the facial expressions in an unsupervised manner.
  • Skills: Computer Vision, Deep Learning, Unsupervised Learning, ResNet, Autoencoders, Python, Keras, NumPy, Pandas, Matplotlib, Jupyter Notebook


Natural Language Processing

Natural Language API invocation support for WSO2 Internal APIs (Software Engineer - Machine Learning), AI & Research Team, WSO2 LLC)

  • Used the Ballerina Agent library to tryout the numerous use cases and to understand the capabilities of the library using multiple internal APIs of WSO2.
  • The Agent library is an improved version of Langchain and it focuses on seamless API invocations using natural language.
  • I have closely worked with improving the library to support the use cases of WSO2 APIs.

  • Skills: Ballerina, LLMs, OpenAI GPT3 APIs, Azure OpenAI

Low code suggestion/Connector suggestion using LSTMs and LLMs (Software Engineer - Machine Learning), AI & Research Team, WSO2 LLC)

  • Solely responsible for the entire ML lifecycle of “Next low code suggestions” feature for a WSO2 product called Choreo where I worked on data collection, preprocessing, feature extraction, model training, deployment all the way to talking with relevant stake holders, coming up with highly scalable architecture design, project planning and gantt charts.
  • Developed a parser that can extract relevant information from the raw data comprising of Ballerina Syntax Trees from the users’ code and applied various feature engineering techniques to extract valuable features from the data.
  • Explored various ways to utilize the data by modelling as a sequence to sequence problem and tried out various deep learning models like LSTMs and LLMs like GPT-3 and GPT3.5 to predict the next possible low code element that the user might be interested in adding.

  • Skills: Python, Keras, TensorFlow, Deep Learning, Natural Language Processing, LSTMs, LLMs, GPT3, Data Preprocessing, Feature Engineering, Data Visualization, Data Analysis, Data Collection, Data Labeling, Data Augmentation, Data Cleaning, Data Wrangling, Exploratory Data Analysis (EDA), Data Transformation, Data Storage, Unit Testing, Integration Testing, Model Training, Model Evaluation, Model Deployment

Machine Learning and Data Science

New classifier using GSOM algorithm (Final Year Project, University of Moratuwa, Sri Lanka)

  • Created a new unsupervised state-of-the-art classifier that uses the Growing Self Organizing Maps (GSOM) algorithm to learn and preserve the topology of the higher dimensional data while giving a visual clustering and an efficient classification performance.
  • Skills: Python, Unsupervised Learning, GSOMs, NumPy, Pandas gsom_output

Anomaly detection in Industrial IoT settings (Final Year Project, University of Moratuwa, Sri Lanka)

  • Experimented on Anomaly detection in Industrial IoT environments using a modified version Geometric SMOTE algorithm and a novel GSOM classifier which performs on par with the state-of-the-art models while still not requiring labels for training.
  • Skills: Python, Unsupervised Learning, GSOMs, SMOTE, NumPy, Pandas

Paper

Multi-Adversarial Agent Pathfinding with Obstacles

  • Developed a planning algorithm that can help an agent to navigate the environment, which has randomly moving obstacles to reach a goal position while avoiding the adversarial agents trying to prevent it from reaching the goal.
  • This problem has several practical applications including in autonomous driving, games, and military operations where a single agent has to avoid adversaries and reach a particular destination.
    • Skills: Python, Monte Carlo Tree Search (MCTS), Artificial Intelligence, Game Theory

Ride Fare Estimation for a Ride Hailing Company (University of Moratuwa, Sri Lanka)

  • Experimented with various Data Science techniques and Machine Learning models to predict the ride fare given a set of information about the ride such as GPS coordinates, time of the day, weather, etc.
  • Skills: Python, EDA, XGBoost, Pandas, NumPy, Matplotlib, Scikit-learn, Jupyter Notebook

Clustering of single cell RNA sequences (University of Moratuwa, Sri Lanka)

  • Worked with an efficient unsupervised clustering algorithm that uses GSOM classifier to identify different types of cells from given single cell RNA sequences.
    • Skills: Python, Bioinformatics, Genomics, Unsupervised Learning, GSOMs, NumPy gsom_output