一组机器学习版本控制帮助程序
ml-versioning-tools的Python项目详细描述
机器学习版本控制工具-MLV工具
用于对机器学习数据进行版本控制的公共存储库。
安装
mlv工具可以从pypi安装:
pip install ml-versioning-tools
也可以直接从以下来源安装:
git clone https://github.com/peopledoc/ml-versioning-tools.git
cd ml-versioning-tools
make develop
OR
make package
pip install ./package/*.whl
教程
有一个教程可以展示如何使用这些工具。 请参见mlv工具教程
关键词
步骤元数据:在本文档中,当 用于声明元数据,如参数、DVC输入/输出等。
工作目录:要版本的项目的git顶级目录。 (如果项目不使用不推荐使用的git,请使用--working dir 每个命令调用的参数)
工具
ipynb_to_python:此命令将给定的jupyter笔记本转换为 参数化和可执行的python3脚本(请参见下面一节中的特定语法)
ipynb_to_python -n [notebook_path] -o [python_script_path]
gen-dvc:此命令创建一个dvc命令,该命令将ipynb生成的脚本调用为python。
gen_dvc -i [python_script] --out-py-cmd [python_command] \
--out-bash-cmd [dvc_command]
导出管道:此命令将与给定dvc元文件对应的管道导出到bash脚本中。 管道步骤按依赖顺序顺序依次调用。仅适用于本地步骤。
export_pipeline --dvc [DVC target meta file] -o [pipeline script]
ipynb_to_dvc:此命令将给定的jupyter笔记本转换为 参数化和可执行的python3脚本和dvc命令。是组合体 从ipynb_到python和gen_dvc的。它只适用于配置文件。
ipynb_to_dvc -n [notebook_path]
检查脚本一致性和检查所有脚本一致性:这些命令确保jupyter之间的一致性 笔记本及其生成的python脚本。可以将它们用作git钩子或在项目中连续使用 整合。一致性检查忽略空行和注释。
check_script_consistency -n [notebook_path] -s [script_path]
check_all_scripts_consistency -n [notebook_directory]
# Works only with a configuration file (provided or auto-detected)
配置
可以提供配置文件,但它不是必需的。
它的默认位置在工作目录中,即[工作目录]/.mlvtools
。
但它可以在作为命令参数提供的自定义文件中。
配置文件格式为json
{
"path": {
"python_script_root_dir": "[path_to_the_script_directory]",
"dvc_cmd_root_dir": "[path_to_the_dvc_cmd_directory]"
}
"ignore_keys: ["keywords", "to", "ignore"],
"dvc_var_python_cmd_path": "MLV_PY_CMD_PATH_CUSTOM",
"dvc_var_python_cmd_name": "MLV_PY_CMD_NAME_CUSTOM",
"docstring_conf": "./docstring_conf.yml"
}
所有给定的路径必须相对于工作目录
path_to_the_script_directory:是将使用 ipynb_to_脚本命令。python 3的脚本名基于笔记本名。
ipynb_to_script -n ./data/My\ Notebook.ipynb Generated script: `[path_to_the_script_directory]/my_notebook.py`
path_to_the_dvc_cmd_directory:是使用 GEN U DVC命令。生成的命令名基于Python3脚本名。
0pip install ml-versioning-tools
ignore_keys:用于丢弃单元格的关键字列表。默认值为['无效果]。 (请参见"丢弃单元格"部分)
dvc_var_python_cmd_path,dvc_var_python_cmd_name,dvc_var_meta_filename:它们允许自定义变量名 可用于dvc cmddocstring参数。它们分别对应于保存python命令的变量 文件路径、文件名和保存默认元文件名的变量。默认值为"mlv_py_cmd_path", "mlv_py_cmd_name"和"mlv_dvc_meta_filename"。(有关用法,请参见dvc命令/复杂案例部分)
docstring_conf:用于jinja模板化的docstring配置的路径(请参阅dvc模板化部分)。 此参数不是必需的。
Jupyter笔记本语法
步骤元数据单元格用于声明脚本参数确定和dvc输出和依赖项。 这可以使用基本的docstring语法来完成。此docstring必须是第一个语句,仅此单元格 评论可以写在上面。
良好实践
避免在jupyter笔记本中使用相对路径,因为它们与 将要转换为脚本的笔记本位置不同。
python脚本参数
可以使用基本docstring语法在jupyter笔记本中声明参数。 此参数描述用于生成可配置和可执行的python脚本。
Jupyter笔记本中的参数声明
Jupyter笔记本:处理文件.ipynb
pip install ml-versioning-tools
1
生成了python3脚本
pip install ml-versioning-tools
2
脚本命令行参数:
pip install ml-versioning-tools
3
所有声明的参数都是必需的。
DVC命令
dvc命令是对生成的脚本调用的dvc run命令的包装。 使用ipynb_to_python命令。这是管道的一个步骤。
它基于笔记本元数据中声明的数据, 提供两种模式: -仅描述简单情况下的输入/输出(推荐) -描述复杂情况下的完整命令
简单案例
语法
pip install ml-versioning-tools
4
只要路径可以是绝对的,也可以是相对于git to p dir的。
{related_param}是相应的python 3脚本的参数, 它是为python脚本调用填写的
dvc extra允许声明不是dvc输出或依赖项的参数。 这些参数提供给调用python 3命令。
pip install ml-versioning-tools
5
复杂病例
语法
pip install ml-versioning-tools
6
此语法允许提供要生成的完整dvc命令。所有路径都可以是绝对路径,也可以是相对于git top dir的路径。 变量$mlv_py_cmd_path和$mlv_py_cmd_name可用。它们分别包含路径和名称 对应的python命令。 变量$mlv_dvc_meta_file name包含dvc元文件的默认名称。
pip install ml-versioning-tools
7
DVC模板化
可以在dvc docstring部分使用jinja2模板。例如,声明所有 步骤依赖项、输出和额外参数。
示例:
pip install ml-versioning-tools
8
docstring配置文件可以通过主配置或使用--docstring conf提供 争论。此功能仅适用于gen廑dvc命令。
丢弃单元格
jupyter笔记本中的某些单元格只在查看中间结果时执行。 在python 3脚本中,这些语句没有任何效果。 注释"无效"允许丢弃整个单元格内容,以避免浪费 运行这些语句的时间。可以自定义丢弃关键字的列表,请参见配置部分。
贡献
我们很高兴地欢迎对mlv工具的贡献。有关详细信息,请参见我们的贡献指南。