ChatGML-6B大模型Windows部署(可CPU运行 保姆级教程)

这张照片拍摄于去年春节前的大连,那天雪下得很大很安静,路灯发出柔和的黄色光芒,树枝上则挂满了类似雾凇的冰晶,一片平静祥和。

🚀 写在最前:这篇文章将学习如何运行ChatGML-6B大模型。
🚀:点个关注吧😀,让我们一起探索计算机的奥秘!

一、ChatGML-6B大模型介绍

ChatGML-6B 是一个大型语言模型,被训练来预测人类语言。它是基于 GPT 模型的一种改进版本,拥有 6.3 亿个参数,是当前最大规模的中文语言模型之一。ChatGML-6B 模型由清华大学 KEG 实验室智谱AI共同训练,拥有强大的语言理解和生成能力。

二、环境配置

①ChatGML-6B大模型的下载

下载网址:/THUDM/ChatGLM-6B.
在这里插入图片描述
点击Dwonload ZIP,下载这个模型,并解压。

②TDM-GCC安装

CPU部署ChatGLM-6B要涉及到一个kernel的编译问题。这样CPU部署的话就需要安装C/C++的编译环境。 这里推荐安装TDM-GCC,网址:/tdm-gcc/.

在这里插入图片描述
双击下载好的.exe文件,开始安装tdm-gcc。点击下面的create
在这里插入图片描述
点击next
在这里插入图片描述
选择你想安装的路径,点击next
在这里插入图片描述
首先必须勾选openMP,先把gcc打开,然后往下翻,勾选openMP,同样的还得勾选gdb32 (Stable Release: 10.2-tdm-1)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
选择好后,点击Install等待一会它的安装,安装完成后就会显示如下界面。
在这里插入图片描述
最后点击finish就行。
在这里插入图片描述
检查是否安装成功,win+r 输入cmd然后输入gcc --version,如显示为以下内容即表示安装成功,若没有显示,添加环境变量。
在这里插入图片描述
配置环境变量完成后,再次cmd中输入上述命令,直到显示上述内容则表示安装成功。
在这里插入图片描述

③Anaconda安装

对于人工智能大模型,每次运行都必须给其创建一个专属于它的自己的一个运行环境,使用Anaconda为ChatGML-6B创建属于它自己的运行环境。

Anaconda下载链接:Anaconda.请添加图片描述
直接点击下载即可!安装很无脑,基本直接下一步即可,推荐安装在C盘。以下是具体安装步骤。

🚀 1)双击下载好的.exe文件,会弹出如下窗口,点击next
在这里插入图片描述
🚀 2)点击 I agree,然后选择ALL User。
在这里插入图片描述
🚀 3)这里建议放C盘,因为我之前没放C盘,出现了一些奇怪的错误解决不了,不过我现在还是没放C盘,这个大家自行选择即可。
在这里插入图片描述
🚀 4)这里直接两个都勾选上,第一个是添加环境变量,建议勾上,不勾的话,后面得自己去path里配环境变量,第二个是默认勾上的,就让他勾上。
在这里插入图片描述
🚀 5)安装中,等待一会就好。
在这里插入图片描述

🚀 6)恭喜你,这样安装就完成了!!!completed successfully!!!
在这里插入图片描述

安装完成后,点击电脑的开始键,就可以看见我们安装的Anaconda
在这里插入图片描述
需要注意的是,安装后想将我们的大蟒蛇Anaconda卸载的话,千万别按着常规方法卸载,会导致卸载不干净,下次再安装Anaconda的时候就会安装失败,一定要去CSDN上搜索教程卸载。

④创建ChatGML-6B运行的虚拟环境

点击进入命令窗口
在这里插入图片描述
在命令窗口输入

conda create -n ChatGML-6B python=3.8

然后输入y,如下所示就是创建成功,(下图是我创建yolov5时候截的图片,由于当时创建ChatGML-6B运行环境的时候没有截图,所以就用了yolov5时候截的图片,只要和下图一样就成功了)
在这里插入图片描述
输入

conda env list

查看是否成功,若显示出刚刚创建的虚拟环境名称,则表示创建成功。

在这里插入图片描述
此时我们创建的虚拟环境里还什么都没有,还得安装运行ChatGML-6B代码的一下用到的一些库;ChatGML-6B的作者是已经给我们列好了安装哪些库的,他把这些需要的库都放在requirements.txt中,而这个requirements.txt就在我们刚下载的ChatGML-6B-main文件夹中。
在这里插入图片描述
输入以下命令,进入 ChatGLM-6B虚拟环境,在该环境中pip install requirements.txt

conda activate ChatGLM-6B

在这里插入图片描述
然后输入以下命令安装 requirements.txt

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple -r D:/PythonWorkspace/ChatGLM/ChatGLM-6B-main/requirements.txt

由于我已经下载过了,就并不会显示下载,在这里等待它自动下载完成就行
在这里插入图片描述

⑤Pycharm的安装

这个安装也没什么要注意的,就不写教程了,要是有困难可以留言也可以网上找安装教程,注意下载社区版本community版,该版本免费。
下载地址:/pycharm/download.

三、模型安装

进入网站:https://huggingface.co/THUDM/chatglm-6b-int4/tree/main
下载ChatGML-6B的模型,下图框住的全部下载下来
在这里插入图片描述
在之前下载的ChatGML-6B-main中新建model文件夹,然后将刚刚下载的文件全部放入model文件夹中。
在这里插入图片描述
至此,所有的准本工作就都做完了!!!

四、成果展示

右键,选择用Pycharm打开,进入后,所有都点×
在这里插入图片描述
将刚刚创建的环境加入
在这里插入图片描述
在这里插入图片描述

环境添加完成后等待一会,ChatGML-6B三种方式:

  • 命令行Demo:命令行模式(cli_demo.py
  • 网页版Demo :网页版(web_demo.py
  • API部署:API部署(api.py

在这里插入图片描述
这里使用命令行Demo进行测试,双击打开cli_demo.py文件,修改一下其中的代码,修改如下

tokenizer = AutoTokenizer.from_pretrained("model", trust_remote_code=True, revision="v1.1.0")
# model = AutoModel.from_pretrained("model", trust_remote_code=True).half().cuda()
model = AutoModel.from_pretrained("model", trust_remote_code=True).float()

在这里插入图片描述
然后直接运行这个程序,就可以进入,但是由于我用的cpu,内存又只有16G,开启Pycharm运行,Pycharm本身会占用很大的内存,直接使用命令行方式运行,操作如下 (想多留点内存给ChatGML-6B运行,然后我就去把该结束的进程给结束,一不小心把资源管理器的进程结束了,只能无奈重启😭,大家也可以结束掉一些不用的进程)
在这里插入图片描述
进入文件夹,在这里打开终端,在上方输入cmd就能打开。
请添加图片描述
进入后如下所示,一定要保证在ChatGML-6B-main文件夹下。
请添加图片描述
输入 conda activate ChatGLM-6B来激活虚拟运行环境,成功进入后命令行前方会多出(ChatGLM-6B),表示成功进入该虚拟环境。

conda activate ChatGLM-6B

请添加图片描述
接着输入python cli_demo.py来运行该代码。运行就成功了!!!!

python cli_demo.py

在这里插入图片描述
**输入一个你好测试,得到了回复!!!!运行成功!!!!**只不过由于是cpu运行,所以回复的会比较慢。
在这里插入图片描述
运行完一想,不对,我开着网络运行的,有没有可能模型并没有在我的电脑上跑,于是我就关闭了网络再试了一次,此时网络已经断开。
在这里插入图片描述
依然得到了回复,看来这个模型真的在我的电脑上跑着。
在这里插入图片描述

五、常见错误解决办法

①解决办法:pip install pyreadline3

在这里插入图片描述
②有其他错误提示,但不影响正常运行,暂时未解决。

在这里插入图片描述

到这里教程就结束了,希望能得到大佬的一个小小的点赞😘。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/818422.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

人工智能基础部分26-基于知识推理引擎KIE算法的原理介绍与实际应用

大家好,我是微学AI,今天给大家介绍一下人工智能基础部分26-基于知识推理引擎KIE算法的原理介绍与实际应用。知识推理引擎(Knowledge Inference Engine, KIE)是一种人工智能技术,其核心原理是基于规则和逻辑的方法来处理复杂的问题。它构建在业…

华为欧拉系统(openEuler-22.03)安装深信服EasyConnect软件(图文详解)

欧拉镜像下载安装 iso镜像官网下载地址 选择最小化安装,标准模式 换华为镜像源 更换华为镜像站,加速下载: sed -i "s#http://repo.openeuler.org#https://mirrors.huaweicloud.com/openeuler#g" /etc/yum.repos.d/openEuler.r…

MongoDB 初识

1.介绍 什么是Mong MongoDB是一种开源的文档型数据库管理系统,它使用类似于JSON的BSON格式(Binary JSON)来存储数据。与传统关系型数据库不同,MongoDB不使用表和行的结构,而是采用集合(Collection&#x…

Leetcode刷题之删除链表中等于给定值 val 的所有结点

Leetcode刷题之删除链表中等于给定值 val 的所有结点 一、题目描述二、题目解析 一、题目描述 Leetcode刷题之删除链表中等于给定值 val 的所有结点 二、题目解析 本题中我们需要将链表中等于val的值的节点删除,首先我想到的方法是通过暴力求解解决,…

递归、搜索与回溯算法:⼆叉树中的深搜

⼆叉树中的深搜 深度优先遍历(DFS,全称为 Depth First Traversal),是我们树或者图这样的数据结构中常⽤的 ⼀种遍历算法。这个算法会尽可能深的搜索树或者图的分⽀,直到⼀条路径上的所有节点都被遍历 完毕&#xff…

【Java】maven的生命周期和概念图

maven的生命周期: 在maven中存在三套"生命周期",每一套生命周期,相互独立,互不影响的,但是中同一套生命周期里,执行后面的命令会自动先执行前面的命令 CleanLifeCycle:清理的生命周期 clean defaultLifeCycle:默认的…

docker-compose yaml指定具体容器网桥ip网段subnet;docker创建即指定subnet;docker取消自启动

1、docker-compose yaml指定具体容器网桥ip网段subnet docker-compose 启动yaml有时可能的容器网段与宿主机的ip冲突导致宿主机上不了网,这时候可以更改yaml指定subnet 宿主机内网一般是192**,这时候容器可以指定172* version: 3.9 services:coredns:…

解锁生成式 AI 的力量:a16z 提供的 16 个企业指南

企业构建和采购生成式AI方面的16项改变 生成式 AI 领域趋势洞察:企业构建和采购生成式 AI 的方式正在发生重大转变,具体表现在:* 专注于可信度和安全性:75% 的企业将信任和安全性视为关键因素。* 优先考虑可扩展性和灵活性&#x…

go语言并发实战——日志收集系统(一) 项目前言

-goroutine- 简介 go并发编程的练手项目 项目背景 一般来说业务系统都有自己的日志,当系统出现问题时,我们一般需要通过日志信息来定位与解决问题,当系统机器较少时我们可以登录服务器来查看,但是当系统机器较多时,我们通过服务器来查看日志的成本就会变得很大,…

状态模式【行为模式C++】

1.概述 状态模式是一种行为设计模式, 让你能在一个对象的内部状态变化时改变其行为, 使其看上去就像改变了自身所属的类一样。 2.结构 State(抽象状态类):定义一个接口用来封装与上下文类的一个特定状态相关的行为,可以有一个或多…

element问题总结之el-table使用fixed固定列后滚动条滑动到底部或者最右侧的时候错位问题

el-table使用fixed固定列后滚动条滑动到底部或者最右侧的时候错位 效果图前言解决方案纵向滑动滚动条滑动到底部的错位解决横向滚动条滑动到最右侧的错位解决 效果图 前言 在使用el-table固定行的时候移动滚动条会发现移动到底部或者移动到最右侧的时候会出现表头和内容错位或…

Mac电脑安装蚁剑

1: github 下载源码和加载器:https://github.com/AntSwordProjectAntSwordProject GitHubAntSwordProject has 12 repositories available. Follow their code on GitHub.https://github.com/AntSwordProject 以该图为主页面:antSword为源码…

PHPStudy(小皮)切换PHP版本PDO拓展失效的问题

因为要看一个老项目,PHP版本在8.0以上会报错,只能切换到7.2,但又遇到了PDO没开启的问题。 PHPStudy上安装的PHP7.2是需要自己配置一下的,里面php.ini文件是空的,需要将php.ini-development改成php.ini,对于…

【每日刷题】Day15

【每日刷题】Day15 🥕个人主页:开敲🍉 🔥所属专栏:每日刷题🍍 目录 1. 141. 环形链表 - 力扣(LeetCode) 2. 142. 环形链表 II - 力扣(LeetCode) 3. 143. 重…

ROS 2边学边练(25)-- 将多个节点组合到一个进程

前言 在ROS 2中,将多个节点(Nodes)组合到一个单独的进程(Process)中通常指的是使用“Composable Nodes”的特性。这个特性允许你定义可复用的组件(Components),然后将这些组件加…

WPF-基础及进阶扩展合集(持续更新)

目录 一、基础 1、GridSplitter分割线 2、x:static访问资源文件 3、wpf触发器 4、添加xaml资源文件 5、Convert转换器 6、多路绑定与多路转换器 二、进阶扩展 1、HierarchicalDataTemplate 2、XmlDataProvider从外部文件获取源 3、TextBox在CellTemplate中的焦点问题…

系统边界图

系统边界图的定义: 系统边界图是系统工程和软件工程中的一种图形化工具,用于描述系统与外部世界之间的交互和界限。它展示了系统的组成部分以及这些组件如何与外部实体进行通信和交互。系统边界图通常包括系统内部的各个组件、外部实体以及它们之间的通信…

考研数学究竟有多难?基础差该如何复习?

考研数学的难度是相对的,它取决于考生的数学基础、备考时间、复习效率和解题技巧等多个因素。从历年的考试情况来看,考研数学确实具有一定的挑战性,主要体现在以下几个方面。 首先是知识覆盖面广,考研数学涵盖了高等数学、线性代…

集群伸缩简介

4.2.1.小结 Redis如何判断某个key应该在哪个实例? 将16384个插槽分配到不同的实例根据key的有效部分计算哈希值,对16384取余余数作为插槽,寻找插槽所在实例即可 如何将同一类数据固定的保存在同一个Redis实例? 这一类数据使用…

1042: 中缀表达式转换为后缀表达式

解法:直接给算法 创建一个栈和一个空的后缀表达式字符串。 遍历中缀表达式中的每个字符。 如果当前字符是操作数,直接将其添加到后缀表达式字符串中。 如果当前字符是操作符,需要将其与栈顶的操作符进行比较: 如果栈为空&#…