使用 Docker 构建 LLaMA-Factory 环境

使用 Docker 构建 LLaMA-Factory 环境可以简化依赖安装和环境配置。以下是关于如何使用 Docker 构建 CUDA、Ascend NPU 和 AMD ROCm 环境的详细说明。

1. 安装 Docker

首先,确保你的系统上已经安装了 Docker。如果没有安装,可以访问 Docker 官方网站获取安装说明,安装完成后确认 Docker 服务已经启动。

2. 获取 LLaMA-Factory 代码

在开始构建 Docker 容器前,需要将 LLaMA-Factory 的代码克隆到本地:

git clone --depth 1 https://github.com/hiyouga/LLaMA-Factory.git
cd LLaMA-Factory

3. 使用 Docker Compose 构建

3.1 针对 CUDA 用户
  1. 进入 docker/docker-cuda/ 目录:

    cd docker/docker-cuda/
    
  2. 运行 Docker Compose 启动容器:

    docker compose up -d
    

    这条命令会在后台运行 Docker 容器。up -d中的-d表示容器将在后台运行。

  3. 进入容器内部:

    docker compose exec llamafactory bash
    

    这条命令会将你带入到名为 llamafactory 的容器中,并且你将能够在容器内操作。

3.2 针对 Ascend NPU 用户
  1. 进入 docker/docker-npu/ 目录:

    cd docker/docker-npu/
    
  2. 启动容器:

    docker compose up -d
    
  3. 进入容器内部:

    docker compose exec llamafactory bash
    
3.3 针对 AMD ROCm 用户
  1. 进入 docker/docker-rocm/ 目录:

    cd docker/docker-rocm/
    
  2. 启动容器:

    docker compose up -d
    
  3. 进入容器内部:

    docker compose exec llamafactory bash
    

4. 使用 Docker 容器内部进行操作

一旦进入容器内部,你可以按照 LLaMA-Factory 的使用教程进行训练、推理或模型微调等操作。

例如,你可以运行以下命令进行 LoRA 微调:

llamafactory-cli train examples/train_lora/llama3_lora_sft.yaml

5. 停止 Docker 容器

完成操作后,如果不再需要运行容器,可以通过以下命令停止并删除容器:

docker compose down

6. 手动构建 Docker 容器(不使用 Docker Compose)

如果你不想使用 Docker Compose,也可以手动构建 Docker 容器。

  1. 首先,编写一个 Dockerfile,其内容与 docker/docker-cuda/Dockerfile 类似。以 CUDA 为例,Dockerfile 可能包含如下内容:

    FROM nvidia/cuda:11.7.0-cudnn8-devel-ubuntu20.04
    
    # 安装基础依赖
    RUN apt-get update && apt-get install -y \
        git \
        curl \
        wget \
        python3 \
        python3-pip
    
    # 克隆 LLaMA-Factory 项目
    RUN git clone --depth 1 https://github.com/hiyouga/LLaMA-Factory.git
    
    # 安装 Python 依赖
    WORKDIR /LLaMA-Factory
    RUN pip install -e ".[torch,metrics]"
    
  2. 构建镜像:

    docker build -t llamafactory-cuda .
    
  3. 运行镜像并进入容器:

    docker run -it llamafactory-cuda bash
    

    你将进入容器内部,在这里可以运行 LLaMA-Factory 的相关命令。

7. 挂载数据卷

如果你的数据集存储在主机本地磁盘上,可以使用 Docker 的卷挂载功能,将主机目录映射到容器内部。

例如,假设数据存储在 /path/to/your/data,可以通过以下命令启动容器并将数据卷挂载:

docker run -it -v /path/to/your/data:/mnt/data llamafactory-cuda bash

容器内部的 /mnt/data 就会映射到主机上的 /path/to/your/data 目录。

总结

使用 Docker 构建 LLaMA-Factory 环境可以大大简化依赖安装和环境配置的复杂性。根据你的硬件类型(CUDA、Ascend NPU、AMD ROCm),可以选择对应的 Docker 环境进行构建。Docker Compose 进一步简化了容器的管理,通过简单的命令即可启动、进入和停止容器。

如果不使用 Docker Compose,也可以手动构建和运行 Docker 镜像,手动构建时还可以选择挂载本地数据卷,以便在容器中访问本地的数据集。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值