项目介绍
概述
Pipcook 是一款面向机器学习及其工程的 JavaScript 应用框架。由阿里巴巴开源,Pipcook 的使命是让 JavaScript 工程师在没有专业知识基础的情况下,仍能利用机器学习的强大功能。它的愿景是引领前端技术领域走向智能化。
为什么选择 Pipcook
Pipcook 的设计专注于前端领域,是从 JavaScript 工程师视角出发开发的。它的目标是推动机器学习工程在整个领域的进步。为此,该项目通过开放问题的方式,欢迎大家参与机器学习应用 API 的开发。
Pipcook 的功能
Pipcook 提供了多个子项目,包括机器学习流水线框架、管理工具、JavaScript 运行时等,这些都可以用作与其他项目的构建模块。
原则
Pipcook 坚持强有力的原则,目标是模块化和灵活性:
- 模块化:项目包含一些功能和 API 定义明确的子项目,这些可以协同工作。
- 可替换:Pipcook 包含足够的模块来构建自己的功能,模块架构保证大部分模块可以被不同实现替换。
目标用户
Pipcook 面向想要了解机器学习、训练和部署模型的 Web 工程师,尤其是那些希望优化自有模型以获得更佳评估结果的人群。
子项目介绍
Pipcook Pipeline
这是用来表示由 Pipcook 脚本构成的机器学习流水线的工具。它通过插件机制支持数据集、训练、验证和部署等丰富功能。每个流水线的最终输出是一个 NPM 包,其中包含可直接使用的已训练模型和 JavaScript 函数。
Pipcook 桥接 Python
Pipcook 提供一个名叫 Boa 的模块,允许 JavaScript 工程师在 Node.js 运行时通过 JavaScript 来使用 Python 的生态包,如 numpy
、scikit-learn
等。
快速开始
设置
在电脑上准备以下安装程序:
- Node.js 版本 >= 12.17 或 >= 14.0.0
- npm 版本 >= 6.14.4
安装 Pipcook 项目的命令行工具:
$ npm install -g @pipcook/cli
运行图像分类示例:
$ pipcook train https://cdn.jsdelivr.net/gh/alibaba/pipcook@main/example/pipelines/image-classification-mobilenet.json -o ./output
训练完毕后,可以预测图像的类别:
$ pipcook predict ./output/image-classification-mobilenet.json -s ./output/data/validation/blurBackground/71197_223__30.7_36.jpg
想要部署的话:
$ pipcook serve ./output
开发者
克隆代码库:
$ git clone git@github.com:alibaba/pipcook.git
安装依赖:
$ npm install
构建项目:
$ npm run build
Pipcook 提供详细开发者文档,帮助开发者进行二次开发和贡献。
社区
Pipcook 社区活跃在多个平台,包括 Gitter 和钉钉群,用户可以通过这些渠道进行交流和获取帮助。
使用者
Pipcook 已被多个项目采用,例如 imgcook 等,为它们提供了强大的机器学习支持。
授权
Pipcook 使用 Apache 2.0 开源授权,用户可以自由使用和贡献。