用Macbook微调Qwen3!手把手教你用微调给Qwen起一个新名字

简介: 本文介绍如何在MacBook上使用苹果MLX框架高效微调Qwen3大模型。借助MLX的高性能计算与统一内存架构,仅需2分钟即可完成训练,内存占用低至2GB,推理速度达400 Token/s,并支持快速部署为本地API服务,展现Mac轻薄本的强大AI生产力潜力。

00前言

最近笔者的GPU服务器出了点故障,因此实验只能依靠一台小小的MacBook轻薄本。结果发现意外的能打,跑一些深度学习模型或者大模型居然也能正常运行。看来买Macbook不完全是法器同样也是生产力 :-)。

本篇教程将带大家了解下如何Macbook来进行Qwen3微调,并且利用苹果自家发的MLX深度学习框架,让Macbook的性能发挥到极致。

01MLX框架简介

MLX框架GitHub地址: https://github.com/ml-explore/mlx不过苹果的开源项目首页正如其产品一样,相当的“简介”。文档写的还是不错的。

MLX框架是苹果公司专为机器学习任务设计的一个高效、灵活的深度学习框架,主要面向Apple Silicon进行优化。MLX允许开发者在macOS和iOS设备上构建、训练和部署机器学习模型,充分利用苹果硬件的统一内存架构,实现CPU与GPU之间的零拷贝数据共享,从而提升训练和推理效率。

笔者个人感觉MLX相比于使用torch的MPS后端,更能发挥Apple芯片的性能。上次笔者使用mps后端训练rnn网络时还出现了牙膏倒吸、GPU打不过CPU的情况。不过RNN模型本身比较小,且结构也适合于并行计算,具体效率等未来笔者专门测试下。MLX框架的API整体也非常像numpy和torch,迁移学习起来的门槛不高。

当然,由于现在开源LLM模型一般使用🤗Huggingface Transformers框架开源,基本都是基于pytorch框架,因此想直接体验到MLX带来的性能提升还是很难的。好在苹果同时发布了一个MLX-LM框架,功能定位上类似Transformers + vllm,能训练也能推理。因此本篇教程就基于MLX-LM教程给大家介绍下如何使用Macbook微调Qwen3模型!

MLX-LM已经支持使用SwanLab进行训练跟踪了!

02使用MLX-LM训练Qwen3模型

环境安装

安装MLX框架非常方便,只需要一行命令即可,由于要用SwanLab做微调跟踪,也额外安装SwanLab包。

pip install mlx-lm swanlab


数据集&模型准备

数据集准备

本任务通过对Qwen3微调,让Qwen3学习一个新的名字!这里我们使用笔者非常喜欢的一个数据集——MS-SWIFT团队发布的“self-cognition”数据集。

数据集链接: https://modelscope.cn/datasets/swift/self-cognition

self-cognition数据集主要用于做模型自我认知微调,数据集由108条身份问答数据组成,包括中文和英文。数据集预留了“模型名称”和“模型作者名称”两个预留字段。我们可以将其替换成希望给模型起的名称和自己的名称。

使用如下命令下载数据集到本地:

pip install modelscope

由于MLX-LM框架的数据格式还有点小区别,再来也要替换数据集中的名称,可以使用笔者实现的数据转换脚本进行格式转换,数据脚本命名为trans_data.py

import os

使用如下命令进行转换:

# 可以替换成自己期望的模型名和作者名
也可以使用笔者转换好的数据集:在 https://github.com/ShaohonChen/Finetune_Qwen3_on_MacBook

转换后会在本地路径生成如下两个文件:

Finetune_Qwen3_on_MacBook


模型准备

这里笔者为了计算效率选用Qwen3-0.6B模型,实际测试下来笔者M2 24G的笔记本电脑可以运行Qwen3-4B的模型推理。大家可以根据自己的电脑内存选择合适大小的模型。

⚠️注意:要选择Instruct模型而不是Base模型!

下载模型的命令如下:

pip install modelscope


训练模型

参考MLX-LM官方文档:

https://github.com/ml-explore/mlx-lm/blob/main/mlx_lm/LORA.md

首先要确保MLX-LM已经成功安装!我们使用Lora微调来减少内存消耗,在本地创建ft_qwen3_lora.yaml,按照如下设置微调配置参数:

model: "Qwen3-0.6B" # 本地模型目录或 Hugging Face 仓库的路径。


接下来在命令行启动MLX-LM微调:

mlx_lm.lora --config ft_qwen3_lora.yaml


启动成功后效果如下

如果开启了SwanLab跟踪,则会自动记录训练损失图像。可以看到大概500步模型训练损失就收敛了:

实验记录已公开:

https://swanlab.cn/@ShaohonChen/MLX-FT-Qwen3/charts

训练速度非常快,在笔者的轻薄本上不到2分钟就完成了训练,使用了不到2G内存,吞吐快400Token/S。

评估模型效果

mlx-lm支持直接用chat模式评估模型训练效果,命令如下:

mlx_lm.chat --model Qwen3-0.6B --adapter-path cog_adapters


可以直接在命令行里与模型聊天,可以看到模型已经学会了他的新名字“小鹅”。

英文聊天也不在话下!

03部署Qwen聊天服务

mlx-lm框架也支持一行命令部署成API服务!对于洗数据或者作为自用的AI助手来说非常友好,现在我们使用命令把刚刚微调好的模型部署成API服务:

mlx_lm.server --model Qwen3-0.6B --adapter-path cog_adapters --chat-template-args '{"enable_thinking":false}'
--chat-template-args '{"enable_thinking":false}' 用于关闭Qwen3的推理模式,如果你更喜欢推理也可以删掉这一行来开启深度思考。

运行成功后会显示:

2025-09-18 15:51:42,639 - INFO - Starting httpd at 127.0.0.1 on port 8080...


可以使用如下命令测试是否成功:

2025-09-18 15:51:42,639 - INFO - Starting httpd at 127.0.0.1 on port 8080...


看到模型正常返回后,说明API部署成功:

{"id": "chatcmpl-bdfd6f0c-72db-418e-a35a-ecf13cd98ee0", "system_fingerprint": "0.28.0-0.29.1-macOS-15.6.1-arm64-arm-64bit-applegpu_g14g", "object": "chat.completion", "model": "default_model", "created": 1758181778, "choices": [{"index": 0, "finish_reason": "stop", "logprobs": {"token_logprobs": [-1.125, -0.875, -1.5, 0.0, -0.125, 0.0, -0.375, -2.75, -0.25, -0.375, 0.0, 0.0, -0.125, 0.0, -0.5, 0.0, -0.625, 0.0, 0.0, 0.0, -1.25, 0.0], "top_logprobs": [], "tokens": [9707, 11, 419, 374, 264, 1273, 0, 1416, 498, 614, 894, 4755, 476, 1184, 1492, 11, 2666, 1910, 311, 2548, 0, 151645]}, "message": {"role": "assistant", "content": "Hello, this is a test! If you have any questions or need help, feel free to ask!", "tool_calls": []}}], "usage": {"prompt_tokens": 18, "completion_tokens": 22, "total_tokens": 40}}%


部署性能测试

笔者使用evalscope进行速度测试,命令如下:

⚠️注意需要开启API服务,否则会运行失败
evalscope perf \

可以看到单请求能达到平均10toks/s的速度。还是很快的,不过并发速度就下来了。

使用SwanLab进行性能跟踪可以看到,随着并发数从10->20->50,部署性能快速下降。不过这也是由于笔者本身在测试时也在使用这台笔记本电脑,系统内存已经使用到了80%的原因。以自用或者小实验室使用来说这个速度非常可观

可以在SwanLab上查看记录: https://swanlab.cn/@ShaohonChen/MLX-FT-Qwen3/runs/lqitoakl4gnswhk15xmp3/chart


04相关链接

GitHub代码:

https://github.com/ShaohonChen/Finetune_Qwen3_on_MacBook


数据集地址:

https://modelscope.cn/datasets/swift/self-cognition


模型地址:

https://modelscope.cn/models/Qwen/Qwen3-0.6B


SwanLab训练日志:

https://swanlab.cn/@ShaohonChen/MLX-FT-Qwen3/charts


作者:陈少宏

联系邮箱:shaohon_chen@115lab.club

编辑:林泽毅、郝正阳

目录
相关文章
|
2月前
|
传感器 人工智能 API
仅100多元,他给视障人群装上AI“眼睛”
上海两名开发者为验证AI助盲实效,亲手打造百元AI眼镜,蒙眼实测过马路、识盲道,并开源项目鼓励更多人参与。技术导航,人心照亮。
805 6
仅100多元,他给视障人群装上AI“眼睛”
|
1月前
|
人工智能 自然语言处理 语音技术
Soul App联合西工大和上交大开源语音合成模型SoulX-Podcast,已登顶Hugging Face TTS趋势榜!
Soul AI Lab联合西工大、上交大开源SoulX-Podcast,支持中英粤川等多语种方言及副语言生成,可稳定输出超60分钟自然流畅的多人对话音频,已在Huggingface登顶TTS趋势榜。
410 0
Soul App联合西工大和上交大开源语音合成模型SoulX-Podcast,已登顶Hugging Face TTS趋势榜!
|
2月前
|
编解码 调度 图形学
腾讯混元世界模型1.1开源:支持多视图及视频输入,单卡部署,秒级生成_魔搭ModelScope社区-ModelScope魔搭社区
混元世界模型1.1(WorldMirror)发布,支持多视图、视频输入,单卡秒级生成3D场景。兼容CG管线,开源可部署,实现点云、深度、相机等多任务统一预测,性能领先。
304 1
|
2月前
|
数据采集 人工智能 物联网
国产AI封神!炒股狂赚40%碾压对手 教你微调Qwen3打造专属金融分析师
国产AI在实盘炒股中大放异彩,DeepSeek与Qwen3收益率最高超60%,碾压国际大模型。本文教你用LLaMA Factory平台微调Qwen3-VL-30B,打造专属多模态金融分析师,实现趋势研判、财报分析等专业能力,赋能投资决策。
794 156
国产AI封神!炒股狂赚40%碾压对手 教你微调Qwen3打造专属金融分析师
|
2月前
|
自然语言处理 物联网 vr&ar
图像理解与生成统一模型——前沿模型架构理解
前言生成式多模态模型近年来一直是业界的研究热点。视觉语言模型(VLM)一直是多模态文本生成领域的核心路线,能够完成图像理解任务;扩散模型(Diffusion Model)则一直是图像和视频生成领域的核心方法。
620 9
|
2月前
|
文字识别 测试技术 开发者
Qwen3-VL新成员 2B、32B来啦!更适合开发者体质
Qwen3-VL家族重磅推出2B与32B双版本,轻量高效与超强推理兼备,一模型通吃多模态与纯文本任务!
2549 12
|
2月前
|
人工智能 编解码 芯片
【AI绘画】你有多久没有打开SD了?
曾几何时,Stable Diffusion的复杂参数令人崩溃,如今即梦、可灵等AI工具已让生成图片变得轻而易举。哩布哩布发布2.0升级公告,看似迈向更易用的未来,却也悄然为那个钻研模型、拼接工作流的“拓荒时代”奏响终章。技术迭代飞快,但那份对创造的热爱与探索精神,永不褪色。
700 9

热门文章

最新文章