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

相关文章

Prometheus+cpolar如何在手机上也能监控服务器状态?

《Prometheus+cpolar如何在手机上也能监控服务器状态?》本文强调了通过Cpolar这一内网穿透工具,轻松突破Prometheus仅限于局域网访问的限制,实现外网随时随地访问监控数据,教你... 目录前言1.安装prometheus2.安装cpolar实现随时随地开发3.配置公网地址4.保留固定

windows下安装Nginx全过程

《windows下安装Nginx全过程》文章介绍了HTTP和反向代理服务器的概念,包括正向代理和反向代理的区别,并详细描述了如何安装和配置Nginx作为反向代理服务器... 目录概念代理正向代理反向代理安装基本属性nginx.conf查询结构属性使用运行重启停止总结概念是一个高性能的HTTP和反向代理we

2025最新版Android Studio安装及组件配置教程(SDK、JDK、Gradle)

《2025最新版AndroidStudio安装及组件配置教程(SDK、JDK、Gradle)》:本文主要介绍2025最新版AndroidStudio安装及组件配置(SDK、JDK、Gradle... 目录原生 android 简介Android Studio必备组件一、Android Studio安装二、A

Linux服务器数据盘移除并重新挂载的全过程

《Linux服务器数据盘移除并重新挂载的全过程》:本文主要介绍在Linux服务器上移除并重新挂载数据盘的整个过程,分为三大步:卸载文件系统、分离磁盘和重新挂载,每一步都有详细的步骤和注意事项,确保... 目录引言第一步:卸载文件系统第二步:分离磁盘第三步:重新挂载引言在 linux 服务器上移除并重新挂p

前端Visual Studio Code安装配置教程之下载、汉化、常用组件及基本操作

《前端VisualStudioCode安装配置教程之下载、汉化、常用组件及基本操作》VisualStudioCode是微软推出的一个强大的代码编辑器,功能强大,操作简单便捷,还有着良好的用户界面,... 目录一、Visual Studio Code下载二、汉化三、常用组件1、Auto Rename Tag2

Apache服务器IP自动跳转域名的问题及解决方案

《Apache服务器IP自动跳转域名的问题及解决方案》本教程将详细介绍如何通过Apache虚拟主机配置实现这一功能,并解决常见问题,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,... 目录​​问题背景​​解决方案​​方法 1:修改 httpd-vhosts.conf(推荐)​​步骤

Java领域模型示例详解

《Java领域模型示例详解》本文介绍了Java领域模型(POJO/Entity/VO/DTO/BO)的定义、用途和区别,强调了它们在不同场景下的角色和使用场景,文章还通过一个流程示例展示了各模型如何协... 目录Java领域模型(POJO / Entity / VO/ DTO / BO)一、为什么需要领域模

深入理解Redis线程模型的原理及使用

《深入理解Redis线程模型的原理及使用》Redis的线程模型整体还是多线程的,只是后台执行指令的核心线程是单线程的,整个线程模型可以理解为还是以单线程为主,基于这种单线程为主的线程模型,不同客户端的... 目录1 Redis是单线程www.chinasem.cn还是多线程2 Redis如何保证指令原子性2.

win10安装及配置Gradle全过程

《win10安装及配置Gradle全过程》本文详细介绍了Gradle的下载、安装、环境变量配置以及如何修改本地仓库位置,通过这些步骤,用户可以成功安装并配置Gradle,以便进行项目构建... 目录一、Gradle下载1.1、Gradle下载地址1.2、Gradle下载步骤二、Gradle安装步骤2.1、安

Linux云服务器手动配置DNS的方法步骤

《Linux云服务器手动配置DNS的方法步骤》在Linux云服务器上手动配置DNS(域名系统)是确保服务器能够正常解析域名的重要步骤,以下是详细的配置方法,包括系统文件的修改和常见问题的解决方案,需要... 目录1. 为什么需要手动配置 DNS?2. 手动配置 DNS 的方法方法 1:修改 /etc/res