训练不同大小的大语言模型需要多少资源?快来看看你的服务器够不够用

本文主要是介绍训练不同大小的大语言模型需要多少资源?快来看看你的服务器够不够用,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

根据LLaMA-Factory仓库文档,训练大语言模型的资源需求如下表所示,快来看看你的服务器够不够用吧!

方法精度7B13B30B70B110B8x7B8x22B
Full *AMP*120GB240GB600GB1200GB2000GB900GB2400GB
Full1660GB120GB300GB600GB900GB400GB1200GB
Freeze *1620GB40GB80GB200GB360GB160GB400GB
LoRA/GaLore/BAdam1616GB32GB64GB160GB240GB120GB320GB
QLoRA810GB20GB40GB80GB140GB60GB160GB
QLoRA46GB12GB24GB48GB72GB30GB96GB
QLoRA24GB8GB16GB24GB48GB18GB48GB

Full:这种方法表示对模型的所有参数进行完全训练。换句话说,模型中的所有参数都可以在训练过程中更新。这种方法通常需要大量的计算资源和显存,但可以获得最高的模型精度。
Freeze:这种方法表示冻结模型的一部分参数,仅训练特定层或参数。例如,冻结预训练模型的前几层,只训练最后几层或新增的层。这样做可以减少计算资源和显存的需求,同时也能在一定程度上提高训练速度,适用于在已有模型基础上进行微调(fine-tuning)的场景。
AMP:代表自动混合精度(Automatic Mixed Precision)。这是深度学习中的一种技术,通过使用混合精度计算来加速训练和减少内存使用。这涉及在训练过程中同时使用16位(半精度)和32位(单精度)浮点数。

目前,LLaMA-Factory库支持的训练模型如下:

型名模型大小默认模块Template
Baichuan27B/13BW_packbaichuan2
BLOOM560M/1.1B/1.7B/3B/7.1B/176Bquery_key_value-
BLOOMZ560M/1.1B/1.7B/3B/7.1B/176Bquery_key_value-
ChatGLM36Bquery_key_valuechatglm3
Command-R35B/104Bq_proj,v_projcohere
DeepSeek (MoE)7B/16B/67B/236Bq_proj,v_projdeepseek
Falcon7B/40B/180Bquery_key_valuefalcon
Gemma/CodeGemma2B/7Bq_proj,v_projgemma
InternLM27B/20Bwqkvintern2
LLaMA7B/13B/33B/65Bq_proj,v_proj-
LLaMA-27B/13B/70Bq_proj,v_projllama2
LLaMA-38B/70Bq_proj,v_projllama3
LLaVA-1.57B/13Bq_proj,v_projvicuna
Mistral/Mixtral7B/8x7B/8x22Bq_proj,v_projmistral
OLMo1B/7Bq_proj,v_proj-
Phi-1.5/21.3B/2.7Bq_proj,v_proj-
Phi-33.8Bqkv_projphi
Qwen1.8B/7B/14B/72Bc_attnqwen
Qwen1.5 (Code/MoE)0.5B/1.8B/4B/7B/14B/32B/72B/110Bq_proj,v_projqwen
StarCoder23B/7B/15Bq_proj,v_proj-
XVERSE7B/13B/65Bq_proj,v_projxverse
Yi (1/1.5)6B/9B/34Bq_proj,v_projyi
Yuan2B/51B/102Bq_proj,v_projyuan

支持的训练方法如下:

全参数训练部分参数训练LoRAQLoRA
预训练
指令监督微调
奖励模型训练
PPO 训练
DPO 训练
ORPO 训练

想学习大模型的小伙伴,不妨来试试吧!

这篇关于训练不同大小的大语言模型需要多少资源?快来看看你的服务器够不够用的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/993824

相关文章

从基础到高级详解Go语言中错误处理的实践指南

