当前位置: 首页 > article >正文

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星图镜像广场提供丰富的预置镜像覆盖大模型推理、图像生成、视频生成、模型微调等多个领域支持一键部署。

相关文章:

ms-swift实战:从微调到合并,一站式搞定大模型训练

ms-swift实战:从微调到合并,一站式搞定大模型训练 1. 引言 在人工智能领域,大模型训练一直是技术门槛较高的任务。传统的大模型微调方法往往需要大量计算资源和复杂的配置过程,让许多开发者和研究者望而却步。ms-swift框架的出现…...

零基础玩转Z-Image-Turbo-辉夜巫女:一键部署,快速生成专属动漫角色

零基础玩转Z-Image-Turbo-辉夜巫女:一键部署,快速生成专属动漫角色 1. 认识Z-Image-Turbo-辉夜巫女 1.1 什么是Z-Image-Turbo-辉夜巫女? Z-Image-Turbo-辉夜巫女是一个专门用于生成动漫风格角色图片的AI工具。它基于阿里巴巴通义实验室的Z…...

回归分析实战指南:从原理到Python实现

1. 回归分析入门:从买菜到预测房价 第一次听说回归分析时,我正盯着超市的黄瓜价格发愁。为什么夏天便宜冬天贵?这种价格波动能不能预测?后来才发现,这种"找规律"的问题正是回归分析最擅长的场景。简单来说&a…...

中小企业如何低成本搞定等保测评?5个必备安全措施清单

中小企业低成本通过等保测评的5个实战策略 当老板把等保测评的任务交给你时,看着动辄几十万的安全预算方案,作为中小企业的IT负责人是否感到头皮发麻?别担心,经过三个月的实战踩坑,我总结出这套低成本合规方案&#xf…...

Flowable流程引擎深度清理:构建自定义函数实现流程实例与项目数据的精准清除

1. 为什么需要深度清理Flowable流程数据 第一次接触Flowable流程引擎时,我天真地以为删除流程实例就像删除普通数据库记录一样简单。直到某次测试环境清理时,发现系统性能急剧下降,查了三天才发现是残留的流程数据导致的。这才明白&#xff0…...

从SD卡槽到多功能扩展:SDIO接口的另类玩法大全(GPS/蓝牙/摄像头实测)

从SD卡槽到多功能扩展:SDIO接口的另类玩法大全(GPS/蓝牙/摄像头实测) 当你的手机SD卡槽闲置时,是否想过它能变身成外设扩展坞?本文将带你解锁SDIO接口的隐藏技能,通过实测数据展示如何将废旧卡槽改造成GPS…...

语音识别SDK全平台集成指南:从技术原理到性能优化

语音识别SDK全平台集成指南:从技术原理到性能优化 【免费下载链接】wenet Production First and Production Ready End-to-End Speech Recognition Toolkit 项目地址: https://gitcode.com/gh_mirrors/we/wenet 在移动应用智能化浪潮中,语音交互已…...

Python零基础入门:从安装到运行第一个TranslateGemma示例

Python零基础入门:从安装到运行第一个TranslateGemma示例 1. 这不是传统编程课,而是帮你打开AI翻译世界的第一扇门 你可能已经听说过AI翻译工具,但真正自己动手跑通一个专业级的翻译模型,感觉会完全不同。这不是要你成为Python专…...

Zemax实战:5分钟搞定慧差模拟与校正(附Zernike系数详解)

Zemax实战:5分钟搞定慧差模拟与校正(附Zernike系数详解) 在光学系统设计中,像差校正是每个工程师必须面对的挑战。慧差(Coma Aberration)作为最常见的轴外像差之一,直接影响着成像系统的边缘视场…...

从零开始玩转Clawdbot:快速搭建AI网关,让qwen3:32b管理变得简单高效

从零开始玩转Clawdbot:快速搭建AI网关,让qwen3:32b管理变得简单高效 1. 为什么选择Clawdbot管理qwen3:32b 想象一下,你刚在本地部署了强大的qwen3:32b大模型,准备大展身手,却发现每次调用都要写一堆代码、处理各种AP…...

深入解析Frida-gum:动态代码插桩的核心实现机制

1. 动态代码插桩技术入门 第一次接触Frida-gum时,我被它强大的动态插桩能力震撼到了。简单来说,动态代码插桩就像是在程序运行时给它装上"监控摄像头",不仅能观察程序的一举一动,还能随时修改它的行为。这种技术在逆向分…...

Cesium Terrain Builder实战:如何关闭zib压缩提升浏览器渲染性能

Cesium Terrain Builder实战:关闭zib压缩优化浏览器渲染性能的完整指南 当你在使用Cesium.js构建三维地理可视化应用时,是否遇到过地形加载缓慢、浏览器卡顿的问题?这很可能与地形瓦片的压缩方式有关。本文将深入探讨如何通过关闭zib压缩来显…...

SEO_网站SEO优化常见的五大问题及解决办法

SEO:网站SEO优化常见的五大问题及解决办法在当今竞争激烈的互联网环境中,网站的SEO优化显得尤为重要。无论你是新手还是资深SEO,都会遇到一些常见的问题。本文将详细探讨这些问题,并提供实用的解决办法,帮助你提升网站的SEO表现。…...

嵌入式AES侧信道防护:Arduino Uno上的掩码与随机中断实现

1. 项目概述protectedAES是一款面向资源受限嵌入式平台(特别是 AVR 架构的 Arduino Uno Rev3)设计的轻量级 AES 加密库,其核心价值不在于性能优化或功能扩展,而在于系统性对抗侧信道攻击(Side-Channel Attacks, SCA&am…...

Qwen2.5-72B-Instruct-GPTQ-Int4实战教程:vLLM API封装为REST服务

Qwen2.5-72B-Instruct-GPTQ-Int4实战教程:vLLM API封装为REST服务 1. 引言:从模型部署到服务化 如果你已经成功部署了Qwen2.5-72B-Instruct-GPTQ-Int4这样的大模型,可能会发现一个问题:虽然模型跑起来了,但怎么让其他…...

Qwen1.5-1.8B-GPTQ-Int4部署教程:Kubernetes集群中vLLM服务编排实践

Qwen1.5-1.8B-GPTQ-Int4部署教程:Kubernetes集群中vLLM服务编排实践 想快速在Kubernetes集群里部署一个能聊天的AI模型吗?今天咱们就来手把手搞定这件事。通义千问1.5-1.8B-Chat-GPTQ-Int4这个模型,别看它体积小,但经过量化优化后…...

GitHub开源项目协作利器:Cosmos-Reason1-7B智能分析Issue与PR

GitHub开源项目协作利器:Cosmos-Reason1-7B智能分析Issue与PR 如果你维护过一个活跃的开源项目,肯定对这种感觉不陌生:每天打开GitHub,通知列表又多了几十条未读。新的Issue五花八门,有功能请求、有Bug报告、还有使用…...

航拍滑坡泥石流检测数据集5619张VOC+YOLO格式

航拍滑坡泥石流检测数据集5619张VOCYOLO格式数据集格式:Pascal VOC格式YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数):5619 标注数量(xml文件个数):5619 标…...

Arduino_deepC:MCU端轻量级深度学习推理框架

1. Arduino_deepC:面向资源受限微控制器的轻量级深度学习推理框架1.1 技术定位与工程价值Arduino_deepC 是一个专为8/32位微控制器(MCU)设计的嵌入式深度学习推理库,其核心目标并非在MCU上训练模型,而是将预训练完成的…...

Ostrakon-VL-8B固件开发辅助:硬件原理图与文档理解

Ostrakon-VL-8B固件开发辅助:硬件原理图与文档理解 作为一名嵌入式固件开发工程师,你是不是也经常遇到这样的场景?面对一份几十页、布满密密麻麻符号的硬件原理图PDF,或者一份动辄上百页、夹杂着复杂图表和参数表格的技术文档&am…...

