依赖管理
如果需要安装额外的依赖,可以按照以下的方式做配置。这些配置文件会在部署服务启动时自动执行,无需手动干预。
工作空间与模型部署的依赖管理
在进行模型部署之前,通常建议先在「工作空间」中完成模型的开发和测试。这样做有以下几个好处:
- 可以在工作空间中交互式地安装和测试依赖
- 使用 pip install --user或创建 conda 环境的方式准备好所需的依赖环境
- 环境准备好后,可以直接将工作空间的目录(/openbayes/home)绑定到模型部署中使用
- 避免在模型部署阶段重复安装依赖,提高部署效率
最佳实践流程
- 
在工作空间中: - 使用 pip install --user xxx安装 Python 包到/openbayes/home/.pylibs
- 或创建 conda 环境到 /openbayes/home/your_env_name
- 完成模型开发和测试
 
- 使用 
- 
在模型部署时: - 将工作空间的 /openbayes/home目录绑定到模型部署
- 如果使用自定义 conda 环境,需要在 start.sh中激活该环境
- 模型部署将自动继承工作空间中准备好的依赖环境
 
- 将工作空间的 
这种方式特别适合需要复杂依赖环境的模型部署场景。
依赖管理方式概览
1. PyPI 依赖管理
通过 requirements.txt 安装
在模型部署文件夹的根目录下如果存在名为 requirements.txt 的文件,HyperAI 模型部署在启动前会自动执行 pip install -r requirements.txt 命令,安装其中声明的 PyPI 库。
文件格式遵循标准的 Python requirements.txt 格式,示例:
jieba
tqdm==4.11.2使用 pip --user 安装持久化依赖
- 使用 pip install --user xxx命令安装的依赖会保存在/openbayes/home/.pylibs目录下
- 这些依赖在容器重启后依然可用
- 注意: 在新创建的 conda 环境中不要使用 --user参数,避免依赖冲突
2. Conda 依赖管理
通过 conda-packages.txt 安装
HyperAI 模型部署支持 Conda 包的安装。在部署服务启动之前会自动在部署目录的根目录下查找名为 conda-packages.txt 的文件,其文件格式遵循:
[channel::]package[=version[=buildid]]示例:
conda-forge::rdkit
conda-forge::pygpu创建自定义 Conda 环境
- 可以在 /openbayes/home下创建新的 conda 环境
- 示例:
conda create -p /openbayes/home/open-mmlab python=3.9 -y
conda activate /openbayes/home/open-mmlab在 start.sh 中激活 Conda 环境
:::note
HyperAI 的所有镜像都是使用 Conda 进行环境管理的,因此 start.sh 中通常都需要先激活默认的 base 环境,即使不使用自定义的 conda 环境。
:::
如果使用自定义的 conda 环境,需要在 start.sh 中明确激活该环境。示例:
#!/bin/bash
# 首先激活默认的 base 环境
source /usr/local/etc/profile.d/conda.sh
conda activate base
# 如果使用自定义环境,继续激活自定义环境
conda activate /openbayes/home/open-mmlab
# 启动模型服务
python app.py:::note
如果不使用自定义 conda 环境,而是使用系统默认环境或通过 pip install --user 安装的依赖,仍然需要激活 base 环境,但不需要额外的环境激活步骤。
:::
3. 系统依赖管理
通过 dependencies.sh 安装
对于非 Conda 和 PyPI 的依赖,可以在根目录提供一个名为 dependencies.sh 的文件,在模型部署启动时它会自动被 bash 执行,并且其执行会早于 requirements.txt 和 conda-packages.txt 依赖的安装。
示例:
apt update && apt install tree -y依赖安装顺序
当多个依赖配置文件同时存在时,安装顺序为:
- dependencies.sh
- conda-packages.txt
- requirements.txt
最佳实践建议
- 
对于需要持久化的 Python 依赖: - 使用 pip install --user xxx安装到用户目录
- 在 /openbayes/home下创建自定义 Conda 环境
- 在代码仓库中包含 requirements.txt/conda-packages.txt 文件
- 如果使用自定义 conda 环境,确保在 start.sh中正确激活环境
 
- 使用 
- 
对于系统依赖: - 将安装命令保存在 dependencies.sh 中
- 每次容器启动时会自动执行
 
- 
注意事项: - 系统盘上的依赖在容器重启后会丢失
- 工作目录 /openbayes/home中的内容会持久化保存
- 建议将重要依赖环境保存在工作目录中
- 使用自定义 conda 环境时,确保 start.sh中的环境路径正确