Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/supreme-gg-gg/block-ml

Rapid and easy prototyping, design, and deployment of ML models with graphical blocks.
https://github.com/supreme-gg-gg/block-ml

artificial-intelligence block-coding blockly keras machine-learning neural-network node-js tensorflow

Last synced: 2 months ago
JSON representation

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

Awesome Lists containing this project

README

        

# 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](demo.png)

- 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](https://www.linkedin.com/in/jet-chiang/) or [email](mailto:[email protected]). 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

- [Beginner intuitive tutorials for Google Blockly.][1]
- [Full Blockly Documentation.][2]
- [Documentation for Keras, the main machine learning package we use.][3]
- [Extensions and plugins that require support to develop!][4]

[1]: https://blocklycodelabs.dev
[2]: https://developers.google.com/blockly/guides/get-started/what-is-blockly
[3]: https://www.tensorflow.org/api_docs/python/tf/keras
[4]: https://google.github.io/blockly-samples/

### 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)