A JavaScript application framework for machine learning and its engineering.
With the mission of enabling JavaScript engineers to utilize the power of machine learning without any prerequisites and the vision to lead front-end technical field to the intelligention. Pipcook is to become the JavaScript application framework for the cross-cutting area of machine learning and front-end interaction.
We are truly to design Pipcook's API for front-end and machine learning applications, and focusing on the front-end area and developed from the JavaScript engineers' view. With the principle of being friendly to JavaScript, we will push the whole area forward with the machine learning engineering. For this reason we opened an issue about machine-learning application APIs, and look forward to you get involved.
Pipcook can be divided into the following 3 layers from top to bottom.
Pipcook Application
It defines flexible and intuitive APIs to build machine-learning application, even though you don't know the details of algorithm.
Pipcook Core
It's used to represent ML pipelines consisting of Pipcook plugins. This layer ensures the stability and scalability of the whole system, and uses a plug-in mechanism to support rich functions including: dataset, training, validations and deployment.
Pipcook Bridge to Python
For JavaScript engineers, the most difficult part is the lack of a mature machine learning toolset in the ecosystem. To this end, we have opened up the interaction between Python and Node.js at the bottom and can easily call some missing APIs.
Prepare the following on your machine:
Installer | Version range |
---|---|
Node.js | >= 12 |
Python | >= 3.6 |
npm | >= 6.1 |
Install the command-line tool for managing Pipcook projects:
$ npm install -g @pipcook/pipcook-cli
Initialize a project:
$ mkdir pipcook-example && cd pipcook-example
$ pipcook init
If you are wondering what you can do in Pipcook and where you can check your training logs and models, you could start from Pipboard
$ pipcook board
You will see a web page prompt in your browser, and there is a MNIST showcase on the home page and play around there. If you want to train a model to recognize MNIST handwritten digits by yourself, you could try the examples below.
- pipeline-mnist-image-classification: pipeline for classific Mnist image classification problem.
- pipeline-databinding-image-classification: pipeline example to train the iamge classification task which is to classifify imgcook databinding pictures.
- pipeline-object-detection: pipeline example to train object detection task which is for component recognition used by imgcook.
- pipeline-text-bayes-classification: pipeline example to train text classification task with bayes
See here for complete list, and it's easy and quick to run these examples. For example, to do a MNIST image classification, just run the following to start the pipeline:
$ pipcook run examples/pipelines/mnist-image-classification.json
NOTICE: the last two examples are using Boa (pipcook python bridge layer). Before run them, you need to setup Python environment. See here for more information
Clone this repository:
$ git clone [email protected]:alibaba/pipcook.git
Install lerna and TypeScript, and check:
$ lerna -v
$ tsc -v
install dependencies, e.g. via npm:
$ npm install
After the above, now build the project:
$ npm run build
- Developer Documentation English | 中文
- Project Guide
- Roadmap, 2020
Download DingTalk (an all-in-one free communication and collaboration platform) here: English | 中文