如何在云服务器上搭建ChatGLM

news2024/11/16 8:53:29

摘录:ChatGPT重新点燃了AI,然后OpenAI却没有向我们开放ChatGPT,虽然有些人通过了一下手段注册了账号,但是不久就被OpenAI拉入了黑名单。3月份我国的百度也推出了和ChatGPT对标的文言一心,随后阿里也推出了自己的文本对话AI通义千问。这些都要花钱。如果你家里刚好有矿卡,也就是N卡,并且要求N卡的显存至少要6GB,那么你可以在本地电脑搭建类ChatGPT,也就是ChatGLM。都2023年了,我相信你的显存是够的。我电脑的显卡只有2GB,是不够的,但是我还是想要自己搭建一下来玩玩,于是我想到了可以租用云GPU。我知道的可以租用云GPU的提供商有国内的AutoDL,还有一个国外的Vultr。

我这里使用vultr作为演示,因为比较方便,但是价格好像要比国内的AutoDL要贵。我们也知道要用国内的服务器很蛮麻烦的,要实名制,要绑定微信,而使用vultr就很便利,直接注册,就能使用。

需要注意的是无论你是租用哪些供应商的GPU服务器,都要满足最低6GB显存的条件。

本次搭建的是清华大学开源的ChatGLM。源码地址。模型地址。

下面我通过vultr演示搭建过程。

环境:

  • 系统:Ubuntu 22.04 LTS
  • Python版本:高于python 3.7.1
  • 显存:高于6GB

注意:不推荐使用CentOS系统,我刚开始就是使用CentOS 7系统,会遇到很多坑,比如Python版本的问题,因为CentOS是停止更新维护了的,并且官方vultr也不推荐使用CentOS系统。我推荐使用已经安装Anaconda环境的Ubuntu 22.04系统镜像。

1、服务器租用

你也可以在Windows电脑或者Mac电脑中搭建,我这里选择Linux,是因为我电脑的配置太低了,无法搭建。因为官方要求最低显存6GB,如果你本地电脑达到这个要求,那么你不用租用GPU服务器了,直接在本地电脑上搭建就行,并且把模型也下载到你本地电脑上,需要注意的是由于模型比较大,所以可能要占用你本地电脑的大量空间,不过现在电脑的空间普遍都比较大,不像我电脑只有512GB的空间。

点击这里进行GPU服务器的租用,注意,我们租用的是GPU服务,不是CPU服务器,我们知道一般服务器都是只有CPU的,但是如果你要做机器学习那么CPU就显得很吃力,我们要搭建ChatGLM也是要很大的算力,需要GPU。

image-20230503115843533

然后选GPU的类型,我们可以看到当前有三种可以选择,我这里选择A100。

image-20230503120006165

然后是选择服务的位置,这里我选择New York。

image-20230503120121349

然后是选择镜像或系统,这里我们不要选择CentOS系统。我选择安装了Anaconda的Ubuntu 22.04版本的镜像。

image-20230503120255445

然后我们就可以选择显存的大小了,这里默认是选择第一个,也就是显存只有4GB,这是不够用的,我们选择第二个,也就是显存大小为8GB的服务器。

image-20230503120518498

为了节省开支,这里推荐大家把Auto Backups关掉,因为这里需要收费的,并且费用还不便宜,比如我看到的这里是要收36美元一个月,你可以换算成人民币看看多少钱。

image-20230503120812556

最后我们就可以点击Deploy Now了。

image-20230503120915850

我们可以看到价格还是挺贵的,大概每小时大概1.85¥。自己玩一下还是可以的,是值得的,如果你觉得贵,你也可以去AutoDL中租用,AutoDL相对来说有更多可选择的空间,我目前看到最低是0.78¥/h。

注意:需要稍等几分钟,因为安装系统需要时间,等安装完成之后就可以使用了,并且默认是开启了22号端口的,我们可以直接使用SSH工具进行连接,这里我使用的是SecureCRT,当然你也可以使用其它的工具比如免费的PuTTY。

2、开启BBR加速

如何开启BBR加速可以去看我的这篇文章,Linux开启内核BBR加速。

3、拉取ChatGLM源码和ChatGLM模型

点击这里跳转到源码处。

点击这里跳转到模型下载处。

我这里在下载之前创建了一个目录专门存放ChatGLM相关的内容。

cd /opt
mkdir ChatGLM
cd ChatGLM

进入ChatGLM目录后,然后就可以下载ChatGLM源码了。

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

然后我们还需要下载模型文件。并且模型比较大,所以在下载模型文件之前,我们还需要安装git-lfs。

