我正在寻找一个更好的AI/ML项目代码结构。我知道cookiecutter存在,并且我非常喜欢它。
问题是:我想像cookiecutter那样将我的Jupyter Notebook添加到项目结构中。但当我要部署模型并执行pip install requirements.txt
时,所有包(包括Jupyter Notebook所需的包)都会被安装。我不喜欢这样。
有没有一种项目结构,可以包含笔记本但分离用于分析和部署的requirements.txt?
创建两个文件夹是否是个好主意:一个用于笔记本分析并带有requirements.txt,另一个用于模型部署并带有自己的requirements.txt?
回答:
我想到的最佳解决方案是Poetry。它会自动创建像Python包那样的文件夹结构。
Poetry在项目初始化时会创建一个project.toml文件。这可以作为生产环境的requirements.txt文件。你可以使用命令行或编辑文件,在这个文件中分别添加生产和开发包。
它还会为项目创建一个独立的环境,有助于减少与其他项目的冲突。