ChatGLM-6B-Int本地CPU部署

1.环境说明

开源地址:https://github.com/THUDM/ChatGLM-6B

目的:为了本地部署LLM模型,此次选用了ChatGLM-6B,但是由于设备的限制所以使用量化模型int4的版本也就是ChatGLM-6B-int4

模型下载地址:https://huggingface.co/THUDM/chatglm-6b-int4

代码下载地址用以上Github的即可

Gcc下载地址:https://jmeubank.github.io/tdm-gcc/

  • Gcc安装的时候一定要勾选opengcc

还需要 VS 依赖的.Net Framework 的版本下载地址:https://support.microsoft.com/zh-cn/topic/%E9%80%82%E7%94%A8%E4%BA%8E-windows-%E7%9A%84-microsoft-net-framework-4-8-%E8%84%B1%E6%9C%BA%E5%AE%89%E8%A3%85%E7%A8%8B%E5%BA%8F-9d23f658-3b97-68ab-d013-aa3c3e7495e0

rust的环境下载:https://static.rust-lang.org/rustup/dist/x86_64-pc-windows-msvc/rustup-init.exe

环境版本
pythonPython 3.12.4
Gcc10.3.0
.Net Framework4.8.2
cargocargo 1.79.0 (2024-06-03)

2.安装所需要的包

这些包是隐含的,可能高版本会有问题,低版本又不适配,所以这里需要更上步骤走。

Github代码Clone下来后,目录会有requirements.txt文件,在此目录下cmd

pip install -r requirements.txt
  • 然后删除新版本的transformers,安装指定版本
> pip uninstall transformers
> pip install transformers==4.34.0
  • 删除高版本的gradio,安装指定版本的gradio
> pip uninstall gradio
> pip install gradio==3.39.0
  • 安装streamlit,streamlit_chat
> pip install streamlit,streamlit_chat
  • 安装cpm_kernels
> pip install cpm_kernels

3.更改配置文件

这里需要更改的配置文件是模型文件下的tokenization_chatglm.py中的222行,需要对齐注释,然后移到init上方,具体原因是会报错,报错参考别人的文档改的:https://blog.csdn.net/Tink_bell/article/details/137942170

要是不改的话,就得换版本,且会遇到别的环境的问题,很麻烦。

		self.sp_tokenizer = SPTokenizer(vocab_file, num_image_tokens=num_image_tokens)
        super().__init__(
            do_lower_case=do_lower_case,
            remove_space=remove_space,
            padding_side=padding_side,
            bos_token=bos_token,
            eos_token=eos_token,
            end_token=end_token,
            mask_token=mask_token,
            gmask_token=gmask_token,
            pad_token=pad_token,
            unk_token=unk_token,
            num_image_tokens=num_image_tokens,
            **kwargs
        )

        self.do_lower_case = do_lower_case
        self.remove_space = remove_space
        self.vocab_file = vocab_file

        self.bos_token = bos_token
        self.eos_token = eos_token
        self.end_token = end_token
        self.mask_token = mask_token
        self.gmask_token = gmask_token

        #self.sp_tokenizer = SPTokenizer(vocab_file, num_image_tokens=num_image_tokens)

4.更改执行文件代码

这里更改的是web_demo2.py中的路径部分

@st.cache_resource
def get_model():
    tokenizer = AutoTokenizer.from_pretrained("下载下来的模型的路径", trust_remote_code=True)
    
    # 这里是GPU
    # model = AutoModel.from_pretrained("下载下来的模型的路径", trust_remote_code=True).half().cuda()
    
    # 这里是CPU
    model = AutoModel.from_pretrained("下载下来的模型的路径", trust_remote_code=True).float()
    model = model.eval()
    return tokenizer, model

5.执行程序且看程序

执行程序需要在web_demo2.py的目录下cmd执行

streamlit run web_demo2.py

会自动跳出窗口,此次CPU部署ChatGlm-6b-int模型结束

6.吐槽

CPU是真的慢啊!!!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值