《从基础到高级详解Go语言中错误处理的实践指南》Go语言采用了一种独特而明确的错误处理哲学,与其他主流编程语言形成鲜明对比,本文将为大家详细介绍Go语言中错误处理详细方法,希望对大家有所帮助... 目录1 Go 错误处理哲学与核心机制1.1 错误接口设计1.2 错误与异常的区别2 错误创建与检查2.1 基础

Linux云服务器手动配置DNS的方法步骤

《Linux云服务器手动配置DNS的方法步骤》在Linux云服务器上手动配置DNS(域名系统)是确保服务器能够正常解析域名的重要步骤,以下是详细的配置方法,包括系统文件的修改和常见问题的解决方案,需要... 目录1. 为什么需要手动配置 DNS?2. 手动配置 DNS 的方法方法 1:修改 /etc/res

Go语言中json操作的实现

《Go语言中json操作的实现》本文主要介绍了Go语言中的json操作的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧... 目录 一、jsOChina编程N 与 Go 类型对应关系️ 二、基本操作:编码与解码 三、结构体标签(Struc

Linux五种IO模型的使用解读

《Linux五种IO模型的使用解读》文章系统解析了Linux的五种IO模型(阻塞、非阻塞、IO复用、信号驱动、异步),重点区分同步与异步IO的本质差异,强调同步由用户发起,异步由内核触发,通过对比各模... 目录1.IO模型简介2.五种IO模型2.1 IO模型分析方法2.2 阻塞IO2.3 非阻塞IO2.4

python语言中的常用容器(集合)示例详解

《python语言中的常用容器(集合)示例详解》Python集合是一种无序且不重复的数据容器,它可以存储任意类型的对象,包括数字、字符串、元组等,下面:本文主要介绍python语言中常用容器(集合... 目录1.核心内置容器1. 列表2. 元组3. 集合4. 冻结集合5. 字典2.collections模块

基于Go语言开发一个 IP 归属地查询接口工具

《基于Go语言开发一个IP归属地查询接口工具》在日常开发中,IP地址归属地查询是一个常见需求,本文将带大家使用Go语言快速开发一个IP归属地查询接口服务,有需要的小伙伴可以了解下... 目录功能目标技术栈项目结构核心代码(main.go)使用方法扩展功能总结在日常开发中,IP 地址归属地查询是一个常见需求:

Nginx屏蔽服务器名称与版本信息方式(源码级修改)

《Nginx屏蔽服务器名称与版本信息方式(源码级修改)》本文详解如何通过源码修改Nginx1.25.4,移除Server响应头中的服务类型和版本信息,以增强安全性,需重新配置、编译、安装,升级时需重复... 目录一、背景与目的二、适用版本三、操作步骤修改源码文件四、后续操作提示五、注意事项六、总结一、背景与

SpringBoot实现不同接口指定上传文件大小的具体步骤

《SpringBoot实现不同接口指定上传文件大小的具体步骤》:本文主要介绍在SpringBoot中通过自定义注解、AOP拦截和配置文件实现不同接口上传文件大小限制的方法,强调需设置全局阈值远大于... 目录一  springboot实现不同接口指定文件大小1.1 思路说明1.2 工程启动说明二 具体实施2

Web服务器-Nginx-高并发问题

《Web服务器-Nginx-高并发问题》Nginx通过事件驱动、I/O多路复用和异步非阻塞技术高效处理高并发,结合动静分离和限流策略,提升性能与稳定性... 目录前言一、架构1. 原生多进程架构2. 事件驱动模型3. IO多路复用4. 异步非阻塞 I/O5. Nginx高并发配置实战二、动静分离1. 职责2

GO语言短变量声明的实现示例

《GO语言短变量声明的实现示例》在Go语言中,短变量声明是一种简洁的变量声明方式,使用:=运算符,可以自动推断变量类型,下面就来具体介绍一下如何使用,感兴趣的可以了解一下... 目录基本语法功能特点与var的区别适用场景注意事项基本语法variableName := value功能特点1、自动类型推