避开内存坑!用WhisperDesktop+ggml-medium实现超长文本转语音(实测5G显卡配置)

避开内存坑!用WhisperDesktopggml-medium实现超长文本转语音实战指南 在语音合成技术快速发展的今天,处理长文本转语音的需求日益增长。许多开发者和内容创作者都遇到过这样的困境:手头的硬件配置有限,却需要处理数小时甚至更长的…...

Kook Zimage真实幻想Turbo部署避坑指南:24G显存流畅运行1024x1024

Kook Zimage真实幻想Turbo部署避坑指南:24G显存流畅运行1024x1024 1. 项目背景与核心优势 如果你正在寻找一款能在消费级显卡上流畅运行的高质量幻想风格文生图工具,Kook Zimage真实幻想Turbo值得重点关注。这个项目巧妙结合了Z-Image-Turbo底座的极速…...

免杀实战:DLL劫持与白加黑攻击的进阶对抗技巧

1. DLL劫持技术原理与实战应用 DLL劫持(DLL Hijacking)是一种利用Windows系统动态链接库加载机制的安全漏洞进行攻击的技术。简单来说,就是当程序运行时,它会按照特定顺序搜索并加载所需的DLL文件。如果攻击者能够将一个恶意的DLL…...

SenseVoiceSmall实战:用AI分析客服录音,自动标记愤怒客户

SenseVoiceSmall实战:用AI分析客服录音,自动标记愤怒客户 1. 引言:客服场景中的情绪识别挑战 在客户服务领域,识别客户情绪是提升服务质量的关键环节。传统客服中心依赖人工质检员抽查录音,这种方式存在明显局限&…...

若依前端部署nginx配置案例

前端配置use strict const path require(path)function resolve(dir) {return path.join(__dirname, dir) }const CompressionPlugin require(compression-webpack-plugin)const name process.env.VUE_APP_TITLE || 若依管理系统 // 网页标题const port process.env.port |…...

告别EEPROM!用STM32的BKP备份寄存器实现低成本数据存储(F103C8T6实战)

低成本数据存储方案:STM32 BKP备份寄存器实战指南 引言 在嵌入式系统开发中,数据存储一直是个绕不开的话题。传统方案往往依赖外置EEPROM或Flash芯片,但这意味着额外的物料成本和PCB空间占用。对于学生创客、硬件初创团队或者资源受限的小型项…...

profibus-PA总线圆形M12全金属连接器螺丝压接三通分支接头分线盒

在石油化工、制药等过程自动化领域,PROFIBUS-PA(过程自动化)总线凭借其两线制供电与通信一体化的特性,广泛应用于压力、温度、流量等仪表的数据采集。圆形M12全金属连接器螺丝压紧三通分支接头分线盒,正是实现PROFIBUS…...

科研提示词

科研提示词 来自于Github项目:https://github.com/Leey21/awesome-ai-research-writing Make AI Writing Better for Everyone 📖 为什么做这个项目 当你第三次调试同一个润色 prompt 时,隔壁组的同学可能已经用现成的模板改完了三篇论文。 …...

VSCode+PyQt5实战:5分钟搞定Python图形界面开发(附完整配置流程)

VSCodePyQt5极速开发指南:从零到可视化的Python界面实战 在当今快节奏的开发环境中,能够快速构建出功能完善且美观的图形用户界面(GUI)已成为Python开发者的必备技能之一。PyQt5作为Qt框架的Python绑定,提供了丰富的组件库和强大的功能&#…...

5分钟搞定OCR服务!cv_resnet18_ocr-detection部署常见问题解决

5分钟搞定OCR服务!cv_resnet18_ocr-detection部署常见问题解决 你是不是也遇到过这种情况:想快速搭建一个OCR文字检测服务,结果被各种环境配置、依赖冲突、模型部署搞得焦头烂额?明明只是想“识别一下图片里的文字”,…...