“ 教育孩子和训练AI的共同真相:没有一蹴而就的‘完美’,只有持续迭代的‘更好’ ”
Hello,大家好~~
许久不见,现在大热的 AI 学习中,总是手痒忍不住也想实操各项技术玩一把,今天就从微调开始吧!
总在各类文章中听到讲“微调”,那么“微调”的到底是啥?怎么调教的?
我们用魔搭+ LLaMa Factory,0 成本,体验一个微调的全流程,无需考虑自己的电脑配置,全部 云上微调,最后再将微调的模型引入本地直接体验对话(这次使用一个简单的数据集,所以结局有反转惊喜)
01
—
什么是“微调”?
首先,我们先大致了解一下,什么是微调?常规大模型语言模型的训练路径分为以下几个阶段:
简单的说,以我们养娃来打个比方:
1. 预训练(通识教育)
- 模型 :通过自监督学习(如阅读海量文本),掌握基础语言规则,但还不会针对具体问题回答。
- 比喻 :就像孩子上学前大量听大人说话、读绘本,积累了词汇和常识,但还不会完整表达观点。
2. 微调(专项训练)
- 模型 :用Q&A对训练,教会它如何组织语言、精准回答问题。
- 比喻 :类似家长或老师通过“问答练习”教孩子:
- 问 :“天空为什么是蓝色的?”
- 教 :“因为阳光散射…”。
→ 孩子会使用专业的术语,清晰高效的表达。
3. RLHF(品德教育)
- 模型 :根据人类反馈调整回答,符合社会偏好(如更友善、更严谨)。
- 比喻 :当孩子说“因为天空喜欢蓝色!”,家长纠正:
- “答案要有科学依据哦!”
→ 孩子学会“不仅回答,还要回答得靠谱”。
那么,聪明的你,一定会明白了,大模型什么时候需要微调呢?一般会在输出要求严格的垂直场景,或者希望更效率的任务,快速输出结果。在企业的 Ai 落地过程中,还是较为广泛,那么,我们如何微调呢?下面跟着我们的步骤开始吧!
02
—
免费构建微调的实例环境
- 打开魔搭构建实例
打开:https://modelscope.cn/my/mynotebook/preset
关联你的阿里云账号,选第二个gpu环境👇
注意这个实例免费,但是过一段时间就会释放,别怕搞错什么东西!
两三分钟后,点击查看notebook
这些大图标就是你的软件,侧边栏就是文件夹,下面的$符号logo,就是终端。相当于在云端给你装了个电脑。
点击终端,进入后,我们就可以开始配置相关的环境啦
2、下载模型、创建模型文件夹
接着下载LLaMA-Factory代码。
我们只用复制不带#的代码就可以了。
安装依赖的环节会等待大概20分钟,不用怀疑,只要输入的指令没有反馈,就耐着性子,继续等待~~千万别急。
# 克隆LLaMA Factory 开源框架
git clone https://github.com/hiyouga/LLaMA-Factory.git
# 进入项目的目录
cd LLaMA-Factory
#创建虚拟环境
python -m venv .venv
#激活虚拟环境
source .venv/bin/activate
# 安装依赖(这一步很漫长,如果出错用下面环境冲突的指令)
pip install -e ".[torch,metrics]"
# 如果报错,环境冲突用改用这个解决
pip install --no-deps -e .
过程中如果缺少什么依赖,或者提醒做什么升级,照做就是!
会看到已经开始下载了,左边也多了一个文件夹。
持续安装等待到这个状态:
创建一个新的文件夹,命名为 newmodels,并下载模型,为了减少等待时间,以 Qwen2.5-0.5-instruct为例,这是一个最低参数的模型。
git clone https://www.modelscope.cn/Qwen/Qwen2.5-0.5B-Instruct.git
3、训练数据集准备
我们同样前往魔搭的数据集中,随便下载一个不到 300 行的数据集(数量少,速度快)下载:https://modelscope.cn/datasets/meadhu/taobao-positive-sentence/files
下载后我们注意格式是 csv,用于训练需要是 json格式,这里我们需要预处理,可以让勤劳的ds写一个处理脚本运行即可,保存文件名为train_converted.json 。
|
|
⚠️⚠️⚠️这里不会处理的小伙伴可以留言,我私相关的提示词,获取完整代码,在这里就不赘述了~~
因为系统自带dataset_info.json,从目录中找到它,这是一个数据集的索引。我们需要将新创建好的数据集train_converted.json再此注册,直接把数据集名称写入dataset_info.json文件即可。
03
—
一切就绪,开始训练
返回到我们的训练LLaMA-Factory 文件夹
## 回到LLaMA-Factory 文件夹,如果你已经在LLaMA-Factory 文件夹,就不要用这个指令了
cd ..
# 打开训练的 webui
llamafactory-cli webui
点击这里反馈的网址,即可进入,设置自己的相关信息路径
设置好后,就可以开始让它为你训练啦!
一通操作猛如虎,你会看到你的终端咔咔干活儿,
你在自己的 webui 上也可以看到最终的结果:
这里模型损就是失衡量预测与真实值的误差,训练目标是最小化损失;但并非越小越好,太小就会是我们所说的“过拟合”。现在我们这个数据这样的结果就算是不错~
04
—
本地测试聊天,看看它的表现如何
我们切换到chat,试试模型有没有记住我们刚才提供的数据。
点击检查点路径👉chat👉加载模型
接着我们就可以看到它的回答是基于我们的训练数据的(咱们这个模型因为基础参数小,加上训练的数据集少,所以不怎么聪明的样子,正常会是一个相关的回答,我这个数据集因为写文章训练了多轮,所以它主键走向了魔幻……)
总体上,我们就认为训练成功啦~~
05
—
导出模型
1、 创建导出目录
导出目录命名为outputmodel
导出成功后再看notebook就会发现多了一个文件夹
2、 转化模型格式,安装 GGUF库
回到终端,LLaMA-Factory路径下,执行以下命令
## 新打开一个终端
## 不管你在哪,运行这个指令回到根目录
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文件路径下,一次性复制下面三行代码运行转换格式
3、 转换格式
#再回到llama.cpp文件下
cd ..
#然后运行Python 代码,路径改成你的其中有两个路径:
# 第一个路径`/mnt/workspace/LLaMA-Factory/outputmodel`改成你刚刚导出的模型路径
# 第二个路径`--outfile /mnt/workspace/LLaMA-Factory/megred-model-path`是导出 GGUF 文件的路径,可以提前创建一个
#下面三行全复制,粘贴到终端一次运行
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
这个gguf就是常用的大模型格式,你粗略理解成大佬梁文峰老师天天忙的就是gguf这些。点击下载~
06
—
使用模型,检验效果
最方便简单的方式,打开 https://jan.ai/ ,它可以直接使用模型
setting—— Molde Provider——import一下就可以了
导入刚才下载的 GGUF 文件,点击 start,前往对话中,问个问题,嗯,是自己亲生打造的傻孩子没错了~~
如果你有 ollama 的客户端,也可以将文件再次转换后,导入到 ollama 中,进而被 dify 或者 cherrystudio 调用使用,我这里在 cherrystudio 中尝试了之后,发现傻孩子变成了疯孩子,一发不可收拾
怀疑可能和默认系统提示词导致的,或者是在文件转换时出问题了。这里就不再赘述啦~~
ok,这就是我们模型预训练最最最简单的一个最简单的一个流程体验。都有工程师为你完成😄😄~
这是第一篇笔记,希望对大家有帮助,并激励我继续坚持下去,我们下期再见!
往期推荐
1、抛砖引玉 | 为什么DeepSeek-R1是推理模型?(万字长文)
2、爽爆!一句话,AI全自动写脚本并剪辑出成片的企业级项目教程!