With the advent of the ML era, machines are capable of learning patterns from data and providing intelligent insights that boost business value in various domains. Each model requires a training algorithm and a sizable dataset to learn from. It is cumbersome for companies to train their own models. This is where Modzy comes in. Modzy provides on-demand execution of various machine learning models. This provides end-users with a scalable and reliable backend for their inference tasks. We decided to go one step further. What if Modzy could be used to run entire workflows? With one model feeding into the next, what if we can create a chain of models that perform highly specialized functionality? With thousands of models to choose from, unleash your creativity with unlimited possibilities. ModzyFlow allows you to create and build AI workflows at web scale.
What it does
ModzyFlow is a platform that allows anyone to build Machine Learning Model Pipelines with ease and deploy them at the click of a button. One can visually inspect and understand how data and inferences flow through the workflow. All this without having to write a single line of code! Using ModzyFlow, users can drag-and-drop various ML models available through Modzy, pipe them to one another and view the output obtained at any point in the flow. From a scalability perspective, users can add any number of models to the flow and Modzy’s scalable backend keeps the flows running smoothly. We even support image-based inputs for the workflows.
How we built it
For the frontend, we used React and a library called ReactFlow that allowed us to easily build a user interface involving nodes and connections. It also helped us define custom Node Types for the models, inputs and outputs. The UI allows for a drag-and-drop mechanism to place and connect models to each other. Flows can be saved and loaded to/from the backend. Once a “flow” is created, it is serialized and sent to the backend. For the backend, we deployed a Flask server backed by Modzy’s Python SDK. The server receives the flow and parses it as a Directed Graph. We essentially perform a topological sort on the graph and execute the nodes of the graph in a safe order. Once the flow is complete, all the values of the output nodes are sent to the frontend where it can be displayed to the user.
Challenges we ran into
Keeping the backend code generic in order to run various models and transform outputs of one model to feed as input to another model. Additionally, customizing ReactFlow and integrating it with our solution was quite a challenge as well.
Accomplishments that we're proud of
By figuring out how to pipe outputs to inputs in different models, we understood Modzy’s model landscape and how to use them. The scalability and potential of ModzyFlow is incredible and can be used to solve any business use case.
What we learned
We learned how to build a workflow using ReactFlow and integrate Modzy API into it. While brainstorming ideas, we learned the importance of having such tools to solve complex and vast variety of problems with ease.
What's next for ModzyFlow
The next steps for ModzyFlow would include adding more models as they come in and make the solution scalable for various input types.