2024-11-21 一站式 AI 平台生日大派对!2024-11-21 一站式 AI 平台生日大派对! 无问芯穹特别推出多项超值福利!立即参与
Skip to content
回到全部文章

使用 Dockerfile 快捷构建 LLaMA Factory 镜像

LLaMA Factory 是一个简单易用且高效的大型语言模型(Large Language Model)训练与微调平台。通过 LLaMA Factory,可以在无需编写任何代码的前提下,在本地完成上百种预训练模型的微调。

GitHub: https://github.com/hiyouga/LLaMA-Factory

背景

根据 LLaMA Factory 官方文档,安装 LLaMA Factory 需要系统级 CUDA、Pytorch 等环境,并从 GitHub 下载代码,带来了以下障碍:

为此,我们制作了 Dockerfile 文件,您可以提前在 AIStudio 镜像中心使用 Dockerfile 构建镜像,后续可直接在智算云平台的开发机、推理服务、训练模块中使用自定义镜像。

构建 LLaMA Factory 镜像

AIStudio 镜像中心支持从网页端使用 dockerfile 构建镜像,构建完成的镜像将直接保存到租户私有镜像仓库,无需推送。构建镜像过程不会占用您的 GPU 算力资源。

  1. 访问智算云平台镜像中心,选择构建镜像

  2. 填写自定义镜像的名称,tag 等基础信息后。「镜像构建资源池」是指镜像构建完成后可使用该镜像的可用区。下拉列表中每一行为一个可用区,每一行记录列出一个可用区的所有资源池。

    alt text

  3. 选择基于 Dockerfile,在「Dockerfile」输入框填入以下内容。

    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
    
    # 安装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.4.0 \
        && pip install --no-cache-dir tensorboard \
        && git clone --depth 1 https://ghfast.top/https://github.com/hiyouga/LLaMA-Factory.git \
        && cd LLaMA-Factory \
        && pip install --no-cache-dir -e ".[torch,metrics,modelscope]"

    该镜像基于平台基础镜像 ubuntu:22.04-20240429,其中已预装 python,git 等。根据 LLaMA Factory 要求,预装系统级 CUDA 12.2,Ptorch 2.4.0。整个构建过程需要耗时 15-30 分钟。

    NOTE

    该镜像并未安装所有可选依赖组件,例如 deepspeed。

  4. 镜像构建完成后,在镜像中心自定义镜像标签页中可查到状态为「构建成功」,镜像大小为 8GB 左右。

    alt text

使用自定义镜像启动开发机

构建完成的镜像可以用于 AIStudio 开发机、推理服务、任务中。下面的示例中,我们使用新创建的 LLaMA Factory 镜像启动一个 4090 开发机。

进入创建开发机页面。请根据页面提示,完成相关配置。在选择镜像,请选择自定义镜像中的 LLaMA Factory 镜像。

在开发机部署完成并进入运行中状态后(首次拉取镜像可能会比较慢,请耐心等待),登录 Web Terminal,验证 LLaMA Factory 可用性:

shell
root@is-dage55yhoxvt7cim-devmachine-0:~# llamafactory-cli version
----------------------------------------------------------
| Welcome to LLaMA Factory, version 0.9.2.dev0           |
|                                                        |
| Project page: https://github.com/hiyouga/LLaMA-Factory |
----------------------------------------------------------
root@is-dage55yhoxvt7cim-devmachine-0:~#

使用提示

  • LLaMA Factory 在 /LLaMA-Factory 目录下。
  • 该镜像已通过 USE_MODELSCOPE_HUB 默认启用 ModelScope 为模型来源站点。
  • 开发机、推理服务实例、任务 Worker 的 rootfs 空间均限 50GB。在实际使用时,请注意将数据集、模型的存储在高性能共享存储云盘中。

后续步骤

如果使用 llamafactory-cli webui,可能需要访问 Web 页面,目前提供以下方式: