1 硬件环境
处理器: Intel(R) Core(TM) i5-10600K CPU @ 4.10GHz 4.10 GHz
机器内存: RAM 32.0 GB (31.9 GB 可用)
显卡 显存>12 G(可运行标准版ChatGLM-6B) 或显存>6 G(可运行INT4 量化版) , 本机使用 P40
2 安装pytorch gpu版
具体安装方法参照本人上一篇文章:全网最简单5分钟Win10安装部署pytorch GPU加速
全网最简单5分钟Win10安装部署pytorch GPU加速(附gpu测试代码)--------- 不需要安装CUDA,CUDNN !!!-CSDN博客
3 pip安装依赖包
a)Conda命令行进入到上一篇文章中安装的pytorch GPU环境,准备安装ChatGLM-6B的依赖包
b)修改requirements.txt,删除其中torch一行(咱们已经安装了pytorch GPU版),然后安装其他依赖包:pip install -r requirements.txt
修改后的requirements.txt
protobuf
transformers==4.27.1
cpm_kernels
gradio
mdtex2html
sentencepiece
accelerate
4 下载ChatGLM-6B预训练模型数据
下载方法:
1 通过huggingface_hub将ChatGLM-6B预训练模型下载到本地。
a)首先安装huggingface_hub : pip install huggingface_hub
b)使用以下代码进行下载:
from huggingface_hub import snapshot_download
snapshot_download(repo_id="THUDM/chatglm-6b", local_dir="D:\workplace\ChatModel\chatglm2-6b")
注意:本地地址修改为你需要保存的地址。
2 百度网盘下载:
链接:https://pan.baidu.com/s/1qOkPYoQ9I2Fhciz62c_6iA?pwd=1uec
提取码:1uec
5 下载ChatGLM-6B模型使用样例代码
下载方法:
1 GitHub 上下载:https://github.com/THUDM/ChatGLM-6B
2 百度网盘下载 :
修改后的样例:
链接:https://pan.baidu.com/s/1BPPPuuH7I2dg1ha80DI5xw?pwd=gixa
提取码:gixa
6 修改样例代码:
cli_demo.py
import os
import platform
import signal
from transformers import AutoTokenizer, AutoModel
#import readline #这行一定要注释掉,否则Windows环境运行会报错
#这行修改成模型的本地存放位置
tokenizer = AutoTokenizer.from_pretrained("D:\workplace\ChatModel\chatglm2-6b", trust_remote_code=True)
#这行修改成模型的本地存放位置
model = AutoModel.from_pretrained("D:\workplace\ChatModel\chatglm2-6b", trust_remote_code=True).cuda()
# 多显卡支持,使用下面两行代替上面一行,将num_gpus改为你实际的显卡数量
# from utils import load_model_on_gpus
# model = load_model_on_gpus("THUDM/chatglm2-6b", num_gpus=2)
model = model.eval()
os_name = platform.system()
clear_command = 'cls' if os_name == 'Windows' else 'clear'
stop_stream = False
def build_prompt(history):
prompt = "欢迎使用 ChatGLM2-6B 模型,输入内容即可进行对话,clear 清空对话历史,stop 终止程序"
for query, response in history:
prompt += f"\n\n用户:{query}"
prompt += f"\n\nChatGLM2-6B:{response}"
return prompt
def signal_handler(signal, frame):
global stop_stream
stop_stream = True
def main():
past_key_values, history = None, []
global stop_stream
print("欢迎使用 ChatGLM2-6B 模型,输入内容即可进行对话,clear 清空对话历史,stop 终止程序")
while True:
query = input("\n用户:")
if query.strip() == "stop":
break
if query.strip() == "clear":
past_key_values, history = None, []
os.system(clear_command)
print("欢迎使用 ChatGLM2-6B 模型,输入内容即可进行对话,clear 清空对话历史,stop 终止程序")
continue
print("\nChatGLM:", end="")
current_length = 0
for response, history, past_key_values in model.stream_chat(tokenizer, query, history=history,
past_key_values=past_key_values,
return_past_key_values=True):
if stop_stream:
stop_stream = False
break
else:
print(response[current_length:], end="", flush=True)
current_length = len(response)
print("")
if __name__ == "__main__":
main()
a) import readline #这行一定要注释掉,否则Windows环境运行会报错
b) tokenizer = AutoTokenizer.from_pretrained("D:\workplace\ChatModel\chatglm2-6b", trust_remote_code=True)
model = AutoModel.from_pretrained("D:\workplace\ChatModel\chatglm2-6b", trust_remote_code=True).cuda()
#这两行修改成模型的本地存放位置
7 运行cli_demo.py
python cli_demo.py ,看到上图,表示本地运行成功。
8 尽情享受与ChatGLM对话
上一篇:
【全网最简单】5分钟 Win10安装部署pytorch GPU加速(附gpu测试代码)--------- 不需要安装CUDA,CUDNN !!!-CSDN博客
下一篇: