利用ms-swift微调和百炼平台微调大模型
文章目录
- 案例1:自我认知(利用ms-swift微调)
- MS-SWIFT简介
- 打开百炼平台Notebook
- 安装ms-swift
- 输入“你是谁?”
- 案例2:意图识别(利用百炼平台微调)
- 背景:
- 数据集:
- 百炼数据集
- 训练集
- 测试集
- 百炼微调
- 部署模型
- 测试
案例1:自我认知(利用ms-swift微调)
MS-SWIFT简介
🍲 ms-swift是魔搭社区提供的大模型与多模态大模型微调部署框架,现已支持500+大模型与200+多模态大模型的训练(预训练、微调、人类对齐)、推理、评测、量化与部署。其中大模型包括:Qwen3、Qwen3-MoE、Qwen2.5、InternLM3、GLM4.5、Mistral、DeepSeek-R1、Yi1.5、TeleChat2、Baichuan2、Gemma2等模型,多模态大模型包括:Qwen2.5-VL、Qwen2-Audio、Llama4、Llava、InternVL3、MiniCPM-V-4、Ovis2.5、GLM4v、Xcomposer2.5、Yi-VL、DeepSeek-VL2、Phi3.5-Vision、GOT-OCR2等模型。
🍔 除此之外,ms-swift汇集了最新的训练技术,包括LoRA、QLoRA、Llama-Pro、LongLoRA、GaLore、Q-GaLore、LoRA+、LISA、DoRA、FourierFt、ReFT、UnSloth、和Liger等轻量化训练技术,以及DPO、GRPO、RM、PPO、GKD、KTO、CPO、SimPO、ORPO等人类对齐训练方法。ms-swift支持使用vLLM、SGLang和LMDeploy对推理、评测和部署模块进行加速,并支持使用GPTQ、AWQ、BNB等技术对大模型进行量化。ms-swift还提供了基于Gradio的Web-UI界面及丰富的最佳实践。
打开魔塔社区,在左侧“我的Notebook”里面,选择方案2,然后按启动,新用户有35个小时给我们霍霍。
打开百炼平台Notebook
两分钟后点击“查看Notebook”
左边右击,创建文件夹,命名“ft-selfrefresh”, 然后点击右边控制台“Terminal”
安装ms-swift
pip install ms-swift -U
进到“ft-selfrefresh”文件夹
cd ft-selfrefresh
10分钟在单卡3090上对Qwen2.5-7B-Instruct进行自我认知微调:
CUDA_VISIBLE_DEVICES=0 \
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 MichaelGor \--model_name Michael-service-robot
其中model_author可以改成自己名字,model_name改成大模型要自我认知的名字
微调结束后可以看到ft-selfrefresh文件夹下面多了output文件夹
打开output文件夹,里面还有个v0-****的文件点击进入,打开logging.jsonl文件,首查“best”关键字,就可以看到我们这次最好的model保存到第94个checkpoint里面。
#使用交互式命令行进行推理
CUDA_VISIBLE_DEVICES=0 \
swift infer \--adapters output/v0-20250821-160318/checkpoint-94 \--stream true \--temperature 0 \--max_new_tokens 2048
输入“你是谁?”
然后它就是识别自己是叫“Michael-service-robot”,是由MichaelGor开发出来的
案例2:意图识别(利用百炼平台微调)
背景:
如果我用普通的大模型,想让它分析意图,是不能直接做到的,比如,用户问:星期五早上九点叫醒我。拿通义千问2.5-7B做例子,它就会有如下回复。但我想让它预测我们的意图呢?
数据集:
https://huggingface.co/datasets/SetFit/amazon_massive_intent_zh-CN
这是在huggingface的数据集,是智能音箱的意图识别,比如说用户问:星期五早上九点叫醒我。大模型应该反馈给我“报警器”,然后实现后续的功能。
百炼数据集
训练集
将huggingface下载到的训练集按照百炼的格式转换,如图所示
在这篇文章资源的“MyTrain.jsonl”
上传训练集到百炼
测试集
将huggingface下载到的测试集按照百炼的格式转换,如图所示
在这篇文章资源的“MyValidation.xlsx”
上传测试集到百炼
百炼微调
进入百炼平台,点击“模型调优”,点击“训练新模型”。
选择千问2.5, 7B的模型,高效训练,改个模型名字,选择之前的训练集,和测试集
我的数据比较多,费用可能贵了点,大家可以试试减少数据,效果一样。
训练数据:
部署模型
测试