All Projects β†’ alibaba β†’ Pipcook

alibaba / Pipcook

Licence: apache-2.0
Machine learning platform for Web developers

Programming Languages

javascript
184084 projects - #8 most used programming language
typescript
32286 projects
Jupyter Notebook
11667 projects
HTML
75241 projects
shell
77523 projects
Dockerfile
14818 projects

Projects that are alternatives of or similar to Pipcook

Steppy
Lightweight, Python library for fast and reproducible experimentation πŸ”¬
Stars: ✭ 119 (-94.56%)
Mutual labels:  pipeline
Squeezemeta
A complete pipeline for metagenomic analysis
Stars: ✭ 128 (-94.14%)
Mutual labels:  pipeline
Jenkins Pipeline Library
wcm.io Jenkins Pipeline Library for CI/CD
Stars: ✭ 134 (-93.87%)
Mutual labels:  pipeline
Unix Stream
Turn Java 8 Streams into Unix like pipelines
Stars: ✭ 119 (-94.56%)
Mutual labels:  pipeline
Semsegpipeline
A simpler way of reading and augmenting image segmentation data into TensorFlow
Stars: ✭ 126 (-94.24%)
Mutual labels:  pipeline
Workflow Cps Plugin
Stars: ✭ 129 (-94.1%)
Mutual labels:  pipeline
Pex Context
Modern WebGL state wrapper for PEX: allocate GPU resources (textures, buffers), setup state pipelines and passes, and combine them into commands.
Stars: ✭ 117 (-94.65%)
Mutual labels:  pipeline
Bodywork Core
Deploy machine learning projects developed in Python, to Kubernetes. Accelerated MLOps πŸš€
Stars: ✭ 145 (-93.37%)
Mutual labels:  pipeline
Pipelinex
PipelineX: Python package to build ML pipelines for experimentation with Kedro, MLflow, and more
Stars: ✭ 127 (-94.19%)
Mutual labels:  pipeline
Gitlab Ci Local
Tired of pushing to test your .gitlab-ci.yml?
Stars: ✭ 134 (-93.87%)
Mutual labels:  pipeline
Container Pipelines
Let's get the ball rolling on some Container-driven CI & CD
Stars: ✭ 123 (-94.37%)
Mutual labels:  pipeline
Sarek
Detect germline or somatic variants from normal or tumour/normal whole-genome or targeted sequencing
Stars: ✭ 124 (-94.33%)
Mutual labels:  pipeline
Mara Pipelines
A lightweight opinionated ETL framework, halfway between plain scripts and Apache Airflow
Stars: ✭ 1,841 (-15.78%)
Mutual labels:  pipeline
Dropseqpipe
A SingleCell RNASeq pre-processing snakemake workflow
Stars: ✭ 119 (-94.56%)
Mutual labels:  pipeline
Go spider
[ηˆ¬θ™«ζ‘†ζžΆ (golang)] An awesome Go concurrent Crawler(spider) framework. The crawler is flexible and modular. It can be expanded to an Individualized crawler easily or you can use the default crawl components only.
Stars: ✭ 1,745 (-20.17%)
Mutual labels:  pipeline
Chain.jl
A Julia package for piping a value through a series of transformation expressions using a more convenient syntax than Julia's native piping functionality.
Stars: ✭ 118 (-94.6%)
Mutual labels:  pipeline
Scrapy demo
all kinds of scrapy demo
Stars: ✭ 128 (-94.14%)
Mutual labels:  pipeline
Onhold
πŸ”Š Play sounds while and after shell jobs complete
Stars: ✭ 146 (-93.32%)
Mutual labels:  pipeline
Demo Jenkins Config As Code
Demo of Jenkins Configuration-As-Code with Docker and Groovy Hook Scripts
Stars: ✭ 143 (-93.46%)
Mutual labels:  pipeline
Karton
Distributed malware processing framework based on Python, Redis and MinIO.
Stars: ✭ 134 (-93.87%)
Mutual labels:  pipeline

pipcook

A JavaScript application framework for machine learning and its engineering.

npm npm GitHub repo size

Documentation: English | δΈ­ζ–‡

Builds

