哈喽大家好,我是阿星!
我们天天说微调微调,微调到底是啥感觉?
我们今天用魔塔+LLaMa Factory 体验微调一个模型
文科生也能跑完,不用考虑你自己电脑的配置,云上的。微调完我们还会引入到本地直接对话。

走一下最基本的简化流程,
之后不管是面试还是项目沟通中都可以大概心里有个数了。
1、构建免费实例
打开:modelscope.cn/my/mynotebo...
关联阿里云账号后,选第二个gpu环境👇
注意这个实例过一段时间就会释放,不要保存你重要的数据。到时候就没了。

两三分钟后,点击查看notebook

长这样,这些大图标就是你的软件,侧边栏就是文件夹,下面的💵符号logo,是终端。相当于在云端给你装了个电脑。

打开终端,
打开之后你存进去的内容都是持久化存储。关闭只是停止计时了。

2、下载模型、创建模型文件夹
接着下载模型,安装依赖。我们只用复制不带#的代码就可以了。
安装依赖的环节会等待大概20分钟,不用怀疑,它没坏,需要你等待时间比较长而已。
bash
# 克隆LLaMA-Factory代码仓库到本地
git clone https://github.com/hiyouga/LLaMA-Factory.git
# 进入项目目录
cd LLaMA-Factory
#创建虚拟环境
python -m venv .venv
#激活虚拟环境s
ource .venv/bin/activate
# 安装依赖
pip install -e ".[torch,metrics]"# 环境冲突用这个解决 `pip install --no-deps -e .`
如果出现红色的error就更新下依赖
css
pip install --upgrade pip
会看到已经开始下载了,左边也多了一个文件夹。

看到这里的时候基本就已经装完了。

右键并命名为 models,并下载新模型到这个文件夹里
bash
git clone https://www.modelscope.cn/Qwen/Qwen2.5-0.5B-Instruct.git
3、引入数据集
我们以售后数据集为例:
下载数据集:modelscope.cn/datasets/me...

下载之后打开你会发现它不是典型的json格式

所以我们需要预处理一下。我们让ds直接处理成json就好。保存文件名为train_converted.json 。

保存文件名为train_converted.json 。
因为系统自带dataset_info.json等于说是train_converted.json数据集等的索引。所以我们只用把后者写入前者就可以了。

4、开始训练
设置一下训练配置,照着下面填就可以,注意数据集选择train_converted.json
另外,模型路径需要是你自己的路径,不要直接抄,需要检查一下是否和你真实的文件路径是同一个。

依次点击这三个。

模型就开始嘎嘎给你训练

你就可以看到模型损失曲线了------
模型损就是失衡量预测与真实值的误差,
训练目标是最小化损失;但并非越小越好。

5、测试聊天
接着我们切换到chat,试试模型有没有记住我们刚才提供的数据。
接下来我们就点击检查点路径👉chat👉加载模型

接着我们就可以看到它的回答是基于我们的训练数据的(咱们这个样本数据太少了加上模型尺寸会受影响,只是举个例子)

总体上姑且认为它训练成功了。
6、导出模型
导出目录一定命名为outputmodel,因为我第七步代码里用了这个名字

导出成功后再看notebook就会发现多了一个文件夹

7、转化模型格式
依次执行
bash
cd /mnt/workspace/LLaMA-Factory
git clone https://github.com/ggerganov/llama.cpp.git
cd llama.cpp/gguf-py
pip install --editable .
执行完了之后就会多一个cpp文件夹

首先会到LLaMA-Factor下面创建一个叫
megred-model-path的文件夹
然后回到llma.cpp文件路径下,一次性复制下面三行代码运行
bash
python convert_hf_to_gguf.py /mnt/workspace/LLaMA-Factory/outputmodel \
--outfile /mnt/workspace/LLaMA-Factory/megred-model-path \
--outtype q8_0
他就会直接给你保存到/mnt/workspace/LLaMA-Factory/llama.cpp

右键下载就可以了
8、使用模型
setting👉 Molde Provider 👉import一下就可以了

选择刚刚下载的gguf,点击start
效果非常沙雕,毕竟咱们就一个非常简单的数据集。如果你不训练,这里回答的将会是千问自定义的回答。

ok,这就是我们模型预训练最最最简单的一个最最最简陋的一个流程体验。
之后不管是面试还是项目沟通中都可以大概心里有个数了。
我是阿星,我们下期再见!