Pipcook Tools

Pipcook Tools 是 Pipcook 提供给开发者使用的命令行工具,它帮助开发者管理本地的 Pipeline 和插件,以及也允许你定义、训练和优化模型。

安装

  1. $ npm install @pipcook/pipcook-cli -g

查看安装指南查看完成的安装引导。

环境设置

当 Pipcook Tools 完成后,还需要执行一些初始化指令,它会帮助下载 Pipcook DaemonPipboard,最后还需要手动启动 Pipcook Daemon

  1. $ pipcook init
  2. $ pipcook daemon start

可以使用 tuna mirror 来加速你的 Python 安装:

  1. $ pipcook init --tuna

执行完上述的初始化命令,以及启动 Pipcook Daemon 后,你就可以开始使用 Pipcook 了,让我们从一些简单的命令开始吧。

使用指南

从本地运行一个 Pipeline,只需要执行如下命令:

  1. $ pipcook run path/to/your/pipeline-config.json

关于如何编写 pipeline, 可以看这里.

在上面的例子中,每一次命令都会创建一个新的 Pipeline,这种方式并不是特别方便我们对同一个 Pipeline 做迭代演进和可视化,因此我们可以使用 pipcook-job(1) 子命令:

  1. $ pipcook job run <pipeline id>

上面的命令会从已经存在的一个 Pipeline 来创建任务,这样就可以避免重复的创建 Pipeline 了,那么接下来,如何在不运行的情况下,创建 Pipeline 呢?

  1. $ pipcook pipeline create path/to/your/pipeline-config.json

创建完成后,通过 list 来查看所有的 Pipeline:

  1. $ pipcook pipeline list
  2. ┌─────────┬────────────────────────────────────────┬──────┬────────────────────────────┬────────────────────────────┐
  3. (index) id name updatedAt createdAt
  4. ├─────────┼────────────────────────────────────────┼──────┼────────────────────────────┼────────────────────────────┤
  5. 0 'c0432b50-a1ed-11ea-9209-9723e386c9d5' null '2020-05-29T20:48:29.318Z' '2020-05-29T20:48:29.318Z'
  6. 1 '94aa20c0-a1ed-11ea-a602-6d2f8632b52c' null '2020-05-29T20:47:16.172Z' '2020-05-29T20:47:16.172Z'
  7. 2 '9c485630-a1cf-11ea-a602-6d2f8632b52c' null '2020-05-29T17:12:44.052Z' '2020-05-29T17:12:44.052Z'
  8. └─────────┴────────────────────────────────────────┴──────┴────────────────────────────┴────────────────────────────┘

通过 info 可以看到某个 Pipeline 的 JSON 表示:

  1. $ pipcook pipeline info <id>
  2. {
  3. "plugins": {
  4. "dataCollect": {
  5. "name": "./packages/plugins/data-collect/object-detection-coco-data-collect",
  6. "params": {
  7. "url": "http://foobar"
  8. }
  9. },
  10. "dataAccess": {
  11. "name": "./packages/plugins/data-access/coco-data-access",
  12. "params": {}
  13. },
  14. "modelDefine": {
  15. "name": "./packages/plugins/model-define/detectron-fasterrcnn-model-define",
  16. "params": {}
  17. },
  18. "modelTrain": {
  19. "name": "./packages/plugins/model-train/object-detection-detectron-model-train",
  20. "params": {
  21. "steps": 1
  22. }
  23. },
  24. "modelEvaluate": {
  25. "name": "./packages/plugins/model-evaluate/object-detection-detectron-model-evaluate",
  26. "params": {}
  27. }
  28. }
  29. }

插件管理

通过 pipcook-pipeline(1) 创建 Pipeline 时,如果发现插件没有安装的话,Pipcook 会自动安装到用户目录,除此之外,你也可以通过 pipcook-plugin(1) 手动管理。

首先,通过 list 来查看所有已经安装的插件:

  1. $ pipcook plugin list
  2. ┌─────────┬───────────────────────────────────────────────────────────────────┬──────────┬─────────────────┬──────────┐
  3. (index) name version category datatype
  4. ├─────────┼───────────────────────────────────────────────────────────────────┼──────────┼─────────────────┼──────────┤
  5. 0 '@pipcook/plugins-csv-data-access' '0.5.9' 'dataAccess' 'text'
  6. 1 '@pipcook/plugins-bayesian-model-train' '0.5.10' 'modelTrain' 'text'
  7. 2 '@pipcook/plugins-bayesian-model-evaluate' '0.5.10' 'modelEvaluate' 'text'
  8. 3 '@pipcook/plugins-csv-data-collect' '0.5.9' 'dataCollect' 'text'
  9. 4 '@pipcook/plugins-bayesian-model-define' '0.5.10' 'modelDefine' 'text'
  10. 5 '@pipcook/plugins-mnist-data-collect' '0.5.9' 'dataCollect' 'image'
  11. └─────────┴───────────────────────────────────────────────────────────────────┴──────────┴─────────────────┴──────────┘

卸载插件:

  1. $ pipcook plugin uninstall @pipcook/plugins-csv-data-access

从 NPM 安装插件:

  1. $ pipcook plugin install @pipcook/plugins-csv-data-access

从本地安装插件

  1. $ pipcook plugin install /path/to/dir/of/your/plugin

从 Git 安装

  1. $ pipcook plugin install git+ssh://git@some.git.com/my-git-repo.git

注意:在安装插件时,必须保证安装的插件符合 Pipcook 插件规范。

服务管理

Pipcook Daemon 是一个后台服务进程,它帮助用户真正地管理插件和 Pipeline,那么怎么通过命令行来管理这个服务呢?

启动/重启服务:

  1. $ pipcook daemon start
  2. $ pipcook daemon restart

停止服务:

  1. $ pipcook daemon stop