本文主要是介绍训练不同大小的大语言模型需要多少资源?快来看看你的服务器够不够用,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
根据LLaMA-Factory仓库文档,训练大语言模型的资源需求如下表所示,快来看看你的服务器够不够用吧!
方法 | 精度 | 7B | 13B | 30B | 70B | 110B | 8x7B | 8x22B |
---|---|---|---|---|---|---|---|---|
Full * | AMP* | 120GB | 240GB | 600GB | 1200GB | 2000GB | 900GB | 2400GB |
Full | 16 | 60GB | 120GB | 300GB | 600GB | 900GB | 400GB | 1200GB |
Freeze * | 16 | 20GB | 40GB | 80GB | 200GB | 360GB | 160GB | 400GB |
LoRA/GaLore/BAdam | 16 | 16GB | 32GB | 64GB | 160GB | 240GB | 120GB | 320GB |
QLoRA | 8 | 10GB | 20GB | 40GB | 80GB | 140GB | 60GB | 160GB |
QLoRA | 4 | 6GB | 12GB | 24GB | 48GB | 72GB | 30GB | 96GB |
QLoRA | 2 | 4GB | 8GB | 16GB | 24GB | 48GB | 18GB | 48GB |
Full:这种方法表示对模型的所有参数进行完全训练。换句话说,模型中的所有参数都可以在训练过程中更新。这种方法通常需要大量的计算资源和显存,但可以获得最高的模型精度。
Freeze:这种方法表示冻结模型的一部分参数,仅训练特定层或参数。例如,冻结预训练模型的前几层,只训练最后几层或新增的层。这样做可以减少计算资源和显存的需求,同时也能在一定程度上提高训练速度,适用于在已有模型基础上进行微调(fine-tuning)的场景。
AMP:代表自动混合精度(Automatic Mixed Precision)。这是深度学习中的一种技术,通过使用混合精度计算来加速训练和减少内存使用。这涉及在训练过程中同时使用16位(半精度)和32位(单精度)浮点数。
目前,LLaMA-Factory库支持的训练模型如下:
型名 | 模型大小 | 默认模块 | Template |
---|---|---|---|
Baichuan2 | 7B/13B | W_pack | baichuan2 |
BLOOM | 560M/1.1B/1.7B/3B/7.1B/176B | query_key_value | - |
BLOOMZ | 560M/1.1B/1.7B/3B/7.1B/176B | query_key_value | - |
ChatGLM3 | 6B | query_key_value | chatglm3 |
Command-R | 35B/104B | q_proj,v_proj | cohere |
DeepSeek (MoE) | 7B/16B/67B/236B | q_proj,v_proj | deepseek |
Falcon | 7B/40B/180B | query_key_value | falcon |
Gemma/CodeGemma | 2B/7B | q_proj,v_proj | gemma |
InternLM2 | 7B/20B | wqkv | intern2 |
LLaMA | 7B/13B/33B/65B | q_proj,v_proj | - |
LLaMA-2 | 7B/13B/70B | q_proj,v_proj | llama2 |
LLaMA-3 | 8B/70B | q_proj,v_proj | llama3 |
LLaVA-1.5 | 7B/13B | q_proj,v_proj | vicuna |
Mistral/Mixtral | 7B/8x7B/8x22B | q_proj,v_proj | mistral |
OLMo | 1B/7B | q_proj,v_proj | - |
Phi-1.5/2 | 1.3B/2.7B | q_proj,v_proj | - |
Phi-3 | 3.8B | qkv_proj | phi |
Qwen | 1.8B/7B/14B/72B | c_attn | qwen |
Qwen1.5 (Code/MoE) | 0.5B/1.8B/4B/7B/14B/32B/72B/110B | q_proj,v_proj | qwen |
StarCoder2 | 3B/7B/15B | q_proj,v_proj | - |
XVERSE | 7B/13B/65B | q_proj,v_proj | xverse |
Yi (1/1.5) | 6B/9B/34B | q_proj,v_proj | yi |
Yuan | 2B/51B/102B | q_proj,v_proj | yuan |
支持的训练方法如下:
全参数训练 | 部分参数训练 | LoRA | QLoRA | |
---|---|---|---|---|
预训练 | ✅ | ✅ | ✅ | ✅ |
指令监督微调 | ✅ | ✅ | ✅ | ✅ |
奖励模型训练 | ✅ | ✅ | ✅ | ✅ |
PPO 训练 | ✅ | ✅ | ✅ | ✅ |
DPO 训练 | ✅ | ✅ | ✅ | ✅ |
ORPO 训练 | ✅ | ✅ | ✅ | ✅ |
想学习大模型的小伙伴,不妨来试试吧!
这篇关于训练不同大小的大语言模型需要多少资源?快来看看你的服务器够不够用的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!