Week 14 - First Week of Presentations

Project Presentations

This week in class, we began our presentations showcasing each group’s work on their open source project. This week we had two presentations on Wednesday, and our group was one of them!

Our Presentation

Our presentation (on Preswald) went well! I won’t rehash the whole presentation here, but here’s the gist: First we talked about Preswald’s goal of making clean data visualization accessible to people with limited frontend/design experience. A good analogy we came up with is that Preswald is like dashboard design for someone who has only ever used a Jupyter Notebook. We then moved on our interactions with the community, which had some pretty big highs and pretty big lows. The maintainers/founders of Preswald were always responsive and helpful, but the rest of the community was pretty unhelpful, and sometimes downright adversarial when we had to race to beat them to a PR. Next we talked about our favorite contributions. I talked about the chat-switching feature I added to the AI chat widget. This wasn’t a particularly technical feature, but it taught me a lot about the software design process. I spent a lot of time trying to hard-code this feature into the existing AI chat widget, but found myself frustrated that I was breaking the modularity of the widget by adding this complexity to it. After prowling around the docs, I actually found that there was another, existing widget that cleanly solved this issue without requiring more code- I was then able to resolve the issue by proving new instructions in the documentation, rather than actually adding code, which I thought was a pretty cool story! We then talked about our biggest challenges, our best moments, and our overall thoughts on the project. I had a great time working on Preswald, and learned a lot about coding and the software workflow. I do wish the community culture was a little more friendly, though. I think our time preparing the presentation paid off- thanks to our slides and our practice run of the presentation, things went off smoothly. If you’re curious to hear more, our presentation slides can be found on our wiki.

Huggingface

The other presentation of the week was from the group who worked on Huggingface, the machine learning/transformers library. I’ve actually used Huggingface before in some of my data science classes, so I was pretty excited to hear about their work! This group spent most of their time talking about their contributions. I was pretty impressed at the work they were able to do despite admitting that most of their group had pretty limited machine learning experience! One contribution that stuck out to me was their work on the checkpoint timer for model training. Put simply, machine learning models train by iterating over the data in “batches”. This can take a very long time, and so its smart to set up your code to save your model state every once in a while so you don’t start from zero in case something goes wrong. Huggingface’s solution to this was to add a checkpoint timer that would save the model every $n$ batches. This, though, can be problematic, as the time it takes to complete a batch can vary wildly between hardware. To solve this, the Huggingface group implemented another option for model checkpointing: a time based one. This way, the user can precisely define how often they want their model to save, regardless of the number of batches that have been processed. I think this is a great addition to the project, and it was really exciting to see this group make such a substantial contribution to such a complex library. Their work has inspired me to check out Huggingface to see if there are any contributions I can make! Maybe I’ll report back here with an update on that!

Next Week!

Overall, I was really impressed with how presentations went this week. It was nice to get mine out of the way on the first day, too! I’m really looking forward to relaxing a bit next week and enjoying the presentations from the other groups.

Written before or on April 27, 2025