首页 > 其他分享 >【LLMOps】Accelerate & DeepSpeed多卡使用

【LLMOps】Accelerate & DeepSpeed多卡使用

时间:2023-12-12 15:11:22浏览次数:44  
标签:DeepSpeed 单机 -- 多卡 0.7 Accelerate LoRA LLMOps

介绍

目前大模型微调主要方案是 LLaMA-Factory 

LLaMA-Factory中,提供了两种多卡框架:Accelerate、DeepSpeed

Accelerate

依赖

accelerate==0.24.1
transformers==4.34.1
datasets==2.14.7
tiktoken==0.5.1
peft==0.6.2
trl==0.7.1

这里只列出可能冲突版本

注意

使用最新版本0.24.1,尝试使用0.21.0,发现gpu_ids不生效

其中trl需要降级到0.7.1,最新的0.7.4训练会报错。默认第一步安装是0.7.4

配置

  yaml配置如下:

compute_environment: LOCAL_MACHINE
distributed_type: MULTI_GPU
downcast_bf16: 'no'
machine_rank: 0
main_training_function: main
mixed_precision: fp16
gpu_ids: 1,3
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

  最终命令:

accelerate launch --config_file /root/default_config.yaml src/train_bash.py [llama-factory参数]

  注意:

gpu_ids数量跟num_processes必须要一致

训练速度

模型大小 数据量 训练模式 资源 时长/epoch
14B 4500 LoRA微调 单机单卡 52分钟
14B 4500 LoRA微调 单机2卡 28分钟
14B 4500 LoRA微调 单机3卡 19分钟

从结果来看,训练速度基本与显卡数量成线性关系。且显存大小几乎一样

DeepSpeed

依赖

deepspeed==0.12.3
transformers==4.34.1
datasets==2.14.7
tiktoken==0.5.1
peft==0.6.2
trl==0.7.1

 

配置

deepspeed --include="localhost:0" src/train_bash.py [llama-factory参数] --deepspeed /root/ds_config.json

  

注意

单机训练不需要配置hostfile,但是需要配置localhost

速度

未完待续

标签:DeepSpeed,单机,--,多卡,0.7,Accelerate,LoRA,LLMOps
From: https://www.cnblogs.com/zhouwenyang/p/17851853.html

相关文章

  • 在Megatron-Deepspeed项目中如何下载和预处理Wikipedia数据集
    更详细的查看https://github.com/marsggbo/Megatron-DeepSpeed/blob/main/tutorials/gpt2_wikipedia.md下载Wikipedia压缩数据集(enwiki-latest-pages-articles.xml.bz2)再使用wikiextractor工具将数据集解压缩pipinstallwikiextractorpython-mwikiextractor.WikiExt......
  • DeepSpeed: 大模型训练框架 | 京东云技术团队
    背景:目前,大模型的发展已经非常火热,关于大模型的训练、微调也是各个公司重点关注方向。但是大模型训练的痛点是模型参数过大,动辄上百亿,如果单靠单个GPU来完成训练基本不可能。所以需要多卡或者分布式训练来完成这项工作。一、分布式训练1.1目前主流的大模型分布式训练主要包括两种:......
  • GPU单机多卡训练
    多卡训练的主要思想是将训练数据分成多个批次或样本,在每个GPU上分别处理这些数据,然后将各个GPU计算得到的梯度进行聚合,最终更新模型参数。这样可以显著加快训练过程,特别是对于大规模的深度学习模型。多卡训练需要考虑到数据划分、梯度聚合和模型参数同步等问题,以确保各个GPU上的......
  • PyTorch多卡分布式训练DDP单机多卡
    前言因为课题组发的卡还没有下来,先向导师问了实验室的两张卡借用。之前都是单卡训练模型,正好在这个机会实践以下单机多卡训练模型的方法。关于DDP网上有很多资料,但都比较零碎(有些博客的代码甚至没办法run),Pytorch给出的官方文档看起来也比较吃力。因此这篇文章的主要目的是......
  • deepspeed流水线并行
    docs/_tutorials/pipeline.mdhttps://gitee.com/qzl66/DeepSpeed/blob/master/docs/_tutorials/pipeline.md 1、重构管道模型  ExpressingPipelineModels 流水线并行要求模型被表示为一系列层。在前向传播中,每一层输入为上一层的输出。其实管道并行模型是不需要指定forw......
  • 大模型时代的模型运维与部署:LLMops
    来源:https://blog.csdn.net/sinat_26917383/article/details/1315383341LLMOps介绍1.1关联定义术语LLMOps代表大型语言模型运维。它的简短定义是LLMOps是LLM的MLOps。这意味着LLMOps是一组工具和最佳实践,用于管理LLM支持的应用程序的生命周期,包括开发、部署和维护......
  • 生成式AI时代的AI Infra—从DevOps->MLOps->LLMOps
    来源:https://zhuanlan.zhihu.com/p/640725385 距离上次讲LLM相关的内容已经过去2个月了LLMasController—无限拓展LLM的能力边界,本文想要从AIInfra的角度出发,从更宏观的角度看GenerativeAI对AIInfra生态产生的变化,本文不局限于LLM,文中提到的LLM泛指一切GenerativeAI或者......
  • LLMOps(Large Language Model Operations)简介
    LLMOps是一个新兴领域,专注于管理大型语言模型的整个生命周期,包括数据管理、模型开发、部署和伦理等方面。HuggingFace、Humanloop和NVIDIA等公司正在引领这一领域的发展。HuggingFace的Transformers库已成为构建和微调各种NLP任务的大型语言模型的首选开源库。类似地,Humanloop......
  • 开源大模型训练框架 colossal AI chat 、 DeepSpeed chat
    Colossal-AI是一个专注于大规模模型训练的深度学习系统,Colossal-AI基于PyTorch开发,旨在支持完整的高性能分布式训练生态。Colossal-AI已在GitHub上开源。在Colossal-AI中,我们支持了不同的分布式加速方式,包括张量并行、流水线并行、零冗余数据并行、异构计算等。 ......
  • 解决指定GPU运行和训练 python程序 、深度学习单卡、多卡 训练GPU设置【一文读懂】的
    指定GPU运行和训练Python程序,深度学习单卡、多卡训练GPU设置在进行深度学习任务时,GPU的使用是提高训练速度和效果的重要手段之一。在Python中,我们可以通过一些方法来指定GPU的运行和训练。指定GPU运行当我们使用多个GPU进行训练时,有时需要手动指定程序运行在哪个GPU上。这可以......