【AI大模型】从零开始运用LORA微调ChatGLM3-6B大模型并私有数据训练
ChatGLM3是智谱AI和清华大学 KEG 实验室联合发布的对话预训练模型。ChatGLM3-6B 是 ChatGLM3 系列中的开源模型,在保留了前两代模型对话流畅、部署门槛低等众多优秀特性的基础上,ChatGLM3-6B 引入了如下特性:ChatGLM3-6B 的基础模型 ChatGLM3-6B-Base 采用了更多样的训练数据、更充分的训练步数和更合理的训练策略。
目录导航
- 1.什么是ChatGLM3-6B
- 2.什么是LORA微调技术
- 3.算力平台
- 4.环境搭建
-
- 4.1 虚拟环境conda工具搭建并激活
- 4.2 CUDA版本查看和torch版本匹配
- 4.3 git lfs下载
- 4.4 模型下载和代码拉取
- 4.5 依赖下载
- 5 模型微调
-
- 5.1 数据准备
- 5.2 LORA微调
- 5.3 微调前后对比
- 6 总结
1.什么是ChatGLM3-6B
- ChatGLM3 是智谱AI和清华大学 KEG 实验室联合发布的对话预训练模型。ChatGLM3-6B 是 ChatGLM3 系列中的开源模型,在保留了前两代模型对话流畅、部署门槛低等众多优秀特性的基础上,ChatGLM3-6B 引入了如下特性:
- 更强大的基础模型: ChatGLM3-6B 的基础模型 ChatGLM3-6B-Base 采用了更多样的训练数据、更充分的训练步数和更合理的训练策略。在语义、数学、推理、代码、知识等不同角度的数据集上测评显示,* ChatGLM3-6B-Base 具有在 10B 以下的基础模型中最强的性能*。
- 更完整的功能支持: ChatGLM3-6B 采用了全新设计的 Prompt 格式 ,除正常的多轮对话外。同时原生支持工具调用(Function Call)、代码执行(Code Interpreter)和 Agent 任务等复杂场景。
- 更全面的开源序列: 除了对话模型 ChatGLM3-6B 外,还开源了基础模型 ChatGLM3-6B-Base 、长文本对话模型 ChatGLM3-6B-32K 和进一步强化了对于长文本理解能力的 ChatGLM3-6B-128K。以上所有权重对学术研究完全开放 ,在填写 问卷 进行登记后亦允许免费商业使用。
2.什么是LORA微调技术
- LoRA(Low-Rank Adaptation)微调技术是一种用于微调大型预训练语言模型的方法。这种技术的核心思想是通过在原有的模型中引入少量的额外参数来实现模型的微调,而不是改变模型的全部参数。这样做可以在保持预训练模型的大部分知识的同时,使模型适应特定的任务或数据集。
- LoRA主要通过在模型的每个变换器层中引入两个低秩矩阵(A 和 B)来实现。这些矩阵与原始的注意力矩阵或前馈网络权重矩阵相乘,以引入新的可训练参数。在实践中,通过这种方式添加的参数数量远少于原始模型的参数总量,从而大幅减少了微调过程中的计算和存储需求。
- LoRA技术特别适合于需要在资源受限环境下迅速部署模型的场景,例如在移动设备上或在云端服务中处理大量用户请求时。此外,这种方法也适用于那些需要对模型进行频繁更新的应用
😝有需要的小伙伴,可以V扫描下方二维码免费领取🆓
在这里插入图片描述
4.环境搭建
4.1 虚拟环境conda工具搭建并激活
- 安装conda 建议直接安装Anaconda即可本地
代码语言:javascript
复制
mkdir -p ~/miniconda3
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh -O ~/miniconda3/miniconda.sh
bash ~/miniconda3/miniconda.sh -b -u -p ~/miniconda3
rm -rf ~/miniconda3/miniconda.sh
conda create -n chatglm3 python=3.11
conda activate chatglm3
4.2 CUDA版本查看和torch版本匹配
- 输入命令nvidia-smi
在这里插入图片描述
- 版本匹配情况查看:https://pytorch.org/get-started/previous-versions/ 修改对应的requirements.txt的torch版本即可
在这里插入图片描述
在这里插入图片描述
4.3 git lfs下载
- 想要使用git拉大的数据需要下载git lfs
- 乌班图操作(不同系统操作不一样 mac使用brew直接安装) 在Ubuntu系统上安装Git Large File Storage (Git LFS) 的步骤如下:
安装Git(如果尚未安装): 确保你的系统上已经安装了Git。可以通过运行以下命令来安装Git:
代码语言:javascript
复制
sudo apt-get update
sudo apt-get install git
添加Git LFS的包仓库: 为了安装Git LFS,你需要首先添加它的包仓库到你的系统中。使用下面的命令:
代码语言:javascript
复制
curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.deb.sh | sudo bash
安装Git LFS: 添加仓库后,你可以通过运行以下命令来安装Git LFS:
代码语言:javascript
复制
sudo apt-get install git-lfs
设置Git LFS: 安装完成后,你需要运行以下命令来设置Git LFS:
代码语言:javascript
复制
git lfs install
这将设置Git LFS的全局Git钩子。
4.4 模型下载和代码拉取
- 模型下载地址 https://huggingface.co/THUDM/chatglm3-6b 需要科学上网
- 或者 https://www.modelscope.cn/models/ZhipuAI/chatglm3-6b/ 推荐 都可以直接下载
- git clone + .git地址 - 》git clone https://huggingface.co/THUDM/chatglm3-6b
- 拉官方代码: git clone https://github.com/THUDM/ChatGLM3.git
在这里插入图片描述
4.5 依赖下载
- 进入到拉下来的代码的根目录 运行即可下载相关的全部依赖
pip install -r requirements.txt
5 模型微调
5.1 数据准备
- 这里需要准备json格式数据并按照官方给的格式进行排列,有train.json和train.json数据 存放到项目的目录即可 格式如下
- 自己造数据即可
代码语言:javascript
复制
{"conversations": [{"role": "user", "content": "你好"}, {"role": "assistant", "content": "您好,我是 大数据小禅,一个由 大数据小禅的微调实验室 打造的人工智能助手,请问有什么可以帮助您的吗?"}]}
{"conversations": [{"role": "user", "content": "你好呀,你叫什么名字呀"}, {"role": "assistant", "content": "您好!我是一个人工智能助手,你可以叫我 大数据小禅。很高兴见到您,请问有什么事情是我可以为您服务的呢?"}]}
{"conversations": [{"role": "user", "content": "能介绍一下你自己吗?"}, {"role": "assistant", "content": "当然可以,我是 大数据小禅,一个由 大数据小禅的微调实验室 开发的人工智能助手,可以为您提供回答和帮助。"}]}
{"conversations": [{"role": "user", "content": "谁训练了你?"}, {"role": "assistant", "content": "大数据小禅的微调实验室 训练了我,我的目的是回答用户问题并提供必要的支持。"}]}
{"conversations": [{"role": "user", "content": "你有什么优势?"}, {"role": "assistant", "content": "作为 大数据小禅,我的优势包括对自然语言的理解和生成能力,我致力于为用户提供准确、有用的回答和解决方案。"}]}
5.2 LORA微调
- 硬件要求
- 显存:24GB及以上(推荐使用30系或A10等sm80架构以上的NVIDIA显卡进行尝试) 内存:16GB RAM: 2.9 /16 GB GPU RAM: 15.5/16.0 GB
- 准备上面的两个数据集合,执行以下命令进行微调,对应的路径需要换成是自己环境的 ,需要有一定的时间等待,数据越多越久
!CUDA_VISIBLE_DEVICES=0 NCCL_P2P_DISABLE="1" NCCL_IB_DISABLE="1" /root/miniconda3/envs/chatglm3/bin/python finetune_hf.py /root/autodl-tmp/ChatGLM3/mydata /root/autodl-tmp/model/chatglm3-6b configs/lora.yaml
在这里插入图片描述
5.3 微调前后对比
- 微调前 对大数据小禅这个博主的名字胡说
在这里插入图片描述
- 微调后 按照我们数据集的内容回答
- 命令推理
!CUDA_VISIBLE_DEVICES=0 NCCL_P2P_DISABLE="1" NCCL_IB_DISABLE="1" /root/miniconda3/envs/chatglm3/bin/python inference_hf.py output/checkpoint-3000/ --prompt "大数据小禅是谁"
在这里插入图片描述
在这里插入图片描述
6 总结
- 到这里已经完成了LORA微调ChatGLM3-6B,整体下来如何自己造的数据不够多和精准,效果并不是那么好
- 后续将更新更多微调方式
如何学习大模型 AI ?
由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。
但是具体到个人,只能说是:
“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。
这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。
我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。
我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。
这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费
】
第一阶段(10天):初阶应用
该阶段让大家对大模型 AI有一个最前沿的认识,对大模型 AI 的理解超过 95% 的人,可以在相关讨论时发表高级、不跟风、又接地气的见解,别人只会和 AI 聊天,而你能调教 AI,并能用代码将大模型和业务衔接。
- 大模型 AI 能干什么?
- 大模型是怎样获得「智能」的?
- 用好 AI 的核心心法
- 大模型应用业务架构
- 大模型应用技术架构
- 代码示例:向 GPT-3.5 灌入新知识
- 提示工程的意义和核心思想
- Prompt 典型构成
- 指令调优方法论
- 思维链和思维树
- Prompt 攻击和防范
- …
第二阶段(30天):高阶应用
该阶段我们正式进入大模型 AI 进阶实战学习,学会构造私有知识库,扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架,抓住最新的技术进展,适合 Python 和 JavaScript 程序员。
- 为什么要做 RAG
- 搭建一个简单的 ChatPDF
- 检索的基础概念
- 什么是向量表示(Embeddings)
- 向量数据库与向量检索
- 基于向量检索的 RAG
- 搭建 RAG 系统的扩展知识
- 混合检索与 RAG-Fusion 简介
- 向量模型本地部署
- …
第三阶段(30天):模型训练
恭喜你,如果学到这里,你基本可以找到一份大模型 AI相关的工作,自己也能训练 GPT 了!通过微调,训练自己的垂直大模型,能独立训练开源多模态大模型,掌握更多技术方案。
到此为止,大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗?
- 为什么要做 RAG
- 什么是模型
- 什么是模型训练
- 求解器 & 损失函数简介
- 小实验2:手写一个简单的神经网络并训练它
- 什么是训练/预训练/微调/轻量化微调
- Transformer结构简介
- 轻量化微调
- 实验数据集的构建
- …
第四阶段(20天):商业闭环
对全球大模型从性能、吞吐量、成本等方面有一定的认知,可以在云端和本地等多种环境下部署大模型,找到适合自己的项目/创业方向,做一名被 AI 武装的产品经理。
- 硬件选型
- 带你了解全球大模型
- 使用国产大模型服务
- 搭建 OpenAI 代理
- 热身:基于阿里云 PAI 部署 Stable Diffusion
- 在本地计算机运行大模型
- 大模型的私有化部署
- 基于 vLLM 部署大模型
- 案例:如何优雅地在阿里云私有部署开源大模型
- 部署一套开源 LLM 项目
- 内容安全
- 互联网信息服务算法备案
- …
学习是一个过程,只要学习就会有挑战。天道酬勤,你越努力,就会成为越优秀的自己。
如果你能在15天内完成所有的任务,那你堪称天才。然而,如果你能完成 60-70% 的内容,你就已经开始具备成为一名大模型 AI 的正确特征了。
这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费
】
更多推荐
所有评论(0)