Build Types Status
tests
documentation
docker

Why Pipcook

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.

What's Pipcook

The project provides subprojects including machine learning pipeline framework, management tools, a JavaScript runtime for machine learning, and these can be also used as building blocks in conjunction with other projects.

Principles

Pipcook is an open-source project guided by strong principles, aiming to be modular and flexible on user experience. It is open to the community to help set its direction.

  • Modular the project includes some of projects that have well-defined functions and APIs that work together.
  • Swappable the project includes enough modules to build what Pipcook has done, but its modular architecture ensures that most of the modules can be swapped by different implementations.

Audience

Pipcook is intended for Web engineers looking to:

  • learn what's machine learning.
  • train their models and serve them.
  • optimize own models for better model evaluation results, like higher accuracy for image classification.

If you are in the above conditions, just try it via installation guide.

Subprojects

Pipcook Pipeline

It's used to represent ML pipelines consisting of Pipcook scripts. 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.

A Pipcook Pipeline is generally composed of lots of scripts. Through different scripts and configurations, the final output to us is an NPM package, which contains the trained model and JavaScript functions that can be used directly.

Note: In Pipcook, each pipeline has only one role, which is to output the above-trained model you need. That is to say, the last stage of each pipeline must be the output of the trained model, otherwise, this Pipeline is invalid.

Pipcook Bridge to Python

For JavaScript engineers, the most difficult part is the lack of a mature machine learning toolset in the ecosystem. In Pipcook, a module called [Boa][https://github.com/imgcook/boa], which provides access to Python packages by bridging the interface of CPython using N-API.

With it, developers can use packages such as numpy, scikit-learn, jieba, tensorflow, or any other Python ecology in the Node.js runtime through JavaScript.

Quick start

Setup

Prepare the following on your machine:

Installer Version Range
Node.js >= 12.17 or >= 14.0.0
npm >= 6.14.4

Install the command-line tool for managing Pipcook projects:

$ npm install -g @pipcook/cli

Then train from anyone of those pipelines, we take image classification as an example:

$ pipcook train https://cdn.jsdelivr.net/gh/alibaba/pipcook@main/example/pipelines/image-classification-mobilenet.json -o ./output

This dataset specfied by the pipeline includes 2 categories image: avatar and blurBackground. After training, we can predict the category of a image:

$ pipcook predict ./output/image-classification-mobilenet.json -s ./output/data/validation/blurBackground/71197_223__30.7_36.jpg
βœ” Origin result:[{"id":1,"category":"blurBackground","score":0.9998120665550232}]

The input is a blurBackground image from the validation dataset. And the model determines that its category is blurBackground.

Want to deploy it?

$ pipcook serve ./output
β„Ή preparing framework
β„Ή preparing scripts
β„Ή preparing artifact plugins
β„Ή initializing framework packages
Pipcook has served at: http://localhost:9091

Then you can open the browser and try your image classification server.

Playground

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:

open https://pipboard.imgcook.com

You will see a web page prompt in your browser, and there is a MNIST showcase on the home page and play around there.

Pipelines

If you want to train a model to recognize MNIST handwritten digits by yourself, you could try the examples below.

Name Description Open in Colab
mnist-image-classification pipeline for classific MNIST image classification problem. N/A
databinding-image-classification pipeline example to train the image classification task which is
to classify imgcook databinding pictures.
Open In Colab
object-detection pipeline example to train object detection task which is for component recognition
used by imgcook.
Open In Colab
text-bayes-classification pipeline example to train text classification task with bayes N/A

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 https://cdn.jsdelivr.net/gh/alibaba/pipcook@main/example/pipelines/image-classification-mobilenet.json -o output

After the above pipeline is completed, you have already trained a model at the current output/model directory, it's a tensorflow.js model.

Developers

Clone this repository:

$ git clone [email protected]:alibaba/pipcook.git

Install dependencies, e.g. via npm:

$ npm install

After the above, now build the project:

$ npm run build

Community

DingTalk

Or searched via the group number: 30624012.

Download DingTalk (an all-in-one free communication and collaboration platform) here: English | δΈ­ζ–‡

Gitter Room

Who's using it

License

Apache 2.0

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].