MacMini M4 微调训练 DeepSeek-R1 蒸馏模型

新年伊始,DeepSeek可是火了好一阵了,各种教程也不断涌现出来。虽然之前写过好几篇关于ollama下各种模型的使用,都是基于普通台式机:Ubuntu22.04和1080(8g)的显卡,也一直没有深入如何针对大模型进行微调和训练。正好国补的MacMini M4已经到货(24g),折腾了几天后基本环境都已经ready,顺便在DeepSeek模型下尝试下微调和训练。


网络上的各种教程基本都是使用了LLaMA-Factory,接下来跟随我一步步来实际操作,一块体验下如何进行大模型的微调和训练。

训练环境:

MacMini M4 (10c/24g)

准备conda环境,用来管理python版本

wget –user-agent=”Mozilla” https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/Anaconda3-2024.10-1-MacOSX-arm64.sh

执行安装脚本

bash Anaconda3-2024.10-1-MacOSX-arm64.sh

安装成功后,可以查看conda信息

conda version

MacMini M4 微调训练 DeepSeek-R1 蒸馏模型

MacMini M4 微调训练 DeepSeek-R1 蒸馏模型

使用conda创建 python venv环境

conda create -n llama_fatory python=3.10

激活llama_fatory环境

conda activate llama_fatory

查看当前python env 环境

conda env list

MacMini M4 微调训练 DeepSeek-R1 蒸馏模型

根据github上的安装说明,安装LLaMA-Factory

git clone –depth 1 https://github.com/hiyouga/LLaMA-Factory.git

cd LLaMA-Factory

pip install -e “.[torch,metrics]” -i https://pypi.tuna.tsinghua.edu.cn/simple

MacMini M4 微调训练 DeepSeek-R1 蒸馏模型

MacMini M4 微调训练 DeepSeek-R1 蒸馏模型

LLaMA-Factory的安装简单吧,可以看看协助

(llama_fatory) ➜  LLaMA-Factory-main llamafactory-cli help
----------------------------------------------------------------------
| Usage:                                                             |
|   llamafactory-cli api -h: launch an OpenAI-style API server       |
|   llamafactory-cli chat -h: launch a chat interface in CLI         |
|   llamafactory-cli eval -h: evaluate models                        |
|   llamafactory-cli export -h: merge LoRA adapters and export model |
|   llamafactory-cli train -h: train models                          |
|   llamafactory-cli webchat -h: launch a chat interface in Web UI   |
|   llamafactory-cli webui: launch LlamaBoard                        |
|   llamafactory-cli version: show version info                      |
----------------------------------------------------------------------
(llama_fatory) ➜  LLaMA-Factory-main

下载训练所需要的基础模型,正常可以从https://huggingface.co下载,国内用户可以从modelscope下载

MacMini M4 微调训练 DeepSeek-R1 蒸馏模型

mkdir models && cd models

git clone https://www.modelscope.cn/deepseek-ai/DeepSeek-R1-Distill-Qwen-1.5B.git

模型大致3.5G,如果显卡不够用,可以下载Qwen-0.5B

启动 LLaMA-Factory webui

llamafactory-cli webui

准备自定的数据

cd data && cat aiops.json

MacMini M4 微调训练 DeepSeek-R1 蒸馏模型

编辑dataset_info.json,增加自定的数据:

MacMini M4 微调训练 DeepSeek-R1 蒸馏模型

选择模型:

DeepSeek-R1-1.5B-Distill,指定模型路径:
models/DeepSeek-R1-Distill-Qwen-1.5B

MacMini M4 微调训练 DeepSeek-R1 蒸馏模型

可以预览自定义数据集

MacMini M4 微调训练 DeepSeek-R1 蒸馏模型

选择:Supervised Fine-Tuning

训练轮数我改成了100(也是查过了一些资料,如果自定义数据集比较大,列如超过百万,那么可以使用3-5,如果自定义数据集很少,可以30-200)

MacMini M4 微调训练 DeepSeek-R1 蒸馏模型

点击“开始”后及开始训练了,我这MacMini并没有Nvidia,所以有个提示找不到GPU,不过也没关系,训练可以正常进行。

MacMini M4 微调训练 DeepSeek-R1 蒸馏模型

可以看到训练轮数为100以及进度条

MacMini M4 微调训练 DeepSeek-R1 蒸馏模型

训练完成了

MacMini M4 微调训练 DeepSeek-R1 蒸馏模型

WebUI上能够看到损失曲线还是比较平滑的,到最后基本趋向一条直线。

MacMini M4 微调训练 DeepSeek-R1 蒸馏模型

训练结束后,可以进行验证了。

这里选择训练输出的模型,然后选择“chat”页面,载入模型,进行对话

MacMini M4 微调训练 DeepSeek-R1 蒸馏模型

哈哈哈,看来我预先设定的数据集已经能够被模型识别并正常回答了。

Tips:实际测试中发现微调后的模型有上下文的关联,第一条问题回答的超级正确,接续问下去大模型就开始胡言乱语了,如果清空历史后再次询问依然如此,第一次的问题都还正常,不知道是哪里配置问题,还是模型chat方式还需要其他配置?

好了,在MacMini下微调
DeepSeek-R1-Distill-Qwen-1.5B模型的实操基本就这样了,后面我会继续介绍如何将训练的模型导出来,并使用llama.cpp转换成ollama可以使用的模型。

(本文完)

© 版权声明

相关文章

12 条评论

您必须登录才能参与评论!
立即登录
  • 头像
    毒水母試劑 投稿者

    是不是上下文过长后被截断了

    无记录
  • 头像
    社死案发现场 投稿者

    收藏了,感谢分享

    无记录
  • 头像
    女人的泪是你犯下的错 读者

    我是Mac min M4 24g,跑蒸馏14b勉强能用,但也就是体验一下,想用在生产环境还得是API调用云端大模型。mac mini确实很适合做服务器,安静,省电,稳定,性能强。而且部署好之后,局域网所有手机和平板都可以连接使用

    无记录
  • 头像
    系统升级中 读者

    是的,就算70b也一般,还是云端API靠谱,其他小模型就本地自己玩玩

    无记录
  • 头像
    愿世间美好都给你 读者

    16g不知道够不够,现在m4 16g特价$499,想入手一个

    无记录
  • 头像
    琥珀川 读者

    够了,7b,8b可以跑起来

    无记录
  • 头像
    总店主理人阿米 读者

    怎么选择输出的模型?截个图吧,我卡在这里了,还有检查点的配置。

    无记录
  • 头像
    蓝丹爱普洱 读者

    过拟合,泛化就没了。如果是开放性任务,Loss 不要过低

    无记录
  • 头像
    彡情缘丿永恒灬 读者

    只是想能够跑出来结果,然后确认下自定义数据集是否生效

    无记录
  • 头像
    软软51129 投稿者

    Anaconda3 这个不敢用,要dā电话来收费

    无记录
  • 头像
    士大夫是下辖 投稿者

    过拟合了吧

    无记录
  • 头像
    电子1豆 投稿者

    嗯,epoch有点大了

    无记录