LLM-04 大模型 15分钟 FineTuning 微调 ChatGLM3-6B(准备环境) 3090 24GB实战 需22GB显存 LoRA微调 P-TuningV2微调

简介: LLM-04 大模型 15分钟 FineTuning 微调 ChatGLM3-6B(准备环境) 3090 24GB实战 需22GB显存 LoRA微调 P-TuningV2微调

背景介绍

ChatGLM3是由智谱AI和清华大学KEG实验室联合开发的一款新一代对话预训练模型。这个模型是ChatGLM系列的最新版本,旨在提供更流畅的对话体验和较低的部署门槛。ChatGLM3-6B是该系列中的一个开源模型,它继承了前两代模型的优秀特性,并引入了一些新的功能和改进。


基础模型性能提升:ChatGLM3-6B基于更多样的训练数据、更充分的训练步数和更合理的训练策略,使得其基础模型性能得到显著提升。例如,ChatGLM3-6B-Base在10B以下的基础模型中表现最佳。

功能支持:ChatGLM3-6B支持多轮对话、工具调用(Function Call)、代码执行(Code Interpreter)和Agent任务。这些功能使得模型不仅能进行普通的对话,还能执行更复杂的任务,如代码解释和工具调用。

开源和部署:ChatGLM3-6B作为一个开源模型,鼓励开发者和社区共同推动大模型技术的发展。模型的部署相对简单,支持多种部署方式,包括在本地或云端部署。

安全和合规性:尽管模型在训练各阶段都尽力确保数据的合规性和准确性,但由于其规模较小且受概率随机性影响,无法保证输出内容的准确性。开发者需要注意模型输出可能被用户输入误导的风险。

项目地址

# github
https://github.com/THUDM/ChatGLM3

# huggingface
https://huggingface.co/THUDM/chatglm3-6b

配置要求

官方推荐

我们仅提供了单机多卡/多机多卡的运行示例,因此您需要至少一台具有多个 GPU 的机器。本仓库中的默认配置文件中,我们记录了显存的占用情况:


SFT 全量微调: 4张显卡平均分配,每张显卡占用 48346MiB 显存。

P-TuningV2 微调: 1张显卡,占用 18426MiB 显存。

LORA 微调: 1张显卡,占用 14082MiB 显存。

实机配置

目前我有三个方案:


方案1:MacBookProM1 16GB(平常用的机器,可以支撑起 LoRA…勉强跑 不推荐)

方案2:找算法组借的 2070 Super 8GB * 2 一共16GB显存(但是不能微调,后续说)

方案3:租的 3090 24GB * 1(完美,ChatGLM3-6B的微调任务都在该机器上完成的)

微调选择

方案1,可以作为学习可以,但是由于本身MPS的问题,运行速度并不快,而且M1最高配置只有16GB,非常难受。

方案2,虽然我们的总量够了 16GB,达到了 LoRA 和 P-TuningV2 的要求,但是要求每张显卡都有可以完整放下模型的空余,也就是说,我们单卡的 8GB 是不满足的。具体需要13GB,可看上章节 LLM-02 中的实机运行内容。

方案3,虽然不便宜,但是是主力机了。后续的微调都在这里完成。


由于 全量 SFT 要求的显存买不起··· 所以选择了 LoRA 和 P-TuningV2。


准备工作

更新系统

先更新下操作系统,等等内容,CUDA版本等等。

udo apt update
sudo apt install -y build-essential libbz2-dev libssl-dev libffi-dev zlib1g-dev libncurses5-dev libncursesw5-dev libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev libncursesw5-dev xz-utils tk-dev libxml2-dev libxmlsec1-dev libffi-dev liblzma-dev

Pyenv

配置一个新的环境,确保安装3.10版本,避免版本问题。

# 安装
pyenv install 3.10
# 配置全局,也可以使用 local 配置当前目录
pyenv global 3.10
# 测试
python

venv

独立的包环境,防止依赖之间互相干扰。

python -m venv env
source env/bin/active

克隆项目

这里直接GitHub走起!

克隆项目之后,我还安装了依赖。

pip install -r requirements.txt

下载模型

模型的目录是(我发现好多人找不到自己下载的模型在哪里···)

~/.cache/huggingface/

如果你有下载到指定目录的需求,可以使用如下的代码帮助你:

from transformers import AutoTokenizer, AutoModel
model_name = "THUDM/chatglm3-6b"
model_path = "/root/autodl-tmp/model/chatglm3-6b"
tokenizer = AutoTokenizer.from_pretrained(model_name,trust_remote_code=True)
model = AutoModel.from_pretrained(model_name,trust_remote_code=True)
tokenizer.save_pretrained(model_path,trust_remote_code=True)
model.save_pretrained(model_path,trust_remote_code=True)
print("done!")

我的下载目录是这里:

# 以后可以用这个路径
/root/autodl-tmp/model/chatglm3-6b

启动测试

我的模型地址:

python /root/autodl-tmp/ChatGLM3/basic_demo/cli_demo.py

正常启动(注意模型的位置,可以vim查看cli_demo.py中的MODEL_PATH)

微调依赖

# 官方准备的微调示例
cd /root/autodl-tmp/ChatGLM3/finetune_demo/
# 安装依赖
pip install -r requirements.txt

等待依赖安装完毕

本章小结

到此,环境的准备工作已经完成!下一节我们开始微调!

相关文章
|
4天前
|
机器学习/深度学习 人工智能 自然语言处理
企业内训|LLM大模型技术在金融领域的应用及实践-某商业银行分行IT团队
本企业培训是TsingtaoAI技术团队专们为某商业银行分行IT团队开发的LLM大模型技术课程。课程深入分析大模型在金融行业中的发展趋势、底层技术及应用场景,重点提升学员在大模型应用中的实际操作能力与业务场景适应力。通过对全球商用 LLM 产品及国内外技术生态的深度对比,学员将了解大模型在不同企业中的发展路径,掌握如 GPT 系列、Claude 系列、文心一言等大模型的前沿技术。针对金融行业的业务需求,学员将学会如何结合多模态技术改进用户体验、数据分析等服务流程,并掌握大模型训练与工具链的实操技术,尤其是模型的微调、迁移学习与压缩技术。
15 2
|
5天前
|
物联网 数据处理
LLM-05 大模型 15分钟 FineTuning 微调 ChatGLM3-6B(微调实战1) 官方案例 3090 24GB实战 需22GB显存 LoRA微调 P-TuningV2微调
LLM-05 大模型 15分钟 FineTuning 微调 ChatGLM3-6B(微调实战1) 官方案例 3090 24GB实战 需22GB显存 LoRA微调 P-TuningV2微调
27 0
|
7天前
|
机器学习/深度学习 人工智能 自然语言处理
【AI大模型】LLM主流开源大模型介绍
【AI大模型】LLM主流开源大模型介绍
|
6天前
|
Shell Docker Python
LLM-02 大模型 本地部署运行 ChatGLM3-6B(13GB) 双卡2070Super8GB 环境配置 单机多卡 基于LLM-01章节 继续乘风破浪 为大模型微调做准备
LLM-02 大模型 本地部署运行 ChatGLM3-6B(13GB) 双卡2070Super8GB 环境配置 单机多卡 基于LLM-01章节 继续乘风破浪 为大模型微调做准备
23 1
|
6天前
|
并行计算 算法 Shell
LLM-01 大模型 本地部署运行 ChatGLM2-6B-INT4(6GB) 简单上手 环境配置 单机单卡多卡 2070Super8GBx2 打怪升级!
LLM-01 大模型 本地部署运行 ChatGLM2-6B-INT4(6GB) 简单上手 环境配置 单机单卡多卡 2070Super8GBx2 打怪升级!
29 1
|
1月前
|
机器学习/深度学习 搜索推荐
CIKM 2024:LLM蒸馏到GNN,性能提升6.2%!Emory提出大模型蒸馏到文本图
【9月更文挑战第17天】在CIKM 2024会议上,Emory大学的研究人员提出了一种创新框架,将大型语言模型(LLM)的知识蒸馏到图神经网络(GNN)中,以克服文本图(TAGs)学习中的数据稀缺问题。该方法通过LLM生成文本推理,并训练解释器模型理解这些推理,再用学生模型模仿此过程。实验显示,在四个数据集上性能平均提升了6.2%,但依赖于LLM的质量和高性能。论文链接:https://arxiv.org/pdf/2402.12022
59 7
|
5天前
|
开发工具 git
LLM-03 大模型 15分钟 FineTuning 微调 GPT2 模型 finetuning GPT微调实战 仅需6GB显存 单卡微调 数据 10MB数据集微调
LLM-03 大模型 15分钟 FineTuning 微调 GPT2 模型 finetuning GPT微调实战 仅需6GB显存 单卡微调 数据 10MB数据集微调
16 0
|
7天前
|
机器学习/深度学习 人工智能 自然语言处理
【AI大模型】BERT模型:揭秘LLM主要类别架构(上)
【AI大模型】BERT模型:揭秘LLM主要类别架构(上)
|
2月前
|
人工智能 PyTorch 算法框架/工具
Xinference实战指南:全面解析LLM大模型部署流程,携手Dify打造高效AI应用实践案例,加速AI项目落地进程
【8月更文挑战第6天】Xinference实战指南:全面解析LLM大模型部署流程,携手Dify打造高效AI应用实践案例,加速AI项目落地进程
Xinference实战指南:全面解析LLM大模型部署流程,携手Dify打造高效AI应用实践案例,加速AI项目落地进程
|
2月前
|
存储 人工智能 JSON