Hey! I’m searching for a ML-based project we can build during this class that comes from an early startup or non-profit. If you’re working on a project that can be a good fit, let me know!
Preface: teaching at Harbour Space
This summer I had a great time teaching a class about solving Kaggle competitions for Harbour.Space in Barcelona. We’ve been solving couple of Kaggle competitions for the first two weeks and on the third we built an application that can be your audio guide in art museums.
I like such challenges to be a part of education process, and judging by my experience, this is one of the best learning experiences you can ever give to students in engineering disciplines. Building something real is way more challenging and rewarding than listening to presentations full of theory and working on your homework afterwards. I felt like this when I studied at my university, and I’m seeing the same kind of response from students each time I teach something.
Building real stuff is hard, especially if you’re just a student and have 4 days to do it. For this particular reason I find it awesome that we manage to release MVP. I really appreciated determination of students in that class - that made things possible.
Reflecting on students involvement and feedback, I decided to make some adjustments to the next class I’m going to teach. That idea only became stronger when one of my students got a nice job offer after describing our project at interview (my congrats!).
“Building ML-powered applications” class
Thanks to Harbour Space, I got invited to teach another class this October in Bangkok. My intention was to extend the project for all three weeks and incorporate other steps of working on a product. Citing the class description (yet to be published):
In three weeks, we’re going to build an application that we and other people can use. This will include some amount of software development, product thinking, and machine learning. ML will be the backbone of our product, SE will be the means to make it work, and product thinking will lead us through. We’ll start with an idea, outline user scenarios an app should fulfill, proceed with system design, and dive into implementation. We’ll use the app ourselves, collect and analyze our feedback, work on improving the user experience, and finally publish this to the outside world to get real feedback and reflect on our experience. This class will help you understand how complex systems are built and will be part of your portfolio you can showcase and reason about.
It can be noted that I’m making couple of important assumptions about the project:
- We’re going to build a product. Building products is awesome. Making something that solves a problem you can encounter yourself gives you a great feeling. Learning this user-problem-oriented mindset is a great skill for ML folks.
- We’re going to use some software engineering. This is almost a requirement for such projects, but fortunately a very handy one: many ML folks I know would like to learn more SE and DevOps to feel more empowered in their work. This project allows us to touch on these topics in a natural way.
This outlines the project’s form, but it’s lacking more substantial detail. It can be pretty much anything, so I figured out I need to write down more detailed list of criteria:
Hard criteria
- It should be something like Telegram bot or Streamlit app. Most students are starting their ML career and they are no developers.
- There should be enough ML in backend. In the end, the class is about building ML-powered application.
- There is a real problem and a clear scenario how people use the app to solve it. What’s important, students could be users themselves.
Soft criteria
- Better if it will be stateless. Managing stateful applications adds a big level of complexity on top, and this is not something junior ML can manage.
- We can use pretrained models. This way we can make something working first helps to move fast. We can spend time finetuning and improving things later.
Looking for a project for the class
Retrospectively thinking, project we worked on for a week in Barcelona (https://github.com/aguschin/art-guide) fits this list pretty well.
Audioguide that helps you learn some information about the painting has everything from that: it can be a telegram bot, there are several ML models (CV model to get embeddings, text summarization model, Text2Audio model). You can take pretrained models as a first step. It can be stateless.
For the upcoming class in Bangkok it would be especially cool to work on a project like this that comes from an early startup to make good use of our work besides just learning and making a case for portfolio. Class will start on 2nd of October. If you have some ideas, make sure you reach me out!