hiyouga / LLaMA-Factory

Unify Efficient Fine-Tuning of 100+ LLMs
Apache License 2.0
25.26k stars 3.13k forks source link

## feature request ## 支持 ZeRO3 infinity #4460

Closed Xingxiangrui closed 4 days ago

Xingxiangrui commented 4 days ago

Reminder

System Info

llamafactory==0.8.3.dev0 deepspeed==0.14.0

Reproduction

遇到的问题 :

4090训练时候显卡总是爆,(爆显存的原因主要是context len太长导致的),我试了qlora微调和ZeRO3的LoRA微调,但是依然无法适配长上下文。

为了长上下文+4090小显存的显卡,我只能把优化的方向转向ZeRO-infinity,从而增加虚拟内存,不爆显存。

ZeRO-Infinity 允许将模型状态卸载到 CPU 和/或 NVMe,以节省更多内存。智能分区和平铺算法允许每个 GPU 在卸载期间发送和接收非常少量的数据,以便现代 NVMe 可以容纳比训练过程可用的更大的总内存池。参见:https://deepspeed.readthedocs.io/en/latest/zero3.html

所以请求在llama_factory之中,加入适配 ZeRO-infinity的适配。

Expected behavior

请求在llama-factory之中,加入ZeRO-Infinity的适配。

Others

No response

hiyouga commented 4 days ago

已经支持,使用 https://github.com/hiyouga/LLaMA-Factory/blob/main/examples/deepspeed/ds_z3_offload_config.json