Our AI Hackathon Chronicle
Hackathons encapsulate the essence of what makes technology exciting: innovation, teamwork, and the thrill of bringing a concept to life against the clock. This year, we embarked on a remarkable four-day journey, centered around Generative AI.
This post offers a glimpse into our Hackathon adventure. We will delve into the ideation and creation of Papyrus, our project, and shed light on our experiences working with LLMs (Large Language Models). Join us as we journey back to the beating heart of innovation and technological discovery.
5th of December - Call to Adventure
On the 5th of December we all received an email talking about a new initiative Premium Minds was organizing. "A Hackathon to explore the potential of Generative AI [...], a technology which has the potential to change the world".
For those unaware a hackathon is
Definition Hackathon a social coding event that brings computer programmers and other interested people together to improve upon or build a new software program
This event would focus specifically on Generative AI, requiring every project to incorporate an LLM.
What is generative AI? Generative AI refers to deep-learning models that can generate high-quality text, images, and other content based on the data they were trained on.
What is a large language model (LLM)? A large language model (LLM) is a deep learning algorithm that can perform a variety of natural language processing (NLP) tasks. [...] Large language models are also referred to as neural networks (NNs), which are computing systems inspired by the human brain. These neural networks work using a network of nodes that are layered, much like neurons.
These are the technologies behind the ever famous ChatGPT
For someone passionate about such events (having participated in a hackathon and over a dozen game jams, similar to hackathons, but for games) the idea picked my interest. Hackathons are events where you learn (A LOT), due to the use of new technologies and the amount of problems you have to solve in such a short time frame. They also foster new connections with people, thanks to a lot of teamwork and inter-team cooperation. However, it was not completely love at first sight for me, as I had worked with LLMs and Machine Learning in college and hadn't had the greatest of times. And so, after the first announcement, I was a bit skeptical, but curious to see where this road would take us.
6th December to 28th February - Road up to the Start
The event was scheduled for the 29th of February to the 1st of March, spanning Thursday to Sunday. Participants could fully engage in the Hackathon on Thursday and Friday without work responsibilities, as all clients and teams were informed. And no one was obliged to stay for the weekend, but they were welcomed to. All of this was already a big incentive to participate, moreover, the organization made sure to organize related talks and moments leading up to the Hackathon. For example, an ideation dynamic to help with generating ideas, or a presentation about the impact of AI assistants in collaborative tasks.
My initial skepticism waned after attending some of these talks and the intensive nagging of my future teammates. Eventually, I was convinced to participate, and we signed up as a team: Silva, Diogo, Guerra and me/myself/I (Eduardo).
Honing in on an Idea
For this hackathon, the goal was for each team to have a project idea before the beginning of the hackathon. And so we got together a few days before the start and had a brainstorming session. We started by listing a few problems we had in our daily lives. Then tried to figure out how AI could help in those cases. Many of the issues raised centered around the theme of documentation, plus the possibility of solving these problems using AI sounded plausible and interesting, so we decided to join all of them under one banner. … Papyrus
We ended up settling down with an assistant for writing documentation. For its interface we decided to go for a plugin for Obsidian, a tool all of us already use in our daily lives.
Thursday, 29th February - Get ready, set, ... GO
Thirteen teams enrolled in the event, more than 40 people were eager to learn and have fun.
The first day kicked off with advice on staying healthy throughout the hackathon, emphasizing proper rest, nutrition, and caution with energy drinks. There was also some advice on how to structure and direct our attention, always keeping in mind the 80-20 rule.
What is the 80-20 Rule? 80% of outcomes comes from 20% of causes.
Then, after an awesome breakfast, everyone threw themselves at their own projects, hacking away. From the first minute the organization of the event was impeccable. Always making sure all the participants had their needs met. Being it food restrictions or wanting any specific snacks.
We had a particularly slow start, we had previously discussed our intentions of spending the weekend and thus tried to approach the event more like a marathon than a sprint. My three teammates started working on the groundwork for our lib which would communicate with the LLM models (which we named brainiac), whilst I explored how one would go about creating a plugin for Obsidian and how different UI components could be created and managed.
Friday, 1st March - "Pivot!"
After spending the night in the office, we resumed work. The day was intense, culminating in afternoon evaluations where 5 of the 6 finalists would be selected. The sixth finalist would be chosen on Sunday on a second round of evaluations.
Half through the day we realized that we had to remake our lib, brainiac, from the beginning. We had been constructing it with Python, however, the plugin was built with javascript, and trying to connect the two was much more of a nightmare that we anticipated. And so, we had to remake the whole lib, but now in javascript.
Evaluations
And so, 17:30 rolled around, the evaluations began. Ours was a bit lackluster as we only had half of a feature implemented, our mind was already settled on the second round on Sunday.
Full Force on Frontend
At the end of the day, most of brainiac was rebuilt, now in javascript. And thus, after a small presentation explaining my discoveries regarding the process of creating a plugin for Obsidian, we directed our full attention to developing the frontend of our tool.
That night, all of us who stayed late watched a movie, Tetris (great movie by the way).
Saturday, 2nd March - Fun day, longer night
This day was as chill a deving day as they come. The number of people attending the event physically was very reduced during the weekend. While we coded we all listen to music, a few interviews, Youtube videos and a F1 race. It was awesome, all of us working on our projects while having fun.
The day went on, some people came, others left, and we kept working. Our goal for this day, with the final evaluation looming Sunday morning, was to have a demo-ready project, so we could also decide what additional features and fixes we might want to do.
And so, we kept working on our plugin until around 2:30, where we demoed it to ourselves and made an extensive list of bugs and improvements we wanted. We planned to go to sleep after finishing the demo, but when we finally completed the listing of future tasks we had a surge of energy and decided to keep going, crossing away task after task after task. "Lets focus on the small wins" was our motto, as we focused on little bugs and improvements, like "move button a few inches up". And thus, we kept working until the ratio of "amount of tasks we were solving" and the "amount of bugs we were creating due to sleep deprivation" reached its tipping point. The clock marked 5:30 when we all finally shut our computers and hit the sack.
Sunday, 3rd of March - Our Last Chance
The morning rolled around, we woke up with only a few hours of sleep and got ready for our presentation. Three teams enrolled. We did our best and ... were picked! And so Papyrus was on to the finals!!
The rest of the day was mostly uneventful regarding development of Papyrus, as the whole team was incredibly tired. We had an amazing lunch. A few other participants and non-participants also came to attend the second round of evaluations in person, so we all decided to order sushi and, I kid you not, we may have ordered in the ball park of 300 sushi pieces! After that, a few of us went out for a quick drink to celebrate and discuss the ups and downs of the event.
Monday, 4th of March - The Finals
On Monday there were only the presentations, no new developments as the Hackathon had officially ended on the 3rd of March. Before lunch, all six teams presented their projects, 5 minutes each.
The finalists were:
- Apanha Peluches
- NatAIsha
- RoleAId
- Papyrus
- 50 Meeting Minds
- EstimAi
After engaging presentations, sandwiches were served while the jury deliberated.
And the winner was Papyrus!!!!
Papyrus - Final Result
In the end, we were able to implement the following features:
- A grammar corrector, which suggests a new version of the document without orthographic and grammatical errors.
- An analyzer of the document structure, which looks for flaws that could be improved. Then the user can select which to tackle and the assistant asks questions regarding each one. At the end, it suggests a new version of the document with all the improvements.
- A command which turns a document into a template. And another which formats a document into a given template.
- One which scans the document looking for factual errors and contradictions
- And finally, another which creates a chat with a defined persona, there are a few pre-defined, but the user can create their custom ones. The chat has as context the document in question, and thus, the user can ask opinions on how to improve their doc.
After the Hackathon
We finished the hackathon with a plugin we would all actually use, which was our goal to begin with, and excited to keep improving and adding features. We got green lit to make it into an open source project and publish Papyrus as a community plugin, and thus we are now on a journey of cleaning up the messy code from the hackathon and fixing any bugs we find.
Conclusions
Attending the Hackathon was more than just an adventure into the world of AI. It was a comprehensive learning experience, a four-day immersion into the thrills of creativity, innovation and teamwork, and a testament to the limitless potential of technology.
Our journey from conceptualization to realization was filled with challenges, requiring us to explore new technologies and skills, delve into the nuances of Obsidian, and even switch from Python to Javascript halfway through development!
The marathon-like nature of the Hackathon opened our eyes to the importance of flexibility, emphasizing that adaptability is often key in a fast-paced and unpredictable tech landscape. It underscored the significance of small wins, revealing how they fuel motivation and create a rhythm of productivity. Furthermore, the Hackathon championed the spirit of collaboration and validated the belief that our shared strengths could bring a complex project to fruition.
As we reminisce about the event and look to the road ahead, one thing remains clear. Our experience was not a singular event frozen in time; it marked the beginning of many adventures. We are, and will remain, hungry for more - more knowledge, more challenges, and more opportunities to influence the world, one innovative tech solution at a time.