ms-swift实战:从微调到合并,一站式搞定大模型训练
ms-swift实战从微调到合并一站式搞定大模型训练1. 引言在人工智能领域大模型训练一直是技术门槛较高的任务。传统的大模型微调方法往往需要大量计算资源和复杂的配置过程让许多开发者和研究者望而却步。ms-swift框架的出现彻底改变了这一局面。ms-swift是魔搭社区提供的大模型与多模态大模型微调部署框架支持600纯文本大模型与300多模态大模型的训练、推理、评测、量化与部署全流程。本文将带您从零开始使用ms-swift完成Qwen2-7B-Instruct模型的微调与合并全过程。2. 环境准备与快速部署2.1 基础环境配置在开始之前我们需要准备以下环境操作系统推荐使用Linux系统如CentOS 7GPU硬件至少一张NVIDIA RTX 309024GB显存或更高配置CUDA版本12.2或更高2.2 安装ms-swiftms-swift提供两种安装方式命令行安装推荐conda create --name swift python3.10 conda activate swift pip install ms-swift[all] -U -i https://pypi.tuna.tsinghua.edu.cn/simple源码安装git clone https://github.com/modelscope/swift.git cd swift pip install -e .[llm] -i https://pypi.tuna.tsinghua.edu.cn/simple2.3 下载模型我们需要下载Qwen2-7B-Instruct模型可以通过以下两种方式从ModelScope下载git clone https://www.modelscope.cn/qwen/Qwen2-7B-Instruct.git从Hugging Face下载git lfs install git clone https://huggingface.co/Qwen/Qwen2-7B-Instruct3. 模型微调实战3.1 LoRA微调简介LoRALow-Rank Adaptation是一种高效的微调技术它通过引入低秩矩阵来调整模型权重而不是直接修改原始参数。这种方法显著减少了需要训练的参数数量同时保持了模型性能。3.2 单卡微调命令使用以下命令在单卡3090上对Qwen2-7B-Instruct进行微调CUDA_VISIBLE_DEVICES0 \ swift sft \ --model Qwen/Qwen2.5-7B-Instruct \ --train_type lora \ --dataset AI-ModelScope/alpaca-gpt4-data-zh#500 \ AI-ModelScope/alpaca-gpt4-data-en#500 \ swift/self-cognition#500 \ --torch_dtype bfloat16 \ --num_train_epochs 1 \ --per_device_train_batch_size 1 \ --per_device_eval_batch_size 1 \ --learning_rate 1e-4 \ --lora_rank 8 \ --lora_alpha 32 \ --target_modules all-linear \ --gradient_accumulation_steps 16 \ --eval_steps 50 \ --save_steps 50 \ --save_total_limit 2 \ --logging_steps 5 \ --max_length 2048 \ --output_dir output \ --system You are a helpful assistant. \ --warmup_ratio 0.05 \ --dataloader_num_workers 4 \ --model_author swift \ --model_name swift-robot3.3 微调参数解析--model: 指定要微调的模型路径或ID--train_type: 指定训练类型lora表示使用LoRA微调--dataset: 指定训练数据集可以指定多个--lora_rank: LoRA矩阵的秩影响参数数量和效果--lora_alpha: LoRA缩放系数--target_modules: 指定应用LoRA的模块类型4. 模型合并技术4.1 为什么需要合并模型LoRA微调后我们得到的是原始模型适配器权重的组合。为了部署和使用方便通常需要将LoRA权重合并到原始模型中形成一个完整的新模型。4.2 推理时合并在推理时可以直接合并LoRA权重并保存swift infer \ --ckpt_dir /path/to/checkpoint-873 \ --load_dataset_config true \ --merge_lora true \ --infer_backend vllm \ --max_model_len 81924.3 单独合并命令也可以使用专门的导出命令进行合并swift export \ --ckpt_dir /path/to/checkpoint-873 \ --merge_lora true合并后的模型会保存在checkpoint-873-merged目录中。5. 模型部署与使用5.1 使用vLLM加速推理合并后的模型可以使用vLLM进行高效推理CUDA_VISIBLE_DEVICES0 swift infer \ --model /path/to/merged-model \ --stream true \ --infer_backend vllm \ --max_new_tokens 20485.2 Web界面推理ms-swift还提供了基于Gradio的Web界面swift app \ --model /path/to/merged-model \ --stream true \ --infer_backend pt \ --max_new_tokens 2048 \ --lang zh6. 总结与进阶通过本文我们完成了从模型微调到权重合并的全流程。ms-swift框架的强大之处在于广泛的模型支持支持600纯文本和300多模态模型高效的训练技术集成LoRA、QLoRA等参数高效微调方法全流程工具链覆盖训练、推理、评测、量化、部署全流程灵活的部署选项支持PyTorch、vLLM、LMDeploy等多种推理后端对于想要进一步探索的读者可以尝试使用Megatron并行技术加速大规模训练尝试GRPO族强化学习算法进行对齐训练探索多模态模型的训练与部署获取更多AI镜像想探索更多AI镜像和应用场景访问 CSDN星图镜像广场提供丰富的预置镜像覆盖大模型推理、图像生成、视频生成、模型微调等多个领域支持一键部署。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2438865.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!