How to Build a Powerful No-code Machine Learning Platform
The Tech Behind Comparing Apples to Oranges
Google. Microsoft. Amazon.
Each built no-code platforms for machine learning: Cloud AutoML, Azure Machine Learning, and SageMaker. I wanted to build one to rival them, but the challenge scared me. Years in frontend and backend development. Millions of dollars in funding. Big teams of ML experts and more teams of web developers. The platforms needed time, money, and people to make. I didn't have years, big money, or teams of people. I had a Python script from a project I abandoned, a laptop, and a text editor. Don't even try.
The Python script from my “Uber for trash” used Pytorch and took a list of image names and exported a model trained on them. A starting point, but not enough. AutoML offers image, text, and video ML services. Azure ML offers automated ML, generative AI, and AI infrastructure. SageMaker offers similar services with AWS incorporated. Did I need to build that much? Can I compete with bigger platforms? Can I complete the project if it gets too big? Debates between working longer and building a smaller project occupied me. First, I thought, finish a minimum viable product.
A plan might finish this project. Without one, the product won't do what it should. To build the platform, maybe split it up into two: the frontend and the backend. The frontend needs an intuitive interface. The backend needed ML infrastructure. Build both in the same code base? Development might slow down. Split them up. Otherwise, a change to one might affect the other, and don't get me started on debugging. A Next.js app for the frontend and a Flask API for the backend followed soon after.
ML challenges non-technical people. My platform provides an ML service. No way to succeed without welcoming users. A design system simplified frontend development. Built in two weeks. Header, footer, and content templates followed. They'll save time for navigation and development. Informational web pages educate users on the website. Developing the ML platform proved the biggest task. A frontend and a backend.
The ML platform takes a list, creates an image classifier, and prepares it. Could make it the whole website, but seems like overkill. My plan changed. Build it in a separate “demo” page. Implement it as an app. Might ease development. Next, don't move the platform to a different website. Might confuse users. A tutorial for newcomers simplifies the app. The tutorial has two forms separated by a loading screen. The first form takes a list, which the user submits to the backend. A progress bar opens and displays the progress. The last form lets users test the app by submitting a picture.
How do I handle the generation and management of image classifiers? Implement an API. It simplifies communication between the frontend and backend. What should the API let users do? Keep it simple and let users create them and nothing else. More functionality will burden users. My Python script transformed into a Flask API with image classifier creation, testing, and deletion endpoints. Using both frontend and backend together proved simple. I built the app in half a year.
I learned that efficient software development needs planning. Without planning to develop two code bases, use my existing script, and separate information and the platform, work would have lasted months more. I learned the importance of cutting unnecessary functionality. Implementing a full platform similar to those that currently exist would have slowed development to a halt. Focusing on implementation of one type of machine learning helped optimize development.
License #
This work is licensed under CC BY-ND 4.0.