Codepack
Codepack 以简洁明了的形式定义在平台上开发、运行、部署一个机器学习项目所需要的全部信息,例如代码、配置文件、各种参数等。其相关工具能够根据这些信息自动地执行相应的操作,从而大幅减少用户的操作量,显著改善实验的可重复性。
例如对于 MNIST 手写数字图像分类任务,在已经准备好了训练代码、数据集和资源配置文件的情况下,你只需要再创建一个 Codepack 定义文件,然后使用 Codepack CLI 执行一条命令,就可以在平台上启动分布式训练:
这里 Codepack 定义文件的内容如下:
apiVersion: codepack.tensorstack.dev/v1beta1
name: mnist-keras
description: A simple image classifier based on CNN using tf2.
project: demo
default: prepare-env
targets:
- name: prepare-env # Prepare running env
actions:
- name: workspace-for-training
verb: apply
files: [pvc.yaml]
- name: copy-file # Copy training code and dataset to PVC
deps: ["prepare-env"]
actions:
- name: copy-code
verb: copy
src: .
dst: codepack-example:.
- name: run-distributed-training # Run a distributed training
deps: ["prepare-env", "copy-file"]
actions:
- name: trainingjob
verb: create
files: [trainingjob.yaml]
整个 Codepack 的文件结构如下:
mnist-keras
├── codepack.yaml
├── main.py
├── mnist.npz
├── pvc.yaml
└── trainingjob.yaml
由于 Codepack 的全部信息都维护在一个定义文件中,用户创建一个新的 Codepack 或者将既有的机器学习项目修改为 Codepack 都非常容易,并且用户可以使用 Git 来轻松地对 Codepack 进行版本控制和分发。
Codepack 的相关工具包括命令行工具和集群内组件,前者负责读取 Codepack 定义并执行用户指定的 action,后者负责进行安全访问控制以及为命令行工具执行 action 提供支持。
下一步
- 了解 Codepack 的概念
- 了解 Codepack 的定义
- 了解命令行工具
- 学习具体的使用示例