Skip to content

Rapid and easy prototyping, design, and deployment of ML models coding with graphical blocks. IgnitionHacks 2024.

License

Notifications You must be signed in to change notification settings

supreme-gg-gg/block-ml

Repository files navigation

Block ML -- build neural nets with blocks

Machine Learning shouldn't be limited to experienced software engineers, computer science majors, or other elites. It should be accessible to everyone, regardless of their background or knowledge in CS. Our goal is to empower individuals to design, build, and deploy ML models, enabling them to solve problems with creativity and innovation. This project is a prototype web app that caters to both researchers and business professionals seeking quick, low-cost ML solutions, and students eager to explore AI through a Scratch-like block programming interface. We aim to ignite passion for AI and technology across all levels of expertise.

Features

View demo photo

  • Drag and drop blocks to build powerful neural networks

    • Built-in functionalities to load and process data
    • A variety of analytics to choose from
    • Customizable parameter and architecture to suit your needs
  • Automatic translation and supported helper-functions

    • Generated Jupyter Notebook can be easily downloaded
    • Integrates natively with other tensoflow applications
    • Built on NumPy, Pandas, Scikit-learn, Tensorflow Keras
    • Works with Google Colab for powerful and fast execution
  • Multitude of output options for deployment or application

    • After training immediately make prediction of sample set
    • Export model / load trained model for future usage
    • Scalable with cloud computing technologies

Guide to use

Our prototype web-app is built for quick deployment in mind so everyone can visualize and experiment with our idea! It takes less than 5 minutes to have the app running! Here are the steps after cloning the repo:

Setup environment

Enable npm and dependent modules (as specified in package.json):

npm install
npx webpack
node server.js

BlockML Editor

After opening the localhost address on your browser, select any of the Block ML workspaces available, four in total. Different blocks are presented on the menu bar to the left. Simply drag and drop them onto the editor and the code translation can be viewed live in the output text area below.

TIP: You can quit the workspace and save your work in progress! This allows you to work on up to 4 different programs in one session!

Exporting your design

Once you are satisfied with your program, click the "GENERATE" button to generate a Jupyter Notebook. Use the "DOWNLOAD" button to download locally. After that, we recommend uploading blockml.ipynb to Google Colab together with other required data files for training and execution.

Contact Us

You can connect with the project owner, Jet Chiang, either through LinkedIn or email. Please reach out if you would like to contribute or report a bug. Your support is greatly appreciated and is essential to furthering our mission!

Developer Resources

We welcome contribution from everyone. However, you must be added as a collaborator of the repo to submit commits so please reach out to the project lead / owner first.

Repository structure

block-ml/
│
├── build/ # autogenerated files, ignored by .gitignore
│
├── blocks/ # JSON files for block definitions
│
├── public/ # static files served by express + python header
│
├── src/ # javascript files bundled by webpack
│
└── README.md

Links

Other tips

You would not be able to run anything without first enabling npm and dependent modules, see above.

  • During development the files are put under src/ for webpack to generate bundle.js in the public directory served by node.js
  • You can make webpack recompile bundle.js automatically when a change is detected in the src/ folder using npx webpack --watch
  • Nodemon can automatically restart the node.js server when changes are made to server-side files like server.js: npx nodemon server.js

Areas of Future Improvements

Only the core components of the project have been finished due to time constraints. The following features have been suggested to further improve the application. However, additional updates are unlikely but please reach out if you want to contribute.

  1. Deployment with API calls: deploy the trained model with Tensorflow Serve (etc.) in our real server and allow users to send requests to use the model
  2. Automated cloud script execution: after generating the script instead of downloading and manually upload to Colab run it automatically in cloud computing platforms
  3. Improved visualisation: show the training process live and the architecture of the network as an overview for educational purposes
  4. More modularised process: instead of the blocks being designed to work like a waterfall chain, have "sections" that design different parts of the program (e.g. input processing, model definition, deployment)

About

Rapid and easy prototyping, design, and deployment of ML models coding with graphical blocks. IgnitionHacks 2024.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published