前言
- 清华源代码链接 GLM2-6Bgithub
https://github.com/THUDM/ChatGLM2-6B
hugging face
https://huggingface.co/THUDM/chatglm2-6b - 本地环境
-python 3.9.12
-torch 2.0.1
-cuda 11.8
-transformer 4.30.2
-单GPU训练
环境准备
- 从代码库下载源文件
注意tokenization_chatglm.py这些.py文件,微调时报错同这些文件可能有关
执行如下命令,安装依赖库
pip install -r requirements.txt
源代码有3种展示界面,使用CLI需要安装charset_normalizer
pip install charset_normalizer
使用Demo2需要安装Streamlit库
pip install streamlit streamlit-chat
2. 本地化部署时的三种界面展示
- cli_demo.py
由于是windows部署,需要修改模型加载路径的符号,下面2个文件同理
对应代码:
tokenizer = AutoTokenizer.from_pretrained("THUDM\chatglm2-6b", trust_remote_code=True)
model = AutoModel.from_pretrained("THUDM\chatglm2-6b", trust_remote_code=True).cuda()
如果碰到如下问题,可以将原来.cuda()修改为.half().cuda()
RuntimeError: expected scalar type Half but found Float
即:
model = AutoModel.from_pretrained("THUDM\chatglm2-6b", trust_remote_code=True).half.cuda()
碰到如下问题,则修改输出删除past_key_values
ValueError: not enough values to unpack (expected 3, got 2)
最后运行结果如下所示,为编辑器展示:
- web_demo.py
基于gradio的展示界面如下所示:
如果想局域网内可用,可修改最后的代码:
demo.queue().launch(share=False, inbrowser=True,server_name='X.X.X.X',server_port=XXXX)
server_name 对应的局域网内地址,默认端口为7860,可按需修改;
如果将share参数 = True,则有一个公网访问界面,存在时间为72小时。
- web_demo2.py
输入如下命令启动 streamlit run web_demo2.py --server.port 7860