CPU服务器安装运行智谱大模型ChatGLM-6B

2024-03-13 11:28

本文主要是介绍CPU服务器安装运行智谱大模型ChatGLM-6B,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

CPU运行智谱大模型ChatGLM-6B

说明

我的服务器配置是16C32G,跑大模型最好内存要大一些才行,不然跑不起来。

下载

git clone https://github.com/THUDM/ChatGLM-6B.git

安装依赖包

pip install -r requirements.txt

下载模型文件

在huggingface上需要翻墙,有条件的可以直接下载,不行可以使用国内的镜像。需要一个个文件下载

https://huggingface.co/THUDM/chatglm2-6b

*** 国内推荐,国内推荐,国内推荐-1 ***
https://aifasthub.com/models/THUDM

*** 国内推荐-2 ***
https://hf-mirror.com/THUDM/chatglm2-6b

下载后,我把模型文件保存到:/opt/models/chatglm2-6b目录下。

修改代码把GPU改成CPU

打开ChatGLM-6B-main目录的cli_demo.py文件,修改源代码

import os
import platform
import signal
from transformers import AutoTokenizer, AutoModel
import readlineMODEL_PATH="/opt/models/chatglm2-6b"tokenizer = AutoTokenizer.from_pretrained(MODEL_PATH, trust_remote_code=True)
# 把这一行复制一下,并注释掉
#model = AutoModel.from_pretrained(MODEL_PATH, trust_remote_code=True).half().cuda()
# 把上面的一行改成以下一行
#model = AutoModel.from_pretrained(MODEL_PATH, trust_remote_code=True).half().cpu()
# 或则去掉cpu(),改成以下这样,也可以
model = AutoModel.from_pretrained(MODEL_PATH, trust_remote_code=True).half()
model = model.eval()

运行cli_demo.py

运行客户端代码后,会出现命令行的输入交付方式:

$ python cli_demo.py 欢迎使用 ChatGLM-6B 模型,输入内容即可进行对话,clear 清空对话历史,stop 终止程序用户:你是谁?ChatGLM-6B:我是一个名为 ChatGLM2-6B 的人工智能助手,是基于清华大学 KEG 实验室和智谱 AI 公司于 2023 年共同训练的语言模型开发的。我的任务是针对用户的问题和要求提供适当的答复和支持。

注意:此时可以观察以下CPU的使用状况。可以看到其中有一个CPU的使用率达到100%,其他的其实没有用起来。
另外,还有其他几个demo,比如web_demo.py等,还是同样的修改方式,由于我这里是登录到服务器上去运行大模型,所以暂时没有运行web_demo.py的前端代码。

待改进的问题

目前我的机器是16C32G(CPU)配置,虽然能够把ChatGLM-6B跑起来,而且能够正常的回答问题,但运行速度非常慢,几个字几个字的往外跳出来。
而跑其他的大模型,也是同样的效果,哪怕是最小的llama-chinese也很慢。这个后续需要想办法优化。

这篇关于CPU服务器安装运行智谱大模型ChatGLM-6B的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

Linux系统中卸载与安装JDK的详细教程

《Linux系统中卸载与安装JDK的详细教程》本文详细介绍了如何在Linux系统中通过Xshell和Xftp工具连接与传输文件,然后进行JDK的安装与卸载,安装步骤包括连接Linux、传输JDK安装包... 目录1、卸载1.1 linux删除自带的JDK1.2 Linux上卸载自己安装的JDK2、安装2.1

Linux卸载自带jdk并安装新jdk版本的图文教程

《Linux卸载自带jdk并安装新jdk版本的图文教程》在Linux系统中,有时需要卸载预装的OpenJDK并安装特定版本的JDK,例如JDK1.8,所以本文给大家详细介绍了Linux卸载自带jdk并... 目录Ⅰ、卸载自带jdkⅡ、安装新版jdkⅠ、卸载自带jdk1、输入命令查看旧jdkrpm -qa

Java的IO模型、Netty原理解析

《Java的IO模型、Netty原理解析》Java的I/O是以流的方式进行数据输入输出的,Java的类库涉及很多领域的IO内容:标准的输入输出,文件的操作、网络上的数据传输流、字符串流、对象流等,这篇... 目录1.什么是IO2.同步与异步、阻塞与非阻塞3.三种IO模型BIO(blocking I/O)NI

MySQL Workbench 安装教程(保姆级)

《MySQLWorkbench安装教程(保姆级)》MySQLWorkbench是一款强大的数据库设计和管理工具,本文主要介绍了MySQLWorkbench安装教程,文中通过图文介绍的非常详细,对大... 目录前言:详细步骤:一、检查安装的数据库版本二、在官网下载对应的mysql Workbench版本,要是

基于Flask框架添加多个AI模型的API并进行交互

《基于Flask框架添加多个AI模型的API并进行交互》:本文主要介绍如何基于Flask框架开发AI模型API管理系统,允许用户添加、删除不同AI模型的API密钥,感兴趣的可以了解下... 目录1. 概述2. 后端代码说明2.1 依赖库导入2.2 应用初始化2.3 API 存储字典2.4 路由函数2.5 应

Linux安装MySQL的教程

《Linux安装MySQL的教程》:本文主要介绍Linux安装MySQL的教程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录linux安装mysql1.Mysql官网2.我的存放路径3.解压mysql文件到当前目录4.重命名一下5.创建mysql用户组和用户并修

CentOS 7部署主域名服务器 DNS的方法

《CentOS7部署主域名服务器DNS的方法》文章详细介绍了在CentOS7上部署主域名服务器DNS的步骤,包括安装BIND服务、配置DNS服务、添加域名区域、创建区域文件、配置反向解析、检查配置... 目录1. 安装 BIND 服务和工具2.  配置 BIND 服务3 . 添加你的域名区域配置4.创建区域

pip无法安装osgeo失败的问题解决

《pip无法安装osgeo失败的问题解决》本文主要介绍了pip无法安装osgeo失败的问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一... 进入官方提供的扩展包下载网站寻找版本适配的whl文件注意:要选择cp(python版本)和你py

Windows Server服务器上配置FileZilla后,FTP连接不上?

《WindowsServer服务器上配置FileZilla后,FTP连接不上?》WindowsServer服务器上配置FileZilla后,FTP连接错误和操作超时的问题,应该如何解决?首先,通过... 目录在Windohttp://www.chinasem.cnws防火墙开启的情况下,遇到的错误如下:无法与

Java终止正在运行的线程的三种方法

《Java终止正在运行的线程的三种方法》停止一个线程意味着在任务处理完任务之前停掉正在做的操作,也就是放弃当前的操作,停止一个线程可以用Thread.stop()方法,但最好不要用它,本文给大家介绍了... 目录前言1. 停止不了的线程2. 判断线程是否停止状态3. 能停止的线程–异常法4. 在沉睡中停止5