最近一段时间对大模型的部署特别感兴趣,正好datawahle出了个活动,选用趋动云进行云端部署ChatGLM3-6B
在这里,我将记录一些过程及问题,时间紧张,若有错误,提醒提醒我,谢谢!
1.创建项目
镜像选择PyTorch2.0.1-Conda3.9,预训练模型选择ChatGLM3-6B
配置后的最终图
不上传代码,进入界面,运行代码,资源配置选择B1.large
加载完成图
2.配置环境
选择JupterLab进入开发环境中
进入终端,设置镜像源,克隆项目
输入命令:
1.在大模型部署中,tmux的作用是提供一个终端复用的环境,使得可以在单个终端窗口中同时运行和管理多个终端会话。
tmux
2.在大模型部署中,使用apt-get update
命令可以更新操作系统的软件包列表,确保系统中的软件包是最新的版本。而apt-get install unzip
命令用于安装unzip工具,它可以用来解压缩zip格式的文件。在大模型部署中,这两个命令的作用可能是为了满足特定的软件依赖或者准备环境。升级apt可以确保系统中的软件包管理工具是最新的版本,以便后续安装和管理软件。而安装unzip则可能是因为在模型部署过程中需要解压缩某些文件或者数据集。
apt-get update && apt-get install unzip # 升级apt,安装unzip
3.设置镜像源,更新python版本
git config --global url."https://gitclone.com/".insteadOf https://
pip config set global.index-url https://mirrors.ustc.edu.cn/pypi/web/simple
python3 -m pip install --upgrade pip
4.克隆项目,并进入项目目录
git clone https://github.com/THUDM/ChatGLM3.git
cd ChatGLM3
修改requirements,删除requirements.txt文件中的torch >= 2.0,删除后及时保存。之后返回终端输入下面的命令:
输入的命令:
安装项目所需的所有依赖包,requirements.txt
文件是一个文本文件,其中列出了项目所需的所有依赖包及其版本号。
pip install -r requirements.txt
3.调试代码
修改web_demo.py文件中和web_demo2.py文件中的模型路径为:../../pretrain
web_demo.py
和web_demo2.py
文件是用于部署一个基于大模型的 Web 应用程序或服务的代码文件。这些代码文件通常会加载一个预训练的大模型,并将其用于提供某种功能。../../pretrain
的作用是指定模型文件的存储路径。
修改web_demo.py文件中:demo.queue().launch(share=False, server_name="0.0.0.0", server_port=7000)
通过调用demo.queue()
创建了一个任务队列,该任务队列将处理收到的请求。接着,launch()
方法被调用来启动一个 Web 服务器,并指定了服务器的相关参数。
share=False
表示不在多个进程之间共享任务队列,每个进程都会处理独立的请求。server_name="0.0.0.0"
表示服务器监听所有可用的网络接口,以便可以通过任意 IP 地址访问该服务器。server_port=7000
表示服务器监听的端口号为 7000,客户端可以通过该端口与服务器进行通信。
添加端口为7000
4.运行代码
使用gradio界面:
在终端输入下面命令:
python web_demo.py
的作用是启动一个Web服务器,使得部署的大模型可以通过特定的端口与客户端进行交互,并处理客户端发送的HTTP请求。
python web_demo.py
运行streamlit界面:
在终端输入下面的命令:
streamlit
是一个用于构建数据科学和机器学习应用程序的Python库,它提供了简单易用的API,可以帮助开发者快速搭建交互式的数据应用界面。
streamlit run web_demo2.py
端口8502
将端口添加:8502
5.总结
这一次的感受特别好,我成功的部署了一个chatGLM3-6B的网站,我可以直接在网站上面用它
这个是我通过趋动云部署出来的网站:Gradio(可以使用谷歌浏览器访问)
效果图
总体上分为配置环境,调试代码,运行代码这几个步骤,在配置和运行代码的过程中,一定需要安装要求操作,若操作不正确,一般来说是得不到successful等等结果的,需要重新的操作,保证配置和运行没有出现问题。这里用到了很多的cmd指令,关于cmd的指令(可以网上随便找教程,随便学习学习基础的操作)
过段时间把它部署到本地,然后网上再学一学微调,微调出一个有想法一点的助手