LLaMA-Factory 基于docker的大模型多卡分布式微调

本文涉及的产品
任务调度 XXL-JOB 版免费试用,400 元额度,开发版规格
应用实时监控服务-应用监控,每月50GB免费额度
函数计算FC,每月15万CU 3个月
简介: LLaMA-Factory是微调工具,包含Dockerfile和train.sh脚本,适用于多卡训练。Dockerfile基于nvidia/cuda:12.1.0镜像,安装Python 3.10、PyTorch 2.2.0、transformers等库。train.sh运行Docker容器,使用accelerate launch进行训练,参数包括模型路径、学习率、优化器设置等。注意使用--shm-size 32G --gpus all,并可选启用unsloth加速。默认配置文件设定了分布式训练和混合精度BF16。

LLaMA-Factory是一个相当优秀的微调工具。这里提供一个dockerfile和一个train脚本,用于多卡微调,供大家参考。
```FROM nvidia/cuda:12.1.0-cudnn8-devel-ubuntu22.04

python3

RUN apt-get update && apt-get install -y python3.10 python3-pip

torch

COPY torch-2.2.0+cu121-cp310-cp310-linux_x86_64.whl torch-2.2.0+cu121-cp310-cp310-linux_x86_64.whl
RUN pip3 install torch-2.2.0+cu121-cp310-cp310-linux_x86_64.whl

llama factory requirements

RUN pip3 install transformers==4.37.2 datasets==2.16.1 accelerate==0.25.0 peft==0.7.1 trl==0.7.10 gradio==3.50.2 \
deepspeed modelscope ipython scipy einops sentencepiece protobuf jieba rouge-chinese nltk sse-starlette matplotlib \
--no-cache-dir -i https://pypi.tuna.tsinghua.edu.cn/simple

unsloth

RUN apt-get install -y git
RUN pip install --upgrade pip
RUN pip install triton --no-cache-dir -i https://pypi.tuna.tsinghua.edu.cn/simple
RUN pip install "unsloth[cu121_ampere_torch220] @ git+https://github.com/unslothai/unsloth.git"


train.sh

```docker run \
  -it \
  --rm \
  --name llm \
  --network=host \
  --shm-size 32G \
  --gpus all \
  -v /home/[user_name]/.cache/modelscope/hub/:/root/.cache/modelscope/hub/ \
  -v /home/[user_name]/LLaMA-Factory/:/LLaMA-Factory/ \
  -v /home/[user_name]/.cache/huggingface/accelerate/default_config.yaml:/root/.cache/huggingface/accelerate/default_config.yaml \
  -w /LLaMA-Factory \
  -e USE_MODELSCOPE_HUB=1 \
  llm:v1.1 \
  accelerate launch src/train_bash.py \
    --stage sft \
    --do_train True \
    --model_name_or_path ZhipuAI/chatglm3-6b \
    --finetuning_type lora \
    --use_unsloth True \
    --template chatglm3 \
    --dataset_dir data \
    --dataset alpaca_gpt4_zh \
    --cutoff_len 512 \
    --learning_rate 5e-05 \
    --num_train_epochs 2.0 \
    --max_samples 8000 \
    --per_device_train_batch_size 1 \
    --gradient_accumulation_steps 2 \
    --lr_scheduler_type cosine \
    --max_grad_norm 1.0 \
    --logging_steps 5 \
    --save_steps 1000 \
    --warmup_steps 0 \
    --lora_rank 8 \
    --lora_dropout 0.1 \
    --lora_target query_key_value \
    --output_dir saves/ChatGLM3-6B-Chat/lora/train_20240212 \
    --fp16 True \
    --plot_loss True

注意事项:

–shm-size 32G --gpus all 这两个参数是必要的
–use_unsloth True 可以调用unsloth实现加速
需要保证–gradient_accumulation_steps 2在deepspeed配置中的一致性
default_config.yaml
```compute_environment: LOCAL_MACHINE
debug: false

distributed_type: MULTI_GPU

deepspeed_config:
deepspeed_multinode_launcher: standard
gradient_accumulation_steps: 2
offload_optimizer_device: none
offload_param_device: none
zero3_init_flag: false
zero3_save_16bit_model: false
zero_stage: 2
distributed_type: DEEPSPEED
downcast_bf16: 'no'
gpu_ids: all
machine_rank: 0
main_training_function: main
mixed_precision: bf16
num_machines: 1
num_processes: 2
rdzv_backend: static
same_network: true
tpu_env: []
tpu_use_cluster: false
tpu_use_sudo: false
use_cpu: false

```

相关实践学习
部署Stable Diffusion玩转AI绘画(GPU云服务器)
本实验通过在ECS上从零开始部署Stable Diffusion来进行AI绘画创作,开启AIGC盲盒。
目录
相关文章
|
25天前
|
机器学习/深度学习 人工智能 自然语言处理
ICLR 2025 | EDiT:一种基于 Local SGD 策略的大模型高效分布式训练方法
蚂蚁 AI Infra 团队在深度学习最核心之一的训练框架方向上持续投入与创新,实现了提升资源利用率、加速训练、提升训练稳定性等目标。我们提出的 EDiT 方法,即为其中一项工作。
|
20天前
|
自然语言处理 测试技术 Serverless
Qwen3开源发布:Think Deeper, Act Faster!社区推理、部署、微调、MCP调用实战教程来啦!
Qwen3开源发布:Think Deeper, Act Faster!社区推理、部署、微调、MCP调用实战教程来啦!
383 22
|
1月前
|
存储 负载均衡 测试技术
ACK Gateway with Inference Extension:优化多机分布式大模型推理服务实践
本文介绍了如何利用阿里云容器服务ACK推出的ACK Gateway with Inference Extension组件,在Kubernetes环境中为多机分布式部署的LLM推理服务提供智能路由和负载均衡能力。文章以部署和优化QwQ-32B模型为例,详细展示了从环境准备到性能测试的完整实践过程。
|
5月前
|
JSON 文字识别 数据可视化
Qwen2-VL微调实战:LaTex公式OCR识别任务(完整代码)
《SwanLab机器学习实战教程》推出了一项基于Qwen2-VL大语言模型的LaTeX OCR任务,通过指令微调实现多模态LLM的应用。本教程详述了环境配置、数据集准备、模型加载、SwanLab集成及微调训练等步骤,旨在帮助开发者轻松上手视觉大模型的微调实践。
|
2月前
|
存储 人工智能 固态存储
DeepSeek开源周第五弹之一!3FS:支撑V3/R1模型数据访问的高性能分布式文件系统
3FS是DeepSeek开源的高性能分布式文件系统,专为AI训练和推理任务设计,提供高达6.6 TiB/s的读取吞吐量,支持强一致性保障和通用文件接口,优化AI工作负载。
636 2
DeepSeek开源周第五弹之一!3FS:支撑V3/R1模型数据访问的高性能分布式文件系统
|
5月前
|
搜索推荐 物联网 PyTorch
Qwen2.5-7B-Instruct Lora 微调
本教程介绍如何基于Transformers和PEFT框架对Qwen2.5-7B-Instruct模型进行LoRA微调。
6554 34
Qwen2.5-7B-Instruct Lora 微调
|
5月前
|
机器学习/深度学习 数据可视化 TensorFlow
使用Python实现深度学习模型的分布式训练
使用Python实现深度学习模型的分布式训练
268 73
|
4月前
|
监控 数据库 数据采集
大模型编程(5)- 微调体验
大模型微调学习
251 8
|
5月前
|
数据采集 自然语言处理 NoSQL
Qwen for Tugraph:自然语言至图查询语言翻译大模型微调最佳实践
在图数据库的应用场景中,自然语言至图查询语言的高效转换一直是行业中的重要挑战。本次实践基于阿里云 Qwen 大模型,围绕 TuGraph 图数据库的需求,探索并验证了一套高效的大模型微调方案,显著提升了模型生成 Cypher 查询语句的能力。通过数据清洗、两阶段微调方法以及两模型推理框架等一系列创新策略,我们成功解决了图查询语言翻译任务中的核心问题。本文将从背景与目标、数据准备与清洗、微调框架设计、Prompt设计与优化、模型推理、最佳实践效果以及前景展望等六个部分出发,向读者逐步介绍我们的方案。
|
6月前
|
存储 分布式计算 负载均衡
分布式计算模型和集群计算模型的区别
【10月更文挑战第18天】分布式计算模型和集群计算模型各有特点和优势,在实际应用中需要根据具体的需求和条件选择合适的计算架构模式,以达到最佳的计算效果和性能。
256 62