今天简单进行一个大模型的微调。
首先在之前的项目部署上线的文章里,我们白嫖了一个阿里云的服务器,今天我们就要用到他,没有看我文章的小伙伴,先看看怎么获取到阿里云的一台云服务器吧
我们来到魔搭社区www.modelscope.cn/,
先登陆账号,来到我的Notebook,启动GPU环境

没有关联阿里云的要关联一下。

启动完成之后,查看Notebook
之后我们来到这个界面,jupyterLab,这是一个谷歌开源的一个在线的交互式开发环境

之后我们打开终端


接下来我们要把GitHub - hiyouga/LLaMA-Factory: Unified Efficient Fine-Tuning of 100+ LLMs & VLMs (ACL 2024)拉取下来,他是一个专门的大模型微调工具。

如果一次没拉取下来,多重试几次(可以挂个梯子尝试一下),博主此时就失败了。
拉取好之后就是这样,会多出一个文件

打开文件,里面有一个readme-zh的"说明书"

date文件夹里面有很多json文件,就是内置的一些数据集

好,接下来我们回到终端,cd去到 LLaMA-Factory/

来到这个目录下面,我们输入指令pip install -e ".[torch,metrics]",给这个项目装一个依赖

如果出现下面这个错误,是因为包管理工具版本不够,我们就运行一下pip install --upgrade pip,
然后再运行pip install -e ".[torch,metrics]"
安装成功之后就是这样的

我看可以运行llamafactory-cli version,查看版本来确保我们依赖安装成功
如果出现下面这种错误,是因为vllm是阿里云远程服务器内置的一个环境,他也是一个大模型的训练环境,魔搭平台给我们内置了这个环境,但现在我们不打算用这个环境,而是用huggingface这个环境,而有个环境就叫huggingface,所以现在有冲突。

那我们先运行 pip uninstall vllm,把环境卸载掉,再执行 pip install vllm (用于做高效推理的工具)
之后我们执行llamafactory-cli version可以查到版本就ok了
然后我们执行llamafactory-cli webui,进入给的地址,这个地址给我们提供了一个可视化微调界面



模型加载完毕可以发个消息测试一下。
现在开始,我们要微调他了
点击训练,里面有一个数据集选项

现在我们自己写入一个数据集
在图示data文件夹下创建一个json文件,点击new file


点击editor,在里面增加数据

json
[
{
"instruction": "解释量子纠缠现象",
"input": "",
"output": "量子纠缠是量子力学中的一种现象,当两个或多个粒子相互作用后,它们的量子状态会相互关联,即使这些粒子被分隔到很远的距离,对一个粒子的测量会立即影响另一个粒子的状态。这种现象被爱因斯坦称为'鬼魅般的超距作用'。量子纠缠是现代量子计算和量子通信的基础。"
},
{
"instruction": "光合作用的基本过程是什么?",
"input": "",
"output": "光合作用是植物、藻类和某些细菌利用光能将二氧化碳和水转化为有机物(主要是葡萄糖)和氧气的过程。主要分为光反应和暗反应两个阶段:1) 光反应发生在叶绿体的类囊体膜上,通过光系统II和I捕获光能,分解水分子产生氧气,并生成ATP和NADPH;2) 暗反应(卡尔文循环)发生在叶绿体基质中,利用ATP和NADPH将二氧化碳固定并还原为葡萄糖。"
}
]

保存之后能看到多了两条数据

接下来我们要让我们的数据生效,记得保存

此时我们就能在数据集里面找到我们的数据



不要停掉之前的终端,新开一个,粘贴改了之后的命令运行

成功之后长这样

出现以下错误,可能是去错了目录

要在下面这个目录下运行命令

然后开始

回到目录


这个lora就是训练出的大模型


接下来我们需要把我们的deepseek基座模型加上我们的微调模型合并一下,得到最终的模型。我们选择export

检查路径下是我们最近微调的模型,可以在chat和他们聊天
终端地址:


导出成功后,会出现一个merge文件夹

标蓝的就是合并之后的新模型

然后就可以将标蓝的文件上传到hugging face(因为我们是在远程服务器上面操作的,没法直接下载到本地),然后下载到本地,之后用ollama去启动它。