网络上的各种教程基本都是使用了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


使用conda创建 python venv环境
conda create -n llama_fatory python=3.10
激活llama_fatory环境
conda activate llama_fatory
查看当前python env 环境
conda env list

根据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


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下载

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

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

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

可以预览自定义数据集

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

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

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

训练完成了

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

训练结束后,可以进行验证了。
这里选择训练输出的模型,然后选择“chat”页面,载入模型,进行对话

哈哈哈,看来我预先设定的数据集已经能够被模型识别并正常回答了。
Tips:实际测试中发现微调后的模型有上下文的关联,第一条问题回答的非常正确,接续问下去大模型就开始胡言乱语了,如果清空历史后再次询问依然如此,第一次的问题都还正常,不知道是哪里配置问题,还是模型chat方式还需要其他配置?
好了,在MacMini下微调
DeepSeek-R1-Distill-Qwen-1.5B模型的实操基本就这样了,后面我会继续介绍如何将训练的模型导出来,并使用llama.cpp转换成ollama可以使用的模型。
(本文完)
没有回复内容