如何分离机器学习项目的开发和生产 requirements.txt?

How to separate development and production requirements.txt for Machine Learning Project?

我正在寻找更好的 AI/ML 项目代码结构。我知道 cookiecutter 在那里,我真的很喜欢它。

问题是:我想将我的 Jupyter Notebook 添加到项目结构中,例如 cookiecutter。但是当我想要部署模型并且我 pip install requirements.txt 时,将安装所有包(包括 Jupyter Notebook 要求)。我不喜欢它。

是否有任何项目结构,其中包括笔记本内部但单独 requirements.txt 用于分析和部署?

创建两个文件夹是否是个好主意:一个用于使用 requirements.txt 在笔记本上进行分析,另一个用于使用自己的 requirements.txt 进行模型部署?

我想到的最佳解决方案是Poetry。 它会自动创建类似于 python 包的文件夹结构。

文件夹结构

Poerty 在项目初始化时创建一个 project.toml 文件。这可以用作 requirement.txt 文件 production.You 可以使用命令行或编辑文件在此文件中单独添加生产和开发包。

Project.toml

它还为项目创建了单独的环境,有助于最大程度地减少与其他项目的冲突。