还在用自己的电脑做做事器?也out了!

真喷鼻香预警:作为一个程序员,必须理解用GPU云主机搭建AI大措辞模型这个方案,你就会创造多快好省的GPU云主机到底有多好用,恰好趁着五一假期,实现一个能与自己对话的模型吧,本文连前端界面代码都给你准备好了!

GPT问世以来,大型AI模型已成为得到人工智能运用程序的关键。
但是,这些巨大的模型须要弘大的打算资源和存储空间,因此搭建这些模型并对它们进行交互须要强大的打算能力,这常日须要利用云打算做事。
从云产品性能上来看,GPU云主机是最适宜的工具之一,对付业务方或者个人开拓者来讲,利用GPU云主机搭建AI大措辞模型有以下上风:

高性能打算:GPU云主机供应了高性能GPU处理器,加速模型的演习和推理;高性价比:灵巧资源管理、可扩展性、弹性伸缩等云打算上风,根据业务或个人演习的须要,快速调度打算资源,知足模型的演习和支配需求;开放性:云打算的开放性让用户更随意马虎进行资源的共享和协作,为AI模型的研究和运用供应了更广泛的互助机会;丰富的API和SDK:云打算厂商供应了丰富的API和SDK,使得用户能够轻松地接入云平台的各种做事和功能,进行定制化开拓和集成。

在本文中,我们将以chatglm-6b为例详细先容GPU云主机搭建AI大措辞模型的过程,并利用Flask构建前端界面与该模型进行对话。

AI开拓者福音  用GPT云主机搭建AI大年夜措辞模型真多快好省

全体流程也比较大略:配置GPU云主机 → 搭建Jupyterlab开拓环境 → 安装ChatGLM → 用Flask输出模型API

一、Start:配置GPU云主机

GPU 云主机(GPU Cloud Virtual Machine )是供应 GPU 算力的弹性打算做事,具有超强的并行打算能力,在深度学习、科学打算、图形图像处理、视频编解码等场景被广泛利用。
GPU驱动,供应大量的GPU内存和刁悍的打算性能,非常适宜运行深度学习运用程序。

相对付一张售价高达几万的实体卡,GPU云主机更划算——按时计费,一小时才十几元,可以随时根据自己的需求调配。

•本次选取的是P40卡: https://www.jdcloud.com/cn/calculator/calHost

•系统环境:Ubuntu 20.04 64位

二、搭建Jupyterlab开拓环境

下载Anaconda包须要在终端里实行以下命令:

mkdir anaconda # 创建文件夹cd anaconda # 进入文件夹wget https://repo.anaconda.com/archive/Anaconda3-2023.03-Linux-x86_64.sh # 下载安装包bash Anaconda3-2023.03-Linux-x86_64.sh # 安装

也可以用清华源,速率更快:https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/Anaconda3-2023.03-Linux-x86_64.sh

接下来进行环境变量设置

cd /root/anaconda3/binvim ~/.bashrc在.bashrc下添加以下内容:#Anacondaexport PATH="/root/anaconda3/bin:$PATH"然退却撤退出编辑source ~/.bashrcconda create -n jabari python=3.8 安装python3.8版本# 创建环境jupyter lab --generate-config# 天生配置文件Writing default config to: /root/.jupyter/jupyter_lab_config.py[root@lavm-ba6po1r9fh bin]# vim /root/.jupyter/jupyter_lab_config.py

# 编辑配置文件c.ServerApp.ip = '' # 设置访问的IP地址c.ServerApp.open_browser = False # 不自动打开浏览器c.ServerApp.port = 6888 #(自己可以自己设置端口,这里设置了6888)# ServerApp的端口号c.MappingKernelManager.root_dir = '/root/jupyter_run' # 设置Jupyter Notebook的根文件夹c.ServerApp.allow_remote_access = True # 许可远程访问c.ServerApp.password = '' # 不设置登录密码c.ServerApp.allow_origin='' # 许可任何来源的要求c.ServerApp.password_required = False # 不须要密码c.ServerApp.token = ''# 不设置验证token

jupyter lab --allow-root # 启动JupyterLab

之后,在本地浏览器输入"做事器ip:端口号"访问即可:

也可以安装汉化软件:

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple jupyterlab-language-pack-zh-CN

三、重点来了:开始安装ChatGLM措辞模型

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

模型特点:支持中文、60亿参数、丰富的语料库、完备开源

ChatGLM-6B 是一个开源的、支持中英双语问答的对话措辞模型,基于 General Language Model (GLM) 架构,具有 62 亿参数。
结合模型量化技能,用户可以在消费级的显卡上进行本地支配(INT4 量化级别下最低只需 6GB 显存)。
ChatGLM-6B 利用了和 ChatGLM 相同的技能,针对中文问答和对话进行了优化。
经由约 1T 标识符的中英双语演习,辅以监督微调、反馈自助、人类反馈强化学习等技能的加持,62 亿参数的 ChatGLM-6B 已经能天生相称符合人类偏好的回答。

先安装措辞依赖

pip install protobuf==3.20.0 transformers==4.27.1 icetk cpm_kernels

然后在jupyter运行代码

from transformers import AutoTokenizer, AutoModeltokenizer = AutoTokenizer.from_pretrained("THUDM/chatglm-6b", trust_remote_code=True)model = AutoModel.from_pretrained("THUDM/chatglm-6b", trust_remote_code=True).half().cuda()response, history = model.chat(tokenizer, "你好", history=[])print(response)response, history = model.chat(tokenizer, "晚上睡不着该当怎么办", history=history)print(response)

这里会直接从huggingface.co下载

终极下载完后,再次运行,提示

这里须要安装显卡驱动同时还要安装nvidia-cuda-toolkit

NVIDIA CUDA Toolkit 供应了一个开拓环境,用于创建高性能 GPU 加速运用程序。

apt install nvidia-cuda-toolkit

再次运行,已经ok了,涌现模型回答内容

这里在命令行输入nvidia-smi 也看下显卡类型:

四、用Flask输出模型API

app.py的代码如下:

from gevent import pywsgifrom flask import Flaskfrom flask_restful import Resource, Api, reqparsefrom transformers import AutoTokenizer, AutoModelfrom flask_cors import CORSapp = Flask(__name__)CORS(app, resources={r"/api/": {"origins": ""}})api = Api(app)tokenizer = AutoTokenizer.from_pretrained("THUDM/chatglm-6b", trust_remote_code=True)model = AutoModel.from_pretrained("THUDM/chatglm-6b", trust_remote_code=True).half().cuda()parser = reqparse.RequestParser()parser.add_argument('inputs', type=str, help='Inputs for chat')parser.add_argument('history', type=str, action='append', help='Chat history')class Chat(Resource): def post(self): args = parser.parse_args() inputs = args['inputs'] history = args['history'] or [] response, new_history = model.chat(tokenizer, inputs, history) return {'response': response, 'new_history': new_history}api.add_resource(Chat, '/api/chat')if __name__ == '__main__': server = pywsgi.WSGIServer(('0.0.0.0', 80), app) server.serve_forever()

末了在Terminal 里 实行python 目录地址/app.py

客户端,开拓者可以通过API来获取数据:

五、前端效果展示:你的专属GPT,聊出618省钱攻略!

你可以完备自定义UI效果,下图是前端老师用5分钟搞定的Demo——

前端代码:https://github.com/xqdoo00o/chatgpt-web