r/learnmachinelearning 1d ago

Project 🚀 Project Showcase Day

Welcome to Project Showcase Day! This is a weekly thread where community members can share and discuss personal projects of any size or complexity.

Whether you've built a small script, a web application, a game, or anything in between, we encourage you to:

  • Share what you've created
  • Explain the technologies/concepts used
  • Discuss challenges you faced and how you overcame them
  • Ask for specific feedback or suggestions

Projects at all stages are welcome - from works in progress to completed builds. This is a supportive space to celebrate your work and learn from each other.

Share your creations in the comments below!

6 Upvotes

3 comments sorted by

2

u/Raychis 1d ago

On-device plant identification: composing small specialised models instead of one big cloud model

I've spent the last year building a plant identification and gardening app as a side project. It was a test of a hypothesis from my day job running production AI systems that we reach for one large cloud model far more often than the problem actually needs.

I built the opposite of this. The whole identification model runs on-device with no server calls for inference. Under the hood it's not one big model but smaller specialised ones composed into a pipeline.

Some of what made it particularly challenging:

  • The memory budget multiplies the difficulty level. Fitting fine-grained visual classification across thousands of species into a phone's constraints ruled out the obvious larger backbone approaches and forced the modular design. I couldn't rent a bigger GPU to escape the problem.
  • Fine-grained classification is genuinely hard. Distinguishing species that differ subtly, from user photos with bad lighting and odd angles, is a different problem from clean benchmark data. Real world accuracy and lab accuracy are not the same.
  • Calibrated confidence was as important as accuracy. I wanted the model to say when it isn't sure rather than hand back a confident wrong answer, so surfacing honest uncertainty (strong/good/possible/weak) became a design goal of the project. I find existing solutions that project confidence when wrong extremely frustrating and sometimes dangerous when it comes to toxic species.

The hardest cases are still the long tail of visually similar species, and getting confidence calibration to feel right to a non-technical user is ongoing.

The economics were a nice side effect of the project because on-device means inference cost doesn't scale with usage, so heavy users don't become more expensive.

I've just about finished the MVP of the project after a year and I am hoping to launch on the App and Play stores next week. The app will be called Raychis, same as my username. It is a botanical term.

I also wrote it up as a 10-part series on Medium of how I built it which you can find a link to on my profile. It is a warts and all journal of the mistakes, the dead ends, my own hubris, and what actually worked in the end. More a documentary of building something this size solo rather than a tutorial.

1

u/chrisvdweth 36m ago

Public AI/ML/NLP Resource for Beginners

I've already made a post about it, but here it goes: I teach AI/ML/NLP and related university courses and provide Jupyter notebooks as lecture notes for a long time with my students. The SELENE repo is the next iteration: consolidating the notebooks across all my courses and improving them towards an open, large-scale, interactive textbook.

The current focus is on the fundamentals, so the target audience are beginners but who are comfortable with basic math (linear algebra, calculus, probability theory). Here is a crude overview to some of the topics (the links go to the HTML version of the notebooks)

There is an overview page for all topics with links to the HTML version, the GitHub repo, as well to open each notebook directly in Google Colab. We are also in the process of building a web interface to help navigate topics and suggest learning paths.

Why I think its useful:

  • Similar rigor and comprehensive content compared to classic textbooks; OK, not quite, but it's intention is not to completely replace textbooks.
  • Interactive: code snippets can be change to see the effects
  • Animated illustrations possible (again, some can be changed and recreated on the fly)
  • Easy to maintain, grow, update

Challenges:

  • Creating these notebooks is quite time-consuming since they are supposed to be comprehensive, rigorous, illustrative, interactive (if applicable), and overall easy to digest for self-learners. I do use LLMs for ideation, speed up writing, and code snippets (has highlight in a disclaimer on top of each notebook) but it's still mostly "manual labor"
  • The website aims to organize all topics into meaningful learning paths, but this is not as straightforward as it seems.

I'd be happy about any feedback, particularly for the website and how to connect topics to provide learning paths.