如何看待chatglm2?真实效果怎么样? - 知乎
大模型参数高效微调技术原理综述(五)-LoRA、AdaLoRA、QLoRA - 知乎
GitHub - THUDM/ChatGLM2-6B: ChatGLM2-6B: An Open Bilingual Chat LLM | 开源双语对话语言模型
清华大学开源ChatGLM2-6B开源模型在anaconda下的虚拟环境详细部署及安装教程_best_mimo的博客-CSDN博客
pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --set show_channel_urls yes
git clone https://github.com/THUDM/ChatGLM2-6B.git
下载的时候发现源代码很小,模型巨大,推荐直接去清华镜像站下载模型,Hugging Face太慢了:
清华大学云盘
https://huggingface.co/THUDM/chatglm2-6b/tree/main
并将下载的文件替换到本地的 chatglm2-6b 目录下。
将模型下载到本地之后,将以上代码中的 THUDM/chatglm2-6b 替换为你本地的 chatglm2-6b 文件夹的路径,即可从本地加载模型。
模型的实现仍然处在变动中。如果希望固定使用的模型实现以保证兼容性,可以在 from_pretrained 的调用中增加 revision="v1.0" 参数。v1.0 是当前最新的版本号,完整的版本列表参见 Change Log。
下面的方法是用git的LFS管理,请安装后,从huggingface中下载模型(不推荐):
pip install git-lfs
git lfs install
git clone https://huggingface.co/THUDM/chatglm2-6b 或者指定文件夹也行
git clone https://huggingface.co/THUDM/chatglm2-6b $PWD/chatglm2-6b
Git LFS(Large File Storage)是一个用于管理大文件的扩展,旨在解决 Git 仓库中大文件带来的问题。在传统的 Git 仓库中,大文件的版本控制可能会导致仓库变得庞大,下载和克隆仓库的速度变慢,同时也增加了存储和网络带宽的开销。Git LFS 通过将大文件存储在远程服务器上,而不是直接存储在 Git 仓库中,来解决这些问题。
Hugging Face 是一个致力于自然语言处理(NLP)领域的开发者社区和平台,他们提供了一系列优秀的 NLP 工具和库,以及预训练的语言模型,以帮助开发者在各种 NLP 任务上取得出色的成果。
我到这里就卡死了。科学方法或者不科学方法都不能正常clone这大约8G个的模型数据,没事,上Huggingface下载吧
搞定以后, 把这些bin文件拷贝到你放模型的文件夹下,比如我放在chatglm2-6b文件夹下。运行前,检查web_demo.py。反正是python源码,一条一条执行可以排错。也可以一气呵成先试试看能否运行。
我的显存为6G,所以我改为4 bit量化
tokenizer = AutoTokenizer.from_pretrained(r"C:\Users\40696\Desktop\Seafile\ChatGLM2\ChatGLM2-6B\model", trust_remote_code=True)
model = AutoModel.from_pretrained(r"C:\Users\40696\Desktop\Seafile\ChatGLM2\ChatGLM2-6B\model", trust_remote_code=True).half().quantize(4).cuda()
温馨提示,根据实际显卡显存 (如何看自己的显存,前面我已经讲过了,自己的显存要和下面代码对应,不对应就会报错并且烧坏显卡,注意注意!!),可以更改第6行关于model运行方式:
# 6G 显存可以 4 bit 量化
model = AutoModel.from_pretrained("model", trust_remote_code=True).half().quantize(4).cuda()
# 10G 显存可以 8 bit 量化
model = AutoModel.from_pretrained("model", trust_remote_code=True).half().quantize(8).cuda()
# 14G 以上显存可以直接不量化,博主显存为16G选择的就是这个
model = AutoModel.from_pretrained("model", trust_remote_code=True).half().cuda()
pip3 install -r requirements.txt
python web_demo.py
安装额外的依赖 pip install fastapi uvicorn
运行仓库中的 api.py:python api.py
默认部署在本地的 8000 端口,通过 POST 方法进行调用
curl -X POST "http://127.0.0.1:8000" \
-H 'Content-Type: application/json' \
-d '{"prompt": "你好", "history": []}'
得到的返回值为
{
"response":"你好!我是人工智能助手 ChatGLM2-6B,很高兴见到你,欢迎问我任何问题。",
"history":[["你好","你好!我是人工智能助手 ChatGLM2-6B,很高兴见到你,欢迎问我任何问题。"]],
"status":200,
"time":"2023-03-23 21:38:40"
}
GitHub - hiyouga/LLaMA-Efficient-Tuning: Easy-to-use LLM fine-tuning framework (LLaMA-2, BLOOM, Falcon, Baichuan, Qwen, ChatGLM2)