apt install git-lfs

安装完全后,我们先创建一个目录专门存放模型文件,这里我在/opt/ChatGLM路径下创建一个目录。

mkdir model
cd model

然后我们就可以下下载模型数据了。

git lfs install
git clone https://huggingface.co/THUDM/chatglm-6b-int4

到这里,ChatGLM源码和对应的模型都克隆到服务器上了。

4、修改配置

在修改配置之前,我们还需要安装cuda。

apt install nvidia-cuda-toolkit

然后修改源码中的requirements.txt中的内容,在末尾添加下面三条语句。

chardet
streamlit
streamlit-chat

然后通过pip命令来安装相关的库。

pip install -r requirements.txt

然后,我们还要修改web_demo2.py文件。

修改下面两个地方,要使用绝对路径。

image-20230503223938033

把上面这两个地方的值改为自己模型的路径,一定要使用绝对路径。

tokenizer = AutoTokenizer.from_pretrained("你自己模型的路径", trust_remote_code=True)
model = AutoModel.from_pretrained("你自己模型的路径", trust_remote_code=True).half().cuda()

然后我们开放一个端口作为web的对外访问端口。

ufw allow 8080/tcp

我这里开放的是8080端口。

你在开放前也可以使用下面的命令查看一下当前已经开放的端口。

ufw status

5、启动项目

python3 -m streamlit run ./web_demo2.py --server.port 8080

然后访问ip:8080就能够看到效果了。

6、效果

18

可以使用中文,也可以使用英语进行交流。

如果喜欢本篇文章,记得转发,点赞,收藏。

7、源码和模型下载

点击这里下载源码

点击这里下载模型

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

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

相关文章

李雨浛:在数据、网络与民意之间——用计算社会科学方法探讨数字媒体与可持续未来 | 提升之路系列(八)...

导读 为了发挥清华大学多学科优势,搭建跨学科交叉融合平台,创新跨学科交叉培养模式,培养具有大数据思维和应用创新的“π”型人才,由清华大学研究生院、清华大学大数据研究中心及相关院系共同设计组织的“清华大学大数据能力提升项…

创建并使用shell脚本

1,查询 bash解释器 所在位置 创建前,我们需要先知道 bash 解释器所在的位置,以方便在头部写声明。一般位置是在 /bin/bash 但是有的是在 /usr/bin/bash ,所以需要查找一下。 文件位置查找命令:whereis xxx rootarmb…

Probabilistic and Geometric Depth: Detecting Objects in Perspective 论文学习

论文地址:Probabilistic and Geometric Depth: Detecting Objects in Perspective Github 地址:Probabilistic and Geometric Depth: Detecting Objects in Perspective 1. 解决了什么问题? 3D 目标检测在许多应用中发挥着重要作用&#xf…

分析的四个维度

我们都听过这句格言“数据是新石油”——一种宝贵、丰富的资源,只有提炼后才有用。然而,最引人注目但又令人望而生畏的比较之一是将船只送入海洋进行石油勘探。有些会失败,有些会有重大发现。 深海勘探和钻探取决于精确测绘和对海底的清晰认…

【计算机网络】图解内容分发网络 CDN

【计算机网络】图解内容分发网络 CDN 参考资料: 用了CDN就一定比不用更快吗? 什么是内容分发网络 高性能利器:CDN我建议你好好学一下! 文章目录 【计算机网络】图解内容分发网络 CDN一、CDN 概述1.1、什么是 CDN1.2、为什么需要 …

数字化转型导师坚鹏:数字化转型背景下的企业人力资源管理

企业数字化转型背景下的企业人力资源管理 课程背景: 很多企业存在以下问题: 不清楚企业数字化转型目前的发展阶段与重要应用? 不知道企业数字化转型给企业人力资源管理带来哪些机遇与挑战? 不知道企业数字化转型背景下如何…

SpringBoot 项目如何实现动态配置多数据源?

简介: dynamic-datasource-spring-boot-starter 是一个基于springboot的快速集成多数据源的启动器。 其支持 Jdk 1.7, SpringBoot 1.4.x 1.5.x 2.x.x。 特性: 支持 数据源分组 ,适用于多种场景 纯粹多库 读写分离 一主多从 混合模式。支持…

认识JavaBean

什么是JavaBean? JavaBean是指符合特定规范以及定义的Java类,通常用于封装数据,提供访问数据的方法和属性,并且可以被其他程序重用。它具有以下特点: 遵循特定编程规范:JavaBean必须要遵循JavaBean编程规范&#xff…

分层领域模型相关总结(DO/PO/VO/BO/DTO/Query等概念)

分层领域模型(DO/PO/VO/BO/DTO/Query等概念) 1. 为什么会有这么多O的概念? 各种分层概念的提出都是为了解耦,增加逻辑/代码的复用,便于后期维护/开发,提高团队开发效率;but,过多的细分也会使得开发过程相对…

Chrome 113 发布,默认启用 WebGPU

经过四周时间开发,Chrome 113 稳定版正式推出,新版本包括用于视频电话会议的 AV1 视频编码、WebGPU,以及其他增强功能。 默认启用 WebGPU WebGPU 是用于 Web 的新 API,它使用了现代的硬件功能,允许在 GPU 上进行渲染和…

Unable to import maven project: See logs for details错误的多种解决方法

文章目录 1. 复现错误2. 分析错误3. 解决问题3.1 解决方法一3.2 解决方法二 4. 补充说明 1. 复现错误 今天从gitlab上下载完项目后,无法启动项目,留意到右下角的Evnet Log,点开如下图所示: 即Unable to import maven project: See…

vue-element-admin快速搭建后台模板

快速搭建后台模板 环境以及会出现的问题安装目录结构基本配置路由配置 环境以及会出现的问题 node版本17.0.0 python版本2.7.10(node-sass依赖) 运行项目报错Error: error:0308010C:digital envelope routines::unsupport 请看这篇文章 https://blog.cs…

FM33A048B I2C

I2C 模块实现MCU 与外部I2C 接口器件之间的同步通信,硬件实现串并转换。支持I2C 的主机模式,不支持从机模式和多主机模式。 特点: ⚫ 只支持I2C 主机模式, 不支持从机模式和多主机模式 ⚫ 支持7 位或10 位从机地址 ⚫ 传输速度支持标准模式(1…

Java面试题总结 | Java面试题总结10- Feign和设计模式模块(持续更新)

文章目录 Feign项目中如何进行通信Feign原理简述 设计模式spring用到的设计模式项目的场景中运用了哪些设计模式写单例的时候需要注意什么工厂模式的理解设计模式了解么工厂设计模式单例设计模式代理设计模式策略模式**模板方法模式**观察者模式**适配器模式**观察者模式**适配…

TimeScaleDB食用手册

TimescaleDB食用手册 一 TimescaleDB介绍 TimescaleDB是一种用于处理时间序列数据的开源时序数据库,它是PostgreSQL的扩展。它可以处理大量的时间序列数据,并且支持SQL查询和连续聚合功能。 1.TimescaleDB的优点 分布式架构:TimescaleDB利…

类和对象上

文章目录 一、类的定义1、声明和定义全部放在类体中2、 类声明放在.h文件中,成员函数定义放在.cpp文件中 二、类的访问限定符三、类的作用域类及其实例化1、作用域2、实例化 四、类对象大小的计算1、计算对象(仅成员变量)2、计算方式&#xf…

iMazing2官方下载最新iPhone/iPad手机设备管理工具

iMazing 2最新版它可以完美地在 iOS 设备之间传输数据。 该软件专门设计用于为用户提供对 iPhone、iPod 和 iPad 的更多控制和管理能力。 它将所有这些高价值设备变成了外部存储,以便您可以交换各种数据,例如短信、通话记录、视频或照片。值得信赖的是&a…

学习k近邻算法(KNN)【自学且自用】

文章目录 1 概念2 原理及举例3 KNN中最常用的距离度量——欧式距离4 K值的选择5 knn和k-means的区别 参考的一些网页: https://zhuanlan.zhihu.com/p/143092725 1 概念 k近邻算法(k-nearest neighbour,k-NN)是一种基本分类与回归…

JavaEE-HTML常用标签了解(二)

目录 表格标签合并单元格 列表标签表单标签无语义标签HTML特殊字符 表格标签 table 标签: 表示整个表格tr: 表示表格的一行td: 表示一个单元格th: 表示表头单元格. 会居中加粗thead: 表格的头部区域(注意和 th 区分, 范围是比 th 要大的)tbody: 表格得到主体区域. <table …

CAS简介

文章目录 前言一、锁&#xff1f; CAS?二、juc--java.util.concurrent1.CAS思想的落地2 ABA问题出现3 可以解决的问题 总结 前言 CAS的全称是&#xff1a;比较并交换&#xff08;Compare And Swap&#xff09;。在CAS中&#xff0c;有这样三个值&#xff1a; V&#xff1a;要…