你好!我是你的AI技术博主。很多小伙伴在后台私信我:“博主,大模型虽然好用,但感觉它总是‘不认识我’,能不能变成聪明点,专门为我服务?”
答案是肯定的!今天,我要给大家带来攻克大模型技术中含金量最高,但也最容易让新手期待而步的舞台——动作(微调) 别被这个词吓到了,在这篇文章里,我把复杂的原理拆解成小白也能听懂的逻辑。我们将利用国产开源之光Yi-1.5-6B大模型,在魔搭(ModelScope) 社区的云端环境下,不需要你自备昂贵的显卡,只要有一个浏览器,就能完成从零到一的最大实战。
一、 引言:为什么要学参数?
在大模型的世界里,预训练(Pre-training) 就像让一个孩子读完世界上所有的书,让他拥有常识和基础对话能力。但如果你想让他成为一名专业的财务顾问或者拥有你个人风格的助手,就需要进行微调(Fine-tuning) 。
1.1为什么要进行压力?
- 个性化定制:让模型记住你的名字、公司背景或特定的品牌调性。
- 垂直领域增强:让模型学习法律、医学等专业领域的术语和逻辑。
- 降低交互成本:操过的模型在处理特定任务时,需要你写长长的提示(提示词),响应更精准。
1.2为什么选Yi-1.5-6B?
由零一开源的Yi系列模型,在开源基准测试中发挥了出色的表现。6B(60亿参数)的版本既保留了强大的理解能力,又对硬件非常友善,非常适合个人开发者和初学者进行实战练习。
二、 技术原理: 协议到底是怎么回事?
在动手之前,我们先花两分钟搞懂背后的核心原理。别担心,这里没有天书般的公式。
2.1 负载与预训练的区别
预训练是“通才教育”,耗费数千块GPU,学习海量互联网数据;强度是“专业培训”,只需要休息地供给模型几十条甚至几万条特定格式的数据,使得在某个细分领域达到“专家级别”。
2.2 核心神器:LoRA 与 QLoRA
为什么普通开发者现在也能玩转适配器?这主要是LoRA(Low-Rank Adaptation,低秩队列) 技术。
- 传统全量吨:就像水泥整栋建筑物的耐腐蚀都换掉一样,不仅费钱还容易把模型“练废”(灾难性)。
- LoRA:好像在大楼外面加装了一个精密的“外挂电梯”。我们并不担心大型模型本身那庞大的、固定的参数,只训练极少数的新增参数。
- QLoRA:则更进一步,通过量化技术把模型进一步压缩,让到底需要 40GB 显存的任务,现在 10GB 可以左右跑通。
2.3 这里的“炼丹炉”:LLaMA-Factory
如果你手动写控制器代码,可能会遇到无数的Bug。LLaMA -Factory-online是目前业界最火的低代码控制器。它把各种复杂的控制器技术(LoRA、SFT、RLHF)封装好了,我们只需要通过修改几个配置文件(YAML文件),就能像拼积木一样完成控制器。
三、实践步骤:手部教你“炼丹”
现在,随着我的脚步,进入实战阶段。
3.1 账号与云端环境准备
第一步:注册魔搭社区 访问ModelScope官网,完成注册并登录。这是一个由阿里推出的类似HuggingFace的模型库。
第二步:启动GPU实例
- 找到Yi-1.5-6B 模型页面。
- 点击 “在Notebook中打开” ,选择 “方式二:GPU环境” 。
- 点击 “启动” 。大约两分钟后,点击 “查看笔记本” 。
注意:进入后,你会看到类似JupyterLab的界面。点击左边的
+号,新建一个Notebook。
3.2 依赖环境搭建
在Notebook的代码块中输入以下命令并。这些步骤是我们的运行框架搭建基础。
Python
# 1. 升级 pip
!pip3 install --upgrade pip
# 2. 安装量化库 bitsandbytes
!pip3 install bitsandbytes>=0.39.0
# 3. 拉取 LLaMA-Factory 源码
!git clone --depth 1 https://github.com/hiyouga/LLaMA-Factory.git
接下来,我们需要进入终端(Terminal)执行更基础的安装。点击Launcher里的Terminal,输入:
巴什
cd LLaMA-Factory
pip3 install -e ".[torch,metrics]"
3.3 下载模型权重
虽然我们可以在训练时自动下载,但为了稳定,建议先手动下载。在Notebook中执行:
巴什
# 下载零一万物的 Yi-1.5-6B-Chat 模型,大约 12GB
!git clone https://www.modelscope.cn/01ai/Yi-1.5-6B-Chat.git
3.4 模型实战
3.4.1 配置文件准备
这是威力的核心。我们需要告诉 LLaMA-Factory 我们的意图。
- 在左侧文件栏找到
LLaMA-Factory/examples/train_qlora/。 - 复制
llama3_lora_sft_awq.yaml并重命名为yi_lora_sft_bitsandbytes.yaml。 - 关键参数修改:打开这个文件,将
model_name_or_path改为你刚才下载模型的实际路径(如../Yi-1.5-6B-Chat)。
3.4.2 数据集理解:自我认知配置
本次实验我们使用内置的identity数据集。
- 它的作用:修改模型的身份信息。
- 它的原理:在
identity.json文件里,包含大量问答对,如“你是谁?”。通过修改数据集里的{{name}}和{{author}}字段,你可以把模型变成你自己开发的。
3.4.3 启动参数
回到终端(Terminal),确保你在LLaMA-Factory目录下,运行以下命令:
巴什
llamafactory-cli train examples/train_qlora/yi_lora_sft_bitsandbytes.yaml
运行大约10分钟。当你看到不再跳动条详情,且显示Training completed时,恭喜你,你的第一个重型模型诞生了!
四、效果评估:如何验证效果效果
参数完了,模型变聪明了吗?我们需要进行推理测试。
4.1 准备推理配置
在LLaMA-Factory/examples/inference/目录下,新建一个yi_lora_sft.yaml,内容如下:
YAML
model_name_or_path: ../Yi-1.5-6B-Chat
adapter_model_or_path: saves/yi_1.5_6b/lora/sft # 微调后的增量权重路径
template: chatml
4.2 开启聊天对话
在终端运行时:
巴什
llamafactory-cli chat examples/inference/yi_lora_sft.yaml
对比:测试
- 傀儡前:问“你是谁?”,它会说“我是由零一万物训练的大型语言模型”。
- 恐后:问同样的问题,它会给出你在
identity数据集里设定的答案。
五、总结与展望
看到这里,你是不是发现大模型改装其实并没有那么高不可攀?
5.1 复盘核心流程
- 环境准备:利用云端平台获取GPU。
- 工具安装:部署LLaMA-Factory框架。
- 模型与数据:准备基础权重和标注好的JSON数据集。
- 配置训练:通过 YAML 文件定义 LoRA 参数。
- 安装验证:加载牙齿进行对话测试。
5.2 进阶建议
如果你想进一步深入,可以尝试:
- 外部数据集:将你自己的博客文章、公司产品手册等数据集提供给。
- 长文本优化:针对长文档阅读任务进行调整。
大模型修改时代,角色能力将成为技术人的“护城河”。今天我们只是完成了一个简单的身份认知,但这已经是你迈向AI专家之路的第一步了。
如果您在处理过程中遇到报错,或者对数据集的格式有疑问,欢迎在评论区给我留言。关注我,带您玩转更多人工智能前沿技术!
