【AI大模型】从零开始运用LORA微调ChatGLM3-6B大模型并私有数据训练_chalm3进行lora训练
脱泥不tony 2024-08-21 11:31:02 阅读 100
目录导航
1.什么是ChatGLM3-6B2.什么是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扫描下方二维码免费领取🆓
![](https://img-blog.csdnimg.cn/img_convert/6ddc5160bc725974998##### 3.算力平台
由于模型微调需要用到大量算力,对GPU要求较高,推荐小伙伴租借算力平台的服务器进行使用本文使用的环境:Ubantu + RTX4090 24G直接到算力平台租借即可
在这里插入图片描述
4.环境搭建
4.1 虚拟环境conda工具搭建并激活
安装conda 建议直接安装Anaconda即可本地
代码语言:javascript
复制
<code>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
复制
<code>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 依赖下载
进入到拉下来的代码的根目录 运行即可下载相关的全部依赖<code>pip install -r requirements.txt
5 模型微调
5.1 数据准备
这里需要准备json格式数据并按照官方给的格式进行排列,有train.json和train.json数据 存放到项目的目录即可 格式如下自己造数据即可
代码语言:javascript
复制
<code>{"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.yamlcode>
在这里插入图片描述
5.3 微调前后对比
微调前 对大数据小禅这个博主的名字胡说
在这里插入图片描述
微调后 按照我们数据集的内容回答命令推理 <code>!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 "大数据小禅是谁"code>
在这里插入图片描述
在这里插入图片描述
6 总结
到这里已经完成了LORA微调ChatGLM3-6B,整体下来如何自己造的数据不够多和精准,效果并不是那么好后续将更新更多微调方式
如何系统的去学习大模型LLM ?
作为一名热心肠的互联网老兵,我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。
但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的 <code>AI大模型资料 包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。
😝有需要的小伙伴,可以V扫描下方二维码免费领取🆓
一、全套AGI大模型学习路线
AI大模型时代的学习之旅:从基础到前沿,掌握人工智能的核心技能!
二、640套AI大模型报告合集
这套包含640份报告的合集,涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。
三、AI大模型经典PDF籍
随着人工智能技术的飞速发展,AI大模型已经成为了当今科技领域的一大热点。这些大型预训练模型,如GPT-3、BERT、XLNet等,以其强大的语言理解和生成能力,正在改变我们对人工智能的认识。 那以下这些PDF籍就是非常不错的学习资源。
四、AI大模型商业化落地方案
阶段1:AI大模型时代的基础理解
目标:了解AI大模型的基本概念、发展历程和核心原理。内容:
L1.1 人工智能简述与大模型起源L1.2 大模型与通用人工智能L1.3 GPT模型的发展历程L1.4 模型工程
- L1.4.1 知识大模型
- L1.4.2 生产大模型
- L1.4.3 模型工程方法论
- L1.4.4 模型工程实践L1.5 GPT应用案例
阶段2:AI大模型API应用开发工程
目标:掌握AI大模型API的使用和开发,以及相关的编程技能。内容:
L2.1 API接口
- L2.1.1 OpenAI API接口
- L2.1.2 Python接口接入
- L2.1.3 BOT工具类框架
- L2.1.4 代码示例L2.2 Prompt框架
- L2.2.1 什么是Prompt
- L2.2.2 Prompt框架应用现状
- L2.2.3 基于GPTAS的Prompt框架
- L2.2.4 Prompt框架与Thought
- L2.2.5 Prompt框架与提示词L2.3 流水线工程
- L2.3.1 流水线工程的概念
- L2.3.2 流水线工程的优点
- L2.3.3 流水线工程的应用L2.4 总结与展望
阶段3:AI大模型应用架构实践
目标:深入理解AI大模型的应用架构,并能够进行私有化部署。内容:
L3.1 Agent模型框架
- L3.1.1 Agent模型框架的设计理念
- L3.1.2 Agent模型框架的核心组件
- L3.1.3 Agent模型框架的实现细节L3.2 MetaGPT
- L3.2.1 MetaGPT的基本概念
- L3.2.2 MetaGPT的工作原理
- L3.2.3 MetaGPT的应用场景L3.3 ChatGLM
- L3.3.1 ChatGLM的特点
- L3.3.2 ChatGLM的开发环境
- L3.3.3 ChatGLM的使用示例L3.4 LLAMA
- L3.4.1 LLAMA的特点
- L3.4.2 LLAMA的开发环境
- L3.4.3 LLAMA的使用示例L3.5 其他大模型介绍
阶段4:AI大模型私有化部署
目标:掌握多种AI大模型的私有化部署,包括多模态和特定领域模型。内容:
L4.1 模型私有化部署概述L4.2 模型私有化部署的关键技术L4.3 模型私有化部署的实施步骤L4.4 模型私有化部署的应用场景
学习计划:
阶段1:1-2个月,建立AI大模型的基础知识体系。阶段2:2-3个月,专注于API应用开发能力的提升。阶段3:3-4个月,深入实践AI大模型的应用架构和私有化部署。阶段4:4-5个月,专注于高级模型的应用和部署。
这份完整版的大模型 LLM 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【<code>保证100%免费】
😝有需要的小伙伴,可以Vx扫描下方二维码免费领取🆓
声明
本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。