【docker好用系列】llama-factory环境配置

打印 上一主题 下一主题

主题 959|帖子 959|积分 2877

分享一个自用的llama-factory的Dockerfile

留意:使用之前,先在同级目录下放一个LLaMA-Factory-main.zip以及vscode-server.tar.gz
前者是为了防止git拉不下来的情况,后者是让vscode直连这个容器,下面是Dockerfile
  1. # 使用 NVIDIA 官方提供的 Ubuntu 22.04 基础镜像,包含 CUDA 12.4.1 和 cuDNN 开发版
  2. FROM nvidia/cuda:12.4.1-cudnn-devel-ubuntu22.04
  3. # 设置环境变量,避免 APT 交互式输入,确保自动安装软件包
  4. ENV DEBIAN_FRONTEND=noninteractive
  5. # 修改 APT 软件源为清华大学镜像,加速国内软件包下载
  6. RUN sed -i 's/archive.ubuntu.com/mirrors.tuna.tsinghua.edu.cn/g' /etc/apt/sources.list && \
  7.     sed -i 's/security.ubuntu.com/mirrors.tuna.tsinghua.edu.cn/g' /etc/apt/sources.list
  8. # 更新 APT 软件包列表,并安装一些常用工具
  9. RUN apt-get update && apt-get install -y \
  10.     wget \                     # 下载工具
  11.     git \                      # 代码版本管理工具
  12.     build-essential \          # 常用编译工具(包含 gcc、make 等)
  13.     vim \                      # 文本编辑器
  14.     ssh \                      # SSH 远程连接支持
  15.     unzip \                    # 解压 ZIP 文件工具
  16.     cmake \                    # C++ 项目构建工具
  17.     g++ \                      # C++ 编译器
  18.     && apt-get clean \         # 清理 APT 缓存,减少镜像体积
  19.     && rm -rf /var/lib/apt/lists/*  # 删除 APT 缓存文件,进一步瘦身
  20. # 配置 SSH,允许密码登录,并允许 root 用户直接登录
  21. RUN sed -i 's/#PasswordAuthentication yes/PasswordAuthentication yes/g' /etc/ssh/sshd_config && \
  22.     sed -i 's/#PermitRootLogin prohibit-password/PermitRootLogin yes/g' /etc/ssh/sshd_config
  23. # 下载 Miniconda 并安装(使用清华大学镜像加速)
  24. RUN wget https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/Miniconda3-latest-Linux-x86_64.sh -O ~/miniconda.sh && \
  25.     bash ~/miniconda.sh -b -p /opt/conda && \  # 静默安装 Miniconda 到 /opt/conda 目录
  26.     rm ~/miniconda.sh && \                     # 删除安装脚本,节省空间
  27.     /opt/conda/bin/conda clean -a -y           # 清理 Conda 缓存,减少镜像体积
  28. # 添加 Conda 到环境变量,使其可以直接使用
  29. ENV PATH /opt/conda/bin:$PATH
  30. # 配置 Conda 和 pip 使用清华大学镜像,加速 Python 依赖安装
  31. RUN conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/ && \
  32.     conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/ && \
  33.     conda config --set show_channel_urls yes && \
  34.     pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
  35. # 创建一个新的 Conda 虚拟环境,命名为 llama-factory,并安装 Python 3.11
  36. RUN conda create -n llama-factory python=3.11 -y
  37. # 指定 Docker 运行的默认 shell,并激活 llama-factory 环境
  38. SHELL ["conda", "run", "-n", "llama-factory", "/bin/bash", "-c"]
  39. # 在 Conda 环境中安装 PyTorch 及其他依赖
  40. RUN pip install torch torchvision torchaudio && \  # 安装 PyTorch
  41.     pip install deepspeed flash-attn              # 安装 DeepSpeed 和 Flash Attention
  42. # 复制 VS Code 服务器和 LLaMA-Factory 代码到容器中
  43. WORKDIR /root
  44. COPY vscode-server.tar.gz /tmp/                 # 复制 VS Code Server 压缩包到 /tmp/
  45. COPY LLaMA-Factory-main.zip /tmp/               # 复制 LLaMA-Factory 代码压缩包到 /tmp/
  46. # 解压 VS Code Server 并删除压缩包节省空间
  47. RUN tar -xzf /tmp/vscode-server.tar.gz -C ~/ && \
  48.     rm /tmp/vscode-server.tar.gz
  49. # 解压 LLaMA-Factory 代码,并安装其 Python 依赖
  50. RUN unzip /tmp/LLaMA-Factory-main.zip -d /root/ && \
  51.     rm /tmp/LLaMA-Factory-main.zip && \  # 删除压缩包,节省空间
  52.     cd /root/LLaMA-Factory-main && \     # 进入 LLaMA-Factory 目录
  53.     pip install -e ".[torch,metrics]"    # 安装 LLaMA-Factory 及相关依赖
  54. # 设置默认工作目录为 LLaMA-Factory
  55. WORKDIR /root/LLaMA-Factory-main
  56. # 运行容器时,启动 SSH 服务,并进入交互式 bash shell
  57. CMD service ssh start && /bin/bash
复制代码
使用方法:
  1. # 编译环境
  2. docker build -t llama-factory:latest .
  3. # 运行容器
  4. docker run --gpus all -it -p 22:22 llama-factory:latest
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

温锦文欧普厨电及净水器总代理

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表