赞
踩
ChatGLM3是由智谱AI和清华大学KEG实验室联合开发的一款新一代对话预训练模型。这个模型是ChatGLM系列的最新版本,旨在提供更流畅的对话体验和较低的部署门槛。ChatGLM3-6B是该系列中的一个开源模型,它继承了前两代模型的优秀特性,并引入了一些新的功能和改进。
# github
https://github.com/THUDM/ChatGLM3
# huggingface
https://huggingface.co/THUDM/chatglm3-6b
我们仅提供了单机多卡/多机多卡的运行示例,因此您需要至少一台具有多个 GPU 的机器。本仓库中的默认配置文件中,我们记录了显存的占用情况:
目前我有三个方案:
方案1
,可以作为学习可以,但是由于本身MPS
的问题,运行速度并不快,而且M1
最高配置只有16GB
,非常难受。
方案2
,虽然我们的总量够了 16GB
,达到了 LoRA
和 P-TuningV2
的要求,但是
要求每张显卡都有可以完整放下模型的空余,也就是说,我们单卡的 8GB
是不满足的。具体需要13GB
,可看上章节 LLM-02
中的实机运行内容。
方案3
,虽然不便宜,但是是主力机了。后续的微调都在这里完成。
由于 全量 SFT
要求的显存买不起··· 所以选择了 LoRA
和 P-TuningV2
。
先更新下操作系统,等等内容,CUDA版本等等。
sudo 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
配置一个新的环境,确保安装3.10
版本,避免版本问题。
# 安装
pyenv install 3.10
# 配置全局,也可以使用 local 配置当前目录
pyenv global 3.10
# 测试
python
独立的包环境,防止依赖之间互相干扰。
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
等待依赖安装完毕
到此,环境的准备工作已经完成!下一节我们开始微调!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。