使用 Dockerfile 快捷构建 LLaMA Factory 镜像
LLaMA Factory 是一个简单易用且高效的大型语言模型(Large Language Model)训练与微调平台。通过 LLaMA Factory,可以在无需编写任何代码的前提下,在本地完成上百种预训练模型的微调。
GitHub: https://github.com/hiyouga/LLaMA-Factory
背景
根据 LLaMA Factory 官方文档,安装 LLaMA Factory 需要系统级 CUDA、Pytorch 等环境,并从 GitHub 下载代码,带来了以下障碍:
- 安装系统级 CUDA 环境 上手难度大
- 安装 Pytorch 需要替换为国内源
- 下载 GitHub 代码需要学术加速
- 手动安装耗时长,占用了宝贵的 GPU 卡时
为此,我们制作了 Dockerfile 文件,您可以提前在 AIStudio 镜像中心使用 Dockerfile 构建镜像,后续可直接在智算云平台的开发机、推理服务、训练模块中使用自定义镜像。
构建 LLaMA Factory 镜像
AIStudio 镜像中心支持从网页端使用 dockerfile 构建镜像,构建完成的镜像将直接保存到租户私有镜像仓库,无需推送。构建镜像过程不会占用您的 GPU 算力资源。
访问智算云平台镜像中心,选择构建镜像。
填写自定义镜像的名称,tag 等基础信息后。「镜像构建资源池」是指镜像构建完成后可使用该镜像的可用区。下拉列表中每一行为一个可用区,每一行记录列出一个可用区的所有资源池。
选择基于 Dockerfile,在「Dockerfile」输入框填入以下内容。
dockerfileFROM 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。
镜像构建完成后,在镜像中心自定义镜像标签页中可查到状态为「构建成功」,镜像大小为 8GB 左右。
使用自定义镜像启动开发机
构建完成的镜像可以用于 AIStudio 开发机、推理服务、任务中。下面的示例中,我们使用新创建的 LLaMA Factory 镜像启动一个 4090 开发机。
进入创建开发机页面。请根据页面提示,完成相关配置。在选择镜像,请选择自定义镜像中的 LLaMA Factory 镜像。
在开发机部署完成并进入运行中状态后(首次拉取镜像可能会比较慢,请耐心等待),登录 Web Terminal,验证 LLaMA Factory 可用性:
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 页面,目前提供以下方式:
- 预览开发机上运行的 Web 应用:使用开发机的预览 Web 应用功能,直接从智算云平台打开预览页面。
- 公网访问开发机内 HTTP 服务:利用开发机提供的 SSH 服务和 SSH 端口转发功能,将开发机内网端口映射到本地设备,从而实现从公网直接访问开发机内部服务。