day2 大模型学习 Qwen2.5微调入门
大模型微调应用笔记
背景
在大模型使用的浪潮中,我们该如何更好地将大模型利用到我们的工作中呢?大模型能否对我的工作和生活带来什么帮助?以此为由笔者展开了一场头脑风暴,得出如下结论,以 DeepSeek 开源的大模型为例,运行顶配模型的硬件要求大部分人也没有,大多数人的电脑能运行 8 B 的模型,在日常使用中 8 B 的模型效果差强人意。公网提供的大模型效果虽好,私有数据上传至大模型显然是不合适的。考虑到如上信息笔者网上一顿搜罗加学习,发现可以对大模型进行微调,对硬件的要求也不高,大部分人都能自己玩,接下来来看看如何实现吧。
环境
- 系统 :Windows 的 WSL(Ubuntu-24.04)子系统,算折中方案,用 Linux 效果更好。
- Python 版本 :3.10 (微调框架建议,使用 Hugging Face Transformers 可以使用更高版本)
- CUDA 版本 :cuda-toolkit-12-8 当前最新的版本
微调中必要的知识
Transformer
- 简介 :Transformer 是一种特别厉害的人工智能模型,专门用来处理文字、语言之类的东西。它是现在很多智能聊天机器人(比如我这种)和翻译软件背后的 “大脑”。简单来说,它能读懂句子,还能根据上下文生成很自然的回答或者翻译。
- 工作原理 :
- 核心想法 :Transformer 的核心想法是 “注意力机制”(Attention),其实就是让机器学会 “重点关注” 句子里的关键部分。比如你说 “我喜欢吃苹果”,它会搞清楚 “喜欢” 跟 “吃苹果” 有啥关系,而不是乱七八糟地瞎猜。
- 工作流程 :输入文字(你给它一句话,比如 “今天天气很好”)→ 拆开处理(它把这句话拆成小块(词或者字),然后给每个小块打上 “标记”,让机器知道这些词的位置和意思)→ 找关系(通过 “注意力机制”,它会看看每个词跟其他词的关系)→ 加工输出(最后,它根据这些关系,生成一个结果)。
- 优势 :
- 效率高:以前的模型(比如 RNN)得一个词一个词慢慢读,Transformer 能一次性看完整句话,速度快多了。
- 理解强:它能抓住长句子里远距离的联系,比如 “昨天我去超市买了东西,今天吃得很开心”,它知道 “东西” 和 “吃” 有关。
- 用途广:翻译、写文章、聊天、甚至生成代码,它都能干。
- 缺点 :
- 吃资源:训练它需要超级强大的电脑,普通人家里跑不动。
- 数据依赖:得喂它海量的文字数据,不然它学不好。
LoRA 和 QLoRA
- LoRA 介绍 :LoRA 全名叫 Low-Rank Adaptation(低秩适配),是个特别聪明的技术,主要用在人工智能领域,尤其是那些大模型(比如生成图片、写文章的 AI)上。它的核心想法是:与其把一个大模型整个重新训练(费时费力还费资源),不如只调整一小部分关键的地方,让它学会新东西。
- QLoRA 介绍 :它是 LoRA 的 “升级版”,全名叫 Quantized Low-Rank Adaptation(量化低秩适配)。就是在 LoRA 的基础上加了个 “压缩绝技”,让它更省资源、更适合普通设备跑大模型。
- 对比 :
- LoRA