GPU云主机搭建教程
在当今人工智能迅速发展的时代,大型 AI 模型成为了关键工具,这些庞大的模型需要巨大的计算资源和存储空间,因此搭建并运行这些模型通常需要强大的计算能力,这可以通过云计算服务来实现,从性能上看,GPU 云主机是最适合的工具之一,对于业务方或个人开发者而言,使用 GPU 云主机搭建 AI 大语言模型具有以下优势:
1、高性能计算:GPU 云主机提供高性能的 GPU 处理器,能够加速模型的训练和推理过程。
2、高性价比:灵活的资源管理、可扩展性和弹性伸缩等云计算优势,使得用户可以根据需求快速调整计算资源,满足模型的训练和部署需求。
3、开放性:云计算的开放性让用户更容易进行资源共享和协作,为 AI 模型的研究和应用提供了更广泛的合作机会。
4、丰富的 API 和 SDK:云计算厂商提供了丰富的 API 和 SDK,使得用户能够轻松地接入云平台的各种服务和功能,进行定制化开发和集成。
本教程将以 chatglm6b 为例,详细介绍如何使用 GPU 云主机搭建 AI 大语言模型,并使用 Flask 构建前端界面与该模型进行对话,整个流程包括配置 GPU 云主机、搭建 JupyterLab 开发环境、安装 ChatGLM 以及用 Flask 输出模型 API。
一、配置 GPU 云主机
GPU 云主机(GPU Cloud Virtual Machine)是一种提供 GPU 算力的弹性计算服务,具有超强的并行计算能力,在深度学习、科学计算、图形图像处理、视频编解码等场景被广泛使用,GPU 驱动提供大量的 GPU 内存和强悍的计算性能,非常适合运行深度学习应用程序,相对于实体卡,一张售价一般都是几万左右,而 GPU 云主机费用门槛很低,按时计费,一小时才十几元,可以根据自己的需求调配。
本次选取的是 P40 卡:[京东云](https://www.jdcloud.com/cn/calculator/calHost)
系统环境:Ubuntu 20.04 64位
二、搭建 JupyterLab 开发环境
1、下载 Anaconda 包
在终端里执行以下命令:
mkdir anaconda # 创建文件夹 cd anaconda # 进入文件夹 wget https://repo.anaconda.com/archive/Anaconda32023.03Linuxx86_64.sh # 下载安装包 bash Anaconda32023.03Linuxx86_64.sh # 安装
也可以用清华源,速度更快:https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/Anaconda32023.03Linuxx86_64.sh
2、进行环境变量设置
cd /root/anaconda3/bin vim ~/.bashrc
在 .bashrc 下添加以下内容:
# Anaconda export PATH="/root/anaconda3/bin:$PATH"
3、创建 Conda 环境
conda create n jabari python=3.8 # 安装 python3.8 版本
4、生成配置文件
jupyter lab generateconfig
这将生成默认配置文件到/root/.jupyter/jupyter_lab_config.py
。
5、编辑配置文件
vim /root/.jupyter/jupyter_lab_config.py
修改以下内容:
c.ServerApp.ip = '*' # 设置访问的 IP 地址 c.ServerApp.open_browser = False # 不自动打开浏览器 c.ServerApp.port = 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
6、启动 JupyterLab
jupyter lab allowroot
之后,在本地浏览器输入 "服务器 IP:端口号" 访问即可,http://你的服务器IP:6888。
7、安装中文语言包
pip install i https://pypi.tuna.tsinghua.edu.cn/simple jupyterlablanguagepackzhCN
三、开始安装 ChatGLM 语言模型
ChatGLM6B 是一个开源的、支持中英双语问答的对话语言模型,基于 General Language Model (GLM) 架构,具有 62 亿参数,结合模型量化技术,用户可以在消费级的显卡上进行本地部署(INT4 量化级别下最低只需 6GB 显存),ChatGLM6B 使用了和 ChatGLM 相同的技术,针对中文问答和对话进行了优化,经过约 1T 标识符的中英双语训练,辅以监督微调、反馈自助、人类反馈强化学习等技术的加持,62 亿参数的 ChatGLM6B 已经能生成相当符合人类偏好的回答。
1、安装语言依赖
pip install protobuf==3.20.0 transformers==4.27.1 icetk cpm_kernels
2、在 JupyterLab 中运行代码
from transformers import AutoTokenizer, AutoModel tokenizer = AutoTokenizer.from_pretrained("THUDM/chatglm6b", trust_remote_code=True) model = AutoModel.from_pretrained("THUDM/chatglm6b", trust_remote_code=True).half().cuda() response, history = model.chat(tokenizer, "你好", history=[]) print(response) response, history = model.chat(tokenizer, "晚上睡不着应该怎么办", history=history) print(response)
四、用 Flask 输出模型 API
为了让用户能够通过网页与模型进行交互,我们可以使用 Flask 来构建一个简单的前端界面,以下是详细的步骤:
1、安装 Flask
pip install flask
2、创建 Flask 应用
创建一个名为app.py
的文件,并添加以下内容:
from flask import Flask, render_template, request, jsonify from transformers import AutoTokenizer, AutoModel app = Flask(__name__) tokenizer = AutoTokenizer.from_pretrained("THUDM/chatglm6b", trust_remote_code=True) model = AutoModel.from_pretrained("THUDM/chatglm6b", trust_remote_code=True).half().cuda() @app.route('/') def home(): return render_template('index.html') @app.route('/chat', methods=['POST']) def chat(): data = request.json query = data['query'] response, history = model.chat(tokenizer, query, history=[]) return jsonify({'response': response}) if __name__ == '__main__': app.run(host='0.0.0.0', port=5000)
3、创建前端页面
在项目目录下创建一个名为templates
的文件夹,并在其中创建一个名为index.html
的文件,添加以下内容:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF8"> <meta name="viewport" content="width=devicewidth, initialscale=1.0"> <title>ChatGLM6B Chat</title> </head> <body> <h1>Chat with ChatGLM6B</h1> <form id="chatForm"> <input type="text" id="query" placeholder="Enter your message here..."/> <button type="submit">Send</button> </form> <div id="response"></div> <script> document.getElementById('chatForm').addEventListener('submit', function(event) { event.preventDefault(); var query = document.getElementById('query').value; fetch('/chat', { method: 'POST', headers: { 'ContentType': 'application/json', }, body: JSON.stringify({ query: query }), }) .then(response => response.json()) .then(data => { document.getElementById('response').innerText = data.response; }) .catch(error => console.error('Error:', error)); }); </script> </body> </html>
4、运行 Flask 应用
python app.py
打开浏览器并访问 http://你的服务器IP:5000,即可看到一个简单的聊天界面,用户可以在其中输入消息并与 ChatGLM6B 模型进行交互。
通过以上步骤,我们已经成功在 GPU 云主机上搭建了 JupyterLab 开发环境,安装了 ChatGLM6B 语言模型,并使用 Flask 构建了一个简单的前端界面与该模型进行对话,整个过程不仅展示了如何利用云计算的强大计算能力来运行复杂的 AI 模型,还提供了一个实用的示例,帮助用户理解和掌握相关的技术和工具,希望这篇教程对你有所帮助!
小伙伴们,上文介绍了“gpu云主机搭建怎么使用”的内容,你了解清楚吗?希望对你有所帮助,任何问题可以给我留言,让我们下期再见吧。