window 安装大模型 chatglm-6b

2024-04-28 12:04
文章标签 安装 模型 window 6b chatglm

本文主要是介绍window 安装大模型 chatglm-6b,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

你好,我是 shengjk1,多年大厂经验,努力构建 通俗易懂的、好玩的编程语言教程。 欢迎关注!你会有如下收益:

  1. 了解大厂经验
  2. 拥有和大厂相匹配的技术等

希望看什么,评论或者私信告诉我!

文章目录

  • 一、 前言
  • 二、准备工作
    • 2.1 电脑
    • 2.2 组件安装
    • 2.3 开始安装
      • 2.3.1下载官方代码,安装Python依赖的库
      • 2.3.2 下载INT4量化后的预训练结果文件
      • 2.3.3 Windows+CPU部署方案
  • 三、总结


一、 前言

有大模型以来一直想尝试通过本地安装大模型,主要的原因是GPT众所众知的原因没有办法通过 API 访问,而国内的所谓的开发平台一方面要么不兼容 openai 的 api 要么就是价格不够友好,要么两者兼有,另外的话,开发平台也有所谓的隐私问题。另外公司内部虽然有已经部署好的开源大模型,但相应的服务中的 Temperautre 或者 Top 都已经被固定了,用起来特别没意思。

所以想自己搞一套,喜欢自己说了算。

二、准备工作

2.1 电脑

在这里插入图片描述
这是我工作使用的电脑配置,16G内存,Intel® 集成显卡。这里要吐槽一下,程序员千万不要使用 window,随便装点什么东西就很麻烦,用不了 mac 就用 linux,我这是公司电脑,后悔没早点装 unbantu 系统

2.2 组件安装

VS studio 2022
在这里插入图片描述

cmake

TDM-GCC,注意,安装的时候直接选择全部安装就好。安装完在cmd中运行”gcc -v”测试是否成功即可( 我的电脑需要重启后才能执行 gcc -v )

2.3 开始安装

因为公司电脑性能不行,所以我选择了 ChatGLM-6B,另外ChatGLM-6B完整版本需要13GB显存做推理,但是INT4量化版本只需要6GB显存即可运行,这里选择 INT4量化版

2.3.1下载官方代码,安装Python依赖的库

首先,我们需要从GitHub上下载ChatGLM的requirements.txt来帮助我们安装依赖的库。大家只需要在GitHub上下载requirements.txt即可。下载地址:https://github.com/THUDM/ChatGLM-6B
在这里插入图片描述这个文件记录了ChatGLM-6B依赖的Python库及版本,大家点击右上角Code里面有Download ZIP,下载到本地解压之后就能获取这个文件。然后执行如下命令即可:

  pip install -r requirements.txt

注意,这是从cmd进入到requirements.txt文件所在的目录执行的结果,这部分属于Python基础,就不赘述了。

需要注意的是,ChatGLM依赖HuggingFace的transformers库,尽管官方说:

使用 pip 安装依赖:pip install -r requirements.txt,其中 transformers 库版本推荐为 4.27.1,但理论上不低于 4.23.1 即可。

但是实际上,必须是4.27.1及以上的版本才可以,更低版本的transformers会出现如下错误:

AttributeError: ‘Logger’ object has no attribute “‘warning_once’”

所以,一定要查看自己的transformers版本是否正确。

另外,ChatGLM-6B依赖torch,如果你有GPU,且高于6G内存,那么建议部署GPU版本,但是需要下载支持cuda的torch,而不是默认的CPU版本的torch。具体可参考 :
关于 AssertionError: Torch not compiled with CUDA enabled 问题

2.3.2 下载INT4量化后的预训练结果文件

在上述的依赖环境安装完毕之后,大家接下来就要下载预训练结果。

INT4量化的预训练文件下载地址:https://huggingface.co/THUDM/chatglm-6b-int4/tree/main,需要魔法,如果没有魔法,可去 modelscope 搜索合适的版本

需要注意的是,在GitHub上,官方提供了模型在清华云上的下载地址,但是那个只包含预训练结果文件,即bin文件,但实际上ChatGLM-6B的运行需要模型的配置文件,即config.json等,如下图所示:

因此建议大家全部从HuggingFace上下载所有文件到本地。上述文件全部下载之后保存到本地的一个目录下即可,比如:

D:\LLM

2.3.3 Windows+CPU部署方案

我的机器不支持CUDA,所以我们直接来看CPU方式

运行部署CPU版本的INT4量化的ChatGLM-6B模型

CPU版本量化模型的代码与GPU版本稍微有点差异,代码如下:

from transformers import AutoTokenizer, AutoModel
tokenizer = AutoTokenizer.from_pretrained("D:\LLM\chatglm-6b-int4", trust_remote_code=True, revision="")
model = AutoModel.from_pretrained("D:\LLM\chatglm-6b-int4",trust_remote_code=True, revision="").float()
model = model.eval()
response, history = model.chat(tokenizer, "你好", history=[])
print(response)

一般都会报错

在运行中遇到了如下错误提示:

No compiled kernel found.
Compiling kernels : C:\Users\在、xxx\.cache\huggingface\modules\transformers_modules\chatglm-6b-int4\quantization_kernels_parallel.c
Compiling gcc -O3 -fPIC -pthread -fopenmp -std=c99 C:\Users\xxx\.cache\huggingface\modules\transformers_modules\chatglm-6b-int4\quantization_kernels_parallel.c -shared -o C:\Users\xxx\.cache\huggingface\modules\transformers_modules\chatglm-6b-int4\quantization_kernels_parallel.so
Kernels compiled : C:\Users\xxx\.cache\huggingface\modules\transformers_modules\chatglm-6b-int4\quantization_kernels_parallel.so

CPU版本的ChatGLM-6B部署比GPU版本稍微麻烦一点,主要涉及到一个kernel的编译问题。

在安装之前,除了上面需要安装好requirements.txt中所有的Python依赖外,torch需要安装好正常的CPU版本即可。

安装这个主要是为了编译之前下载的文件中的quantization_kernels.c和quantization_kernels_parallel.c这两个文件。如果大家

那么就是这两个文件编译出问题了。那么就需要我们手动去编译这两个文件:

在C:\Users\xxx.cache\huggingface\modules\transformers_modules\chatglm-6b-int4\本地目录下进入cmd,运行如下两个编译命令:

gcc -fPIC -pthread -fopenmp -std=c99 quantization_kernels.c -shared -o quantization_kernels.so
gcc -fPIC -pthread -fopenmp -std=c99 quantization_kernels_parallel.c -shared -o quantization_kernels_parallel.so

如下图所示即为运行成功

然后就可以在C:\Users\xxx.cache\huggingface\modules\transformers_modules\chatglm-6b-int4\目录下看到下面两个新的文件:quantization_kernels_parallel.so和quantization_kernels.so。说明编译成功,后面我们手动载入即可。

在原来代码的基础上添加

model = model.quantize(bits=4, kernel_file="C:\Users\xxx\.cache\huggingface\modules\transformers_modules\chatglm-6b-int4\\quantization_kernels.so")

一行手动加载的内容。

接下来你就可以看到如下界面:
我这里把 quantization_kernels.so 放在了 D:\LLM\chatglm2-6b-int4 下面了

输出结果

你好👋!我是人工智能助手 ChatGLM2-6B,很高兴见到你,欢迎问我任何问题。

也就是CPU版本的ChatGLM-6B运行成功了!但很慢,所以可以考虑 CPP 加速!待后续输出!

三、总结

通过本文,读者可以了解到如何在个人电脑上部署ChatGLM-6B的INT4量化版本,同时作者也分享了他在安装过程中遇到的问题和解决方法,帮助读者顺利完成安装并运行大模型

这篇关于window 安装大模型 chatglm-6b的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/943214

相关文章

MySQL9.0默认路径安装下重置root密码

《MySQL9.0默认路径安装下重置root密码》本文主要介绍了MySQL9.0默认路径安装下重置root密码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们... 目录问题描述环境描述解决方法正常模式下修改密码报错原因问题描述mysqlChina编程采用默认安装路径,

Python使用国内镜像加速pip安装的方法讲解

《Python使用国内镜像加速pip安装的方法讲解》在Python开发中,pip是一个非常重要的工具,用于安装和管理Python的第三方库,然而,在国内使用pip安装依赖时,往往会因为网络问题而导致速... 目录一、pip 工具简介1. 什么是 pip?2. 什么是 -i 参数?二、国内镜像源的选择三、如何

0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeek R1模型的操作流程

《0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeekR1模型的操作流程》DeepSeekR1模型凭借其强大的自然语言处理能力,在未来具有广阔的应用前景,有望在多个领域发... 目录0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeek R1模型,3步搞定一个应

Python安装时常见报错以及解决方案

《Python安装时常见报错以及解决方案》:本文主要介绍在安装Python、配置环境变量、使用pip以及运行Python脚本时常见的错误及其解决方案,文中介绍的非常详细,需要的朋友可以参考下... 目录一、安装 python 时常见报错及解决方案(一)安装包下载失败(二)权限不足二、配置环境变量时常见报错及

Deepseek R1模型本地化部署+API接口调用详细教程(释放AI生产力)

《DeepseekR1模型本地化部署+API接口调用详细教程(释放AI生产力)》本文介绍了本地部署DeepSeekR1模型和通过API调用将其集成到VSCode中的过程,作者详细步骤展示了如何下载和... 目录前言一、deepseek R1模型与chatGPT o1系列模型对比二、本地部署步骤1.安装oll

Spring AI Alibaba接入大模型时的依赖问题小结

《SpringAIAlibaba接入大模型时的依赖问题小结》文章介绍了如何在pom.xml文件中配置SpringAIAlibaba依赖,并提供了一个示例pom.xml文件,同时,建议将Maven仓... 目录(一)pom.XML文件:(二)application.yml配置文件(一)pom.xml文件:首

MySQL8.2.0安装教程分享

《MySQL8.2.0安装教程分享》这篇文章详细介绍了如何在Windows系统上安装MySQL数据库软件,包括下载、安装、配置和设置环境变量的步骤... 目录mysql的安装图文1.python访问网址2javascript.点击3.进入Downloads向下滑动4.选择Community Server5.

CentOS系统Maven安装教程分享

《CentOS系统Maven安装教程分享》本文介绍了如何在CentOS系统中安装Maven,并提供了一个简单的实际应用案例,安装Maven需要先安装Java和设置环境变量,Maven可以自动管理项目的... 目录准备工作下载并安装Maven常见问题及解决方法实际应用案例总结Maven是一个流行的项目管理工具

如何在本地部署 DeepSeek Janus Pro 文生图大模型

《如何在本地部署DeepSeekJanusPro文生图大模型》DeepSeekJanusPro模型在本地成功部署,支持图片理解和文生图功能,通过Gradio界面进行交互,展示了其强大的多模态处... 目录什么是 Janus Pro1. 安装 conda2. 创建 python 虚拟环境3. 克隆 janus

本地私有化部署DeepSeek模型的详细教程

《本地私有化部署DeepSeek模型的详细教程》DeepSeek模型是一种强大的语言模型,本地私有化部署可以让用户在自己的环境中安全、高效地使用该模型,避免数据传输到外部带来的安全风险,同时也能根据自... 目录一、引言二、环境准备(一)硬件要求(二)软件要求(三)创建虚拟环境三、安装依赖库四、获取 Dee