Inspiration:

You connect most closely to situations we face in real life, as international students who have learnt to find our way around in a new place, understand the overwhelming challenges of new culture, academics and lifestyle. Hence, we try to address a few of these in this solution.

What it does

Our solution has three major use cases: We built an interactive application to help match students with activities based on campus by using the power of large language models and natural language understanding. We take little information from the user and try to advise on the best options and explore as much as they can.

Our application also helps students by acting as a virtual academic advisor, by understanding their aspirations and suggesting courses based on their career goals.

It adds-on, by being a personal class assistant, keeping track of classes, helping keep track of quizzes, assignments and submissions through a natural and interactive manner.

How we built it:

To start with, here are all the tools and applications we used for our product - We used AWS sage maker to train/finetune and deploy our Machine Learning models and S3 buckets to store NLP embeddings extracted from our models. We relied on AWS Lambda’s serverless functions to interact with the models deployed on Sagemaker, where we made the model’s endpoints accessible through Jumpstart studio. In order to make these lambda functions accessible we used AWS API Gateway to create API’s, Resources, Methods and deploy them. We used AWS EC2 as our hub to interact with all of our resources - Hitting the Gateway API’s, Reading and writing to S3 buckets and running inference on Sagemaker model’s through our Lambda functions. We used Selenium and Beautifulsoup to scrape data from University websites to create our dataset.

We used a Generative Pretrained Transformer with 6B training parameters, to extract embeddings from data. We used a fp16 optimised model for faster inference time and lesser compute overload. We stored these embedding information in S3 and accessed them for comparison. We chose the GPT series of models for feature creation because of the diversity of their pre-trained data. It returned a 4096-dimensional embedding which we then used for semantic search. Semantic search was conducted using Facebook’s FAISS algorithm to find inter dimensional distance between two given embeddings.

We also used a BERT large model with case sensitivity for extractive question answering over a corpus of data which we use to answer questions from the user.

We developed our UI using Angular and NES CSS frame work for 8-bit UI theme and dockerized it and used AWS ECR private repository to store of docker image and deployed the application on ECS for scalability.

We used Amazon DocumentDB to store the user information and flask server running on AWS EC2 to handle the database.

Challenges we ran into

Gettings hands-on experience on AWS as a beginner was a bit challenging. We faced issues installing python packages on AWS Lambda. Building docker image on a mac book(arm64) and deploying it on a amd64 processor was challenging.

Accomplishments that we're proud of

We built a Machine learning models that can suggest on going events to students based on their interests, advice courses that are being offered at George Mason University based on their future goals, Can inform student queries about their classes information.

What we learned

How to use AWS CLI and AWS ECR to host our private docker repository, and use AWS ECS to deploy our docker containers for scalability. We also get to explore AWS sagemaker where we could use pre-built ML models. Learnt to use AWS lambda in coordination with API-Gateway for small computations. We got to experience the capability and computation power of AWS EC2 instance with Amazon Linux AMI.

What's next for Mason Mate

We can integrate our authentication module with patriot web authentication so that users can use our product seamlessly, get user classes information from patriot web to answer their queries about their classes.

Share this project:

Updates