开源项目 actions-ml-cicd
使用教程
1. 项目目录结构及介绍
actions-ml-cicd
是一个用于机器学习操作(MLOps)的 GitHub Actions 集合。以下是项目的目录结构及其介绍:
actions-ml-cicd/
├── github/
│ └── workflows/
│ ├── chatops.yaml
│ ├── ml-cicd.yaml
│ └── deploy.yaml
├── action_files/
│ ├── script1.sh
│ ├── script2.py
│ └── ...
├── src/
│ ├── preprocessing.py
│ ├── training.py
│ └── ...
├── notebooks/
│ ├── notebook1.ipynb
│ ├── notebook2.ipynb
│ └── ...
├── tests/
│ ├── test_preprocessing.py
│ ├── test_training.py
│ └── ...
├── README.md
├── LICENSE
└── ...
目录结构说明
- github/workflows/: 包含 GitHub Actions 的工作流文件,如
chatops.yaml
,ml-cicd.yaml
,deploy.yaml
等。 - action_files/: 包含在 GitHub Actions 中使用的脚本和 Python 文件。
- src/: 包含机器学习模型的预处理和训练代码。
- notebooks/: 包含 Jupyter Notebook 文件,用于数据探索和模型开发。
- tests/: 包含测试代码,用于验证预处理和训练代码的正确性。
- README.md: 项目的主文档,包含项目的介绍、使用说明和贡献指南。
- LICENSE: 项目的开源许可证。
2. 项目启动文件介绍
项目的启动文件主要集中在 github/workflows/
目录下,这些文件定义了 GitHub Actions 的工作流程。以下是主要的启动文件及其功能介绍:
chatops.yaml
- 功能: 处理 ChatOps 命令,如
/run-full-test
和/deploy <run_id>
。 - 触发条件: 当在 Pull Request 中使用 ChatOps 命令时触发。
- 主要步骤:
- 监听 ChatOps 命令。
- 根据命令触发相应的 GitHub Actions 工作流。
ml-cicd.yaml
- 功能: 执行完整的模型训练工作流。
- 触发条件: 由
chatops.yaml
中的/run-full-test
命令触发。 - 主要步骤:
- 设置环境。
- 执行模型训练。
- 提交训练结果。
deploy.yaml
- 功能: 部署训练好的模型。
- 触发条件: 由
chatops.yaml
中的/deploy <run_id>
命令触发。 - 主要步骤:
- 获取与
run_id
关联的模型工件。 - 部署模型到 Google Cloud Functions。
- 获取与
3. 项目的配置文件介绍
项目的配置文件主要用于定义 GitHub Actions 的工作流程和环境设置。以下是主要的配置文件及其功能介绍:
github/workflows/chatops.yaml
- 配置内容:
on
: 定义触发条件,如pull_request
和workflow_dispatch
。jobs
: 定义工作流中的任务,如check out repo
,azure login
,setup
,run job
等。
github/workflows/ml-cicd.yaml
- 配置内容:
on
: 定义触发条件,如repository_dispatch
。jobs
: 定义工作流中的任务,如setup
,run job
等。
github/workflows/deploy.yaml
- 配置内容:
on
: 定义触发条件,如repository_dispatch
。jobs
: 定义工作流中的任务,如setup
,deploy model
等。
setup.sh
- 配置内容:
- 设置 Azure Machine Learning 工作区的环境变量,如
GROUP
,LOCATION
,WORKSPACE
等。
- 设置 Azure Machine Learning 工作区的环境变量,如
pipeline.yml
- 配置内容:
- 定义机器学习管道的配置,如
compute
,inputs
,outputs
等。
- 定义机器学习管道的配置,如
通过以上配置文件,可以灵活地定义和执行机器学习模型的训练、部署和监控工作流。