【全网最简单】5分钟 基于Win10 搭建本地ChatGLM-6B对话大模型

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博客

下一篇:

【全网最简单】 构建自己的大模型网站,在Web中运行清华对话大模型ChatGlm-6B-CSDN博客

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值