LLaMAFactory 镜像 Dockerfile
如果出现以下情况,我们推荐您自己构建镜像:
- 环境不匹配:平台提供的镜像不满足您特定的软件版本(如框架、库)组合。
- 访问受限:您访问外部 Docker Hub 等公共仓库不方便或受限。
说明
本文包含的 Dockerfile 可用于镜像中心基于 Dockerfile 构建镜像,或直接在开发机中构建镜像(使用 docker build/docker buildx build)。
- 基于 Ubuntu 22.04
- 安装 CUDA 12.2.2
- 安装 cuDNN 9.x
- 安装 LLaMAFactory 当前版本(commit ID
5744f1ea940169303f0c495d067800f829b06599)注意
从 Github 下载 LLaMAFactory 仓库时使用了第三方学术加速服务,无法保证有效性。如已失效,请自行寻找替代方案。
Dockerfile 1
以下 Dockerfile 要求预先构建自定义系统级 CUDA 镜像。
- 先构建系统级 CUDA 镜像,参考 CUDA + cudnn8.x 。
- 然后将其作为基础镜像(可推送至租户私有镜像仓库),构建其他依赖系统级 CUDA 的应用镜像,可大幅节约构建时间。
dockerfile
# 推荐基于自定义 cuda 镜像构建 LLaMAFactory 镜像
# 请替换 YOUR_CUSTOM_CUDA_IMAGE 为自定义 cuda 镜像
FROM YOUR_CUSTOM_CUDA_IMAGE
# 设置 uv 使用清华镜像源
ENV UV_INDEX_URL=https://pypi.tuna.tsinghua.edu.cn/simple
ENV PIP_INDEX_URL=https://pypi.tuna.tsinghua.edu.cn/simple
# 安装PyTorch/LLaMA-Factory/ModelScope/Tensorboard 等
# 1. 安装指定版本的PyTorch
# 2. 安装 Tensorboard
# 3. 克隆LLaMA-Factory代码库(使用--depth 1只克隆最新版本以减小体积)
# 4. 切换到LLaMA-Factory目录
# 5. 以可编辑模式安装LLaMA-Factory,并包含torch/metrics/modelscope附加功能
RUN pip install --no-cache-dir torch==2.6.0 \
&& pip install --no-cache-dir tensorboard \
&& git clone --depth 1 https://gh-proxy.org/https://github.com/hiyouga/LLaMA-Factory.git \
&& cd LLaMA-Factory \
&& pip install --no-cache-dir -e ".[torch,metrics,modelscope]" \
&& rm -rf ~/.cache/pipDockerfile 2
以下 Dockerfile 一次性安装系统级 CUDA、cudnn、LLaMaFactory 及其依赖的 Python 包,耗时较长,适用于在开发机内部使用 docker 命令构建镜像。如果在镜像中心使用该 Dockerfile 构建镜像,构建时间有可能超过 1 小时限制,导致构建失败。
dockerfile
FROM cr.infini-ai.com/infini-ai/ubuntu:22.04-20240429
# 设置环境变量
# DEBIAN_FRONTEND=noninteractive 防止安装过程中的交互式提示
# PATH 添加CUDA可执行文件路径
# LD_LIBRARY_PATH 添加CUDA库文件路径
# CUDA_HOME 设置CUDA根目录
# USE_MODELSCOPE_HUB 启用ModelScope模型仓库
ENV DEBIAN_FRONTEND=noninteractive \
PATH=/usr/local/cuda/bin:/usr/local/cuda-12.2/bin${PATH:+:${PATH}} \
LD_LIBRARY_PATH=/usr/local/cuda/lib64:/usr/local/cuda-12.2/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}} \
CUDA_HOME=/usr/local/cuda \
USE_MODELSCOPE_HUB=1
# 安装CUDA并配置系统环境
# 1. 更新apt并安装必要工具
# 2. 清理apt缓存减小镜像体积
# 3. 下载CUDA安装包
# 4. 静默安装CUDA工具包(请勿安装 driver)
# 5. 配置动态链接库搜索路径
# 6. 更新动态链接库缓存
# 7. 清理安装包
RUN apt-get update && apt-get install -y wget build-essential \
&& rm -rf /var/lib/apt/lists/* \
&& wget https://developer.download.nvidia.com/compute/cuda/12.2.2/local_installers/cuda_12.2.2_535.104.05_linux.run \
&& sh cuda_12.2.2_535.104.05_linux.run --toolkit --silent --override \
&& echo '/usr/local/cuda/lib64' >> /etc/ld.so.conf \
&& echo '/usr/local/cuda-12.2/lib64' >> /etc/ld.so.conf \
&& ldconfig \
&& rm cuda_12.2.2_535.104.05_linux.run
# 设置 uv 使用清华镜像源
ENV UV_INDEX_URL=https://pypi.tuna.tsinghua.edu.cn/simple
ENV PIP_INDEX_URL=https://pypi.tuna.tsinghua.edu.cn/simple
# 安装PyTorch/LLaMA-Factory/ModelScope/Tensorboard 等
# 1. 安装指定版本的PyTorch
# 2. 安装 Tensorboard
# 3. 克隆LLaMA-Factory代码库(使用--depth 1只克隆最新版本以减小体积)
# 4. 切换到LLaMA-Factory目录
# 5. 以可编辑模式安装LLaMA-Factory,并包含torch/metrics/modelscope附加功能
RUN pip install --no-cache-dir torch==2.6.0 \
&& pip install --no-cache-dir tensorboard \
&& git clone --depth 1 https://gh-proxy.org/https://github.com/hiyouga/LLaMA-Factory.git \
&& cd LLaMA-Factory \
&& pip install --no-cache-dir -e ".[torch,metrics,modelscope]" \
&& rm -rf ~/.cache/pip