大模型全参数微调实战(非常详细)零基础入门到精通,收藏这一篇就够了
微调框架使用的是,每张卡80G显存,,**数据盘50G,系统盘30G.**8B模型磁盘占用带下大概是20G.微调完的模型磁盘占用大小是35G左右。全参数微调占用的显存大概是lora参数微调的10倍+,一定要预留足够的显存,防止出现显存不够的问题。就我目前的数据集的实验结果,全参数微调跟lora微调相比,效果差不多,可能是数据集比较少的原因,后续会增加更多更好高质量的数据集和优化微调参数进行更多的验
1.实战目的
**lora微调效果不理想,希望通过全参数微调,提升模型有更好的推理效果。**
2.全参数微调的过程
-
选择模型,此次使用的是llama-3-8B
-
选择数据集,使用自己的业务问答数据集进行微调
-
使用微调框架,此次使用的是Llama-Factory
-
使用客户问题验证模型微调以后的效果
3.模型选择
模型选择的是llama-3-8b的非量化版本,下载地址在modelscope,modelscope是国内的模型下载地址,速度更快。**下载地址如下**:
https://www.modelscope.cn/models/codingsteven/Llama-3-8B-chat/files
4.数据集选择
自定义业务数据集,格式如下:
[` `{` `"instruction": "文文是谁",` `"input": "",` `"output": "文文是AI博主之路公众号的作者,是一个大模型应用开发者"` `},` `{` `"instruction": "你是谁?",` `"input": "",` `"output": "我是文文训练的大模型,我的名字叫文文小助手"` `},` `{` `"instruction": "你的基座大模型是什么",` `"input": "",` `"output": "我的基座大模型是Llama-3-8B"` `}``]
5.微调框架选择
微调框架使用的是Llama-Factory项目,环境使用的是4张A800的显卡,每张卡80G显存,共320G显存,**数据盘50G,系统盘30G.**8B模型磁盘占用带下大概是20G.微调完的模型磁盘占用大小是35G左右。全参数微调占用的显存大概是lora参数微调的10倍+,一定要预留足够的显存,防止出现显存不够的问题。
6.环境配置与运行
安装依赖
%%capture``# Installs Unsloth, Xformers (Flash Attention) and all other packages!``!pip install "unsloth[colab-new] @ git+https://github.com/unslothai/unsloth.git"``!pip install --no-deps xformers "trl<0.9.0" peft accelerate bitsandbytes``#下载Llama-fatcory仓库``!git clone --depth 1 https://github.com/hiyouga/LLaMA-Factory.git``#切换目录``cd LLaMA-Factory/``#安装依赖``!pip install -e ".[torch,metrics,deepspeed]"`` ``指定清华镜像源``pip install -i https://pypi.tuna.tsinghua.edu.cn/simple -e ".[torch,metrics,deepspeed]"``#运行微调命令``FORCE_TORCHRUN=1 llamafactory-cli train examples/train_full/llama3_full_sft_ds3.yaml
llama3\_full\_sft\_ds3.yaml详细配置如下
### model``model_name_or_path: /root/Llama-3-8B-chat`` ``### method``stage: sft``do_train: true``finetuning_type: full``deepspeed: examples/deepspeed/ds_z3_config.json`` ``### dataset``dataset: alpaca_zh_demo``template: llama3``cutoff_len: 1024``max_samples: 1000``overwrite_cache: true``preprocessing_num_workers: 16`` ``### output``output_dir: saves/llama3-8b/full/sft``logging_steps: 1``save_steps: 100``plot_loss: true``overwrite_output_dir: true`` ``### train``per_device_train_batch_size: 1``gradient_accumulation_steps: 2``learning_rate: 1.0e-4``num_train_epochs: 100``lr_scheduler_type: cosine``warmup_ratio: 0.1``bf16: true``ddp_timeout: 180000000`` ``### eval``val_size: 0.1``per_device_eval_batch_size: 1``eval_strategy: steps``eval_steps: 100
deepspeed详细配置如下
{` `"train_batch_size": "auto",` `"train_micro_batch_size_per_gpu": "auto",` `"gradient_accumulation_steps": "auto",` `"gradient_clipping": "auto",` `"zero_allow_untested_optimizer": true,` `"fp16": {` `"enabled": "auto",` `"loss_scale": 0,` `"loss_scale_window": 1000,` `"initial_scale_power": 16,` `"hysteresis": 2,` `"min_loss_scale": 1` `},` `"bf16": {` `"enabled": "auto"` `},` `"zero_optimization": {` `"stage": 3,` `"overlap_comm": true,` `"contiguous_gradients": true,` `"sub_group_size": 1e9,` `"reduce_bucket_size": "auto",` `"stage3_prefetch_bucket_size": "auto",` `"stage3_param_persistence_threshold": "auto",` `"stage3_max_live_parameters": 1e9,` `"stage3_max_reuse_distance": 1e9,` `"stage3_gather_16bit_weights_on_model_save": true` `}``}
对微调完的模型进行问题验证,代码实现如下:
from transformers import AutoModelForCausalLM, AutoTokenizer``from transformers.generation import GenerationConfig`` ``tokenizer = AutoTokenizer.from_pretrained("/root/autodl-tmp/LLaMA-Factory/saves/llama3-8b/full/sft/checkpoint-100", trust_remote_code=True)`` ``model = AutoModelForCausalLM.from_pretrained("/root/autodl-tmp/LLaMA-Factory/saves/llama3-8b/full/sft/checkpoint-100", device_map="auto", trust_remote_code=True).eval()`` ``inputs = tokenizer('你是谁', return_tensors='pt')``inputs = inputs.to(model.device)``pred = model.generate(**inputs,max_length=128)``print(tokenizer.decode(pred.cpu()[0], skip_special_tokens=True))
7.结论
就我目前的数据集的实验结果,全参数微调跟lora微调相比,效果差不多,可能是数据集比较少的原因,后续会增加更多更好高质量的数据集和优化微调参数进行更多的验证。耗时方面跟lora微调差不多。因为全参数微调使用了超10倍的显存,成本较高。如果效果不相上下的情况下,后续会优先进行lora微调。后续还会进行新的实验,对全参数微调做更多的效果验证。
AI大模型学习福利
作为一名热心肠的互联网老兵,我决定把宝贵的AI知识分享给大家。 至于能学习到多少就看你的学习毅力和能力了 。我已将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。
因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取
2024最新版CSDN大礼包:《AGI大模型学习资源包》免费分享
一、全套AGI大模型学习路线
AI大模型时代的学习之旅:从基础到前沿,掌握人工智能的核心技能!
因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取
2024最新版CSDN大礼包:《AGI大模型学习资源包》免费分享
二、640套AI大模型报告合集
这套包含640份报告的合集,涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。
因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取
2024最新版CSDN大礼包:《AGI大模型学习资源包》免费分享
三、AI大模型经典PDF籍
随着人工智能技术的飞速发展,AI大模型已经成为了当今科技领域的一大热点。这些大型预训练模型,如GPT-3、BERT、XLNet等,以其强大的语言理解和生成能力,正在改变我们对人工智能的认识。 那以下这些PDF籍就是非常不错的学习资源。
因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取
2024最新版CSDN大礼包:《AGI大模型学习资源包》免费分享
四、AI大模型商业化落地方案
因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取
2024最新版CSDN大礼包:《AGI大模型学习资源包》免费分享
作为普通人,入局大模型时代需要持续学习和实践,不断提高自己的技能和认知水平,同时也需要有责任感和伦理意识,为人工智能的健康发展贡献力量。
更多推荐
所有评论(0)