Have you ever watched an episode of Rick and Morty and wished you could experience Rick's sarcasm on a more personal level? Have you ever watched Oprah Winfrey interview someone and wished that that person was you? WabiSabi aims at making all of that come true.
We wanted to build an NLP project and we wanted it to be useful to society, but also fun. We also wanted to build something that has not really been well done before and do it using state-of-the-art technology.
Initially, we thought about making a sarcasm detector or sarcastic phrase generator. But we didn't see how that would be useful to society. Hence, we thought of a sarcastic pep talk generator. Generating paragraphs for the user to read did not however seem interactive enough. It was then that the idea of a smart inspirational chatbot was born.
What it does
Using ConvAI technology, we build personalities of different famous people through their quotes and speeches. These personalities are then used to build a chatbot that you can talk to about your hopes, dreams and worries or have a casual conversation with. WabiSabi has been created with people's wellbeing in mind. Hence, the main focus of our chatbot is to offer pep talks and advice to users when they're feeling down. For instance, if you're feeling anxious or stressed, you could chat with the Oprah Winfrey WabiSabi (doprah).
How we built it
We used a state-of-the-art conversational AI with Transfer Learning based on the GPT-2 model. The model has been fine-tuned such that it takes three inputs instead of the one prompt input. It takes a persona, a history and the tokens of output sentences (which is the words generated so far in a given answer) as inputs. It uses word, sequence and position embeddings (all added together) so that it can distinguish between the three inputs correctly.
We modified the personality so that by default it has Oprah Winfrey quotes. We then randomly sampled subsets of the quotes and tested the model generated by each sample. This helped us hand pick the best Oprah.
We also constructed a proper user interface that enables chatting with WabiSabi.
We finally added a feature which enables users to choose the person they would like to chat with. To that end, we either fetch the person's quotes from Wikiquotes or a short backstory from Wikipedia and construct the persona using them.
Challenges we ran into
- Processing power and memory limitations
- Modifying the code, incorporating our changes into prewritten code
- Integrating the backend with the frontend consistently
- Choosing the right quotes, seeing why some replies given by the bot were not on point
Accomplishments we're proud of
- Being able to create a consistent finished product
- Being able to come up with an interesting concept and delivering a product that incorporates it using state-of-the-art NLP technology
What we learned
- Fine-tuning state-of-the-art massive NLP model
- First time doing an NLP project
- Integrating an interactive UI in a Machine Learning application
- Optimizing the model further
- More systematic way of detecting good quotes
- Building a proper dataset with famous people or authors and their inspirational quotes, using it to optimize the model
Based on the NeurIPS CAI workshop paper