Pipcook

Pipcook 项目是一个开源工具集,它能让 Web 开发者更好地使用机器学习,从而开启和加速前端智能化时代!

为什么要开发 Pipcook

它旨在使 Web 工程师能够在零门槛的前提下使用机器学习,并拥有将前端技术领域带到智能领域的视角。Pipcook 的目标就是成为机器学习和前端交互的跨领域工具包。

我们将完全基于前端应用程序来设计 Pipcook API,并专注于前端领域,以真实解决 Web 工程师使用机器学习的痛点来开发 Pipcook。以面向 Web 友好为原则,来推动机器学习工程和前端工程师的融合。

简单的介绍

Pipcook 项目提供了若干独立的子项目,包括机器学习工作流框架,命令行管理工具,机器学习的 JavaScript 运行时。你也可以在其他项目中使用这些框架来搭建你所需要的系统。

设计原则

Pipcook 中,我们遵循一些基本的设计原则,来保证整个软件是模块化和灵活的,这些原则也能帮助社区来对 Pipcook 未来的方向作出指导。

  • 模块化 项目中包含了一些子项目,它们自身都必须保证是良好定义的。
  • 可更换 项目中包含了足够的模块来构建现在的 Pipcook,不过我们通过模块化的架构和规范,开发者可以按照自己的需要对部分模块切换为其他的实现方式。

受众

Pipcook 面向以下的 Web 工程师:

  • 想要学习机器学习
  • 想要训练和部署自己的模型
  • 想要优化模型的性能,比如针对一个图片分类模型,有一个更高的准确度

如果你满足上面条件之一,那么就尝试从安装开始吧。

子项目

Pipcook Pipeline

它用于表达机器学习的工作流,其中包含了 Pipcook 插件,在这一层,我们需要保证整个系统的稳定性和拓展性,同时使用插件机制来支持丰富的数据集、训练、验证和部署。

一条 Pipcook Pipeline 由多个插件组成,通过配置不同的插件以及参数,最终会输出一个 NPM 包,其中包含了训练好的模型和 JavaScript 函数,你就可以像使用普通 NPM 包一样使用你训练好的模型了。

注意:在 Pipcook 中,每一个 Pipeline 仅拥有一个角色,那就是训练一个用户需要的模型,也就是说每一个 Pipeline 的最后一个节点都必须输出一个训练好的模型,否则这个 Pipeline 就是非法的。

Pipcook Bridge to Python

对于 JavaScript 工程师来说,开始机器学习最苦难的一点就是缺乏一套成熟的工具集。在 Pipcook,我们提供了 Boa,它使用 N-API 将 CPython 集成在了 Node.js 环境,从而让开发者能够通过 JavaScript 访问到 Python 生态来解决这个痛点。

通过它,开发者可以毫无顾虑地在 Node.js 中使用诸如 numpyscikit-learnjiebatensorflow 这样的 Python 包。

下一步

看到这里,已经按耐不住想要使用 Pipcook 了吗?可以按照下面的介绍开始你下一步的学习之旅: