当前位置: 首页 > news >正文

使用 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 镜像,手动构建时还可以选择挂载本地数据卷,以便在容器中访问本地的数据集。

相关文章:

  • windows C++-UWP 应用中使用 HttpRequest 类
  • 微软开源项目 Detours 详细介绍与使用实例分享
  • JetLinks物联网平台微服务化系列文章介绍
  • linux 目录文件夹操作
  • 使用 Docker 制作 YashanDB 镜像:深度解析与实战指南
  • 番外篇 | 复现AC-YOLOv5,进行自动化织物缺陷检测
  • CSP-J 复赛算法 贪心策略应用
  • 棒材翘头翘尾影响大 在线直线度测量仪监测保品质!
  • index.html 调用 ajax
  • [spring]SpringBoot拦截器 统一数据返回格式 统一异常处理
  • QML使用Qt自带软键盘例子
  • Robot Operating System——带有协方差矩阵的三维空间中的位姿(位置和方向)
  • 成都睿明智科技有限公司赋能商家高效变现
  • OpenHarmony(鸿蒙南向)——平台驱动开发【PIN】
  • N诺计算机考研-错题(DS)
  • exif信息对照
  • HashMap剖析之内部结构
  • Linux快速复制或删除大量小文件
  • PHP CLI应用的调试原理
  • python docx文档转html页面
  • RedisSerializer之JdkSerializationRedisSerializer分析
  • 分享几个不错的工具
  • 跨域
  • 力扣(LeetCode)22
  • 每天一个设计模式之命令模式
  • 排序算法之--选择排序
  • 容器化应用: 在阿里云搭建多节点 Openshift 集群
  • 使用前端开发工具包WijmoJS - 创建自定义DropDownTree控件(包含源代码)
  • 通过npm或yarn自动生成vue组件
  • 写代码的正确姿势
  • 新书推荐|Windows黑客编程技术详解
  • 一个项目push到多个远程Git仓库
  • 追踪解析 FutureTask 源码
  • Oracle Portal 11g Diagnostics using Remote Diagnostic Agent (RDA) [ID 1059805.
  • 1.Ext JS 建立web开发工程
  • ionic入门之数据绑定显示-1
  • 组复制官方翻译九、Group Replication Technical Details
  • ​Benvista PhotoZoom Pro 9.0.4新功能介绍
  • # Kafka_深入探秘者(2):kafka 生产者
  • # MySQL server 层和存储引擎层是怎么交互数据的?
  • #HarmonyOS:基础语法
  • #pragma 指令
  • #systemverilog# 之 event region 和 timeslot 仿真调度(十)高层次视角看仿真调度事件的发生
  • (13)DroneCAN 适配器节点(一)
  • (7)STL算法之交换赋值
  • (Ruby)Ubuntu12.04安装Rails环境
  • (动手学习深度学习)第13章 计算机视觉---微调
  • (附源码)spring boot基于小程序酒店疫情系统 毕业设计 091931
  • (附源码)springboot人体健康检测微信小程序 毕业设计 012142
  • (附源码)ssm航空客运订票系统 毕业设计 141612
  • (规划)24届春招和25届暑假实习路线准备规划
  • (回溯) LeetCode 78. 子集
  • (微服务实战)预付卡平台支付交易系统卡充值业务流程设计
  • (自用)交互协议设计——protobuf序列化
  • ./mysql.server: 没有那个文件或目录_Linux下安装MySQL出现“ls: /var/lib/mysql/*.pid: 没有那个文件或目录”...