ChatGLM4摆设教程
一、介绍GLM-4-9B 是智谱 AI 推出的最新一代预训练模子 GLM-4 系列中的开源版本。 在语义、数学、推理、代码和知识等多方面的数据集测评中, GLM-4-9B 及其人类偏好对齐的版本 GLM-4-9B-Chat 均表现出超越 Llama-3-8B 的卓越性能。除了能举行多轮对话,GLM-4-9B-Chat 还具备网页欣赏、代码执行、自界说工具调用(Function Call)和长文本推理(支持最大 128K 上下文)等高级功能。本代模子增长了多语言支持,支持包括日语,韩语,德语在内的 26 种语言。还推出了支持 1M 上下文长度(约 200 万中文字符)的 GLM-4-9B-Chat-1M模子和基于 GLM-4-9B 的多模态模子 GLM-4V-9B。GLM-4V-9B 具备 1120 * 1120 高分辨率下的中英双语多轮对话本领,在中英文综合本领、感知推理、文字识别、图表理解等多方面多模态评测中,GLM-4V-9B 表现出超越 GPT-4-turbo-2024-04-09、Gemini 1.0 Pro、Qwen-VL-Max 和 Claude 3 Opus 的卓越性能。
GLM-4 开源模子旨在与开源社区一起推动大模子技术发展,恳请开辟者和大家遵守 开源协议 ,勿将开源模子和代码及基于开源项目产生的衍生物用于任何可能给国家和社会带来危害的用途以及用于任何未颠末安全评估和备案的服务。现在,其项目团队未基于 GLM-4 开源模子开辟任何应用,包括网页端、安卓、苹果 iOS 及 Windows App 等应用。
只管模子在训练的各个阶段都努力确保数据的合规性和准确性,但由于 GLM-4-9B 模子规模较小,且模子受概率随机性因素影响,无法包管输出内容的准确。同时模子的输出容易被用户的输入误导。
更多详细信息见 Github 堆栈。
二、摆设过程
基础情况最低要求阐明:
情况名称版本信息1版本信息2Ubuntu22.04.4 LTSCudaV12.1.105Python3.10.83.12.4NVIDIA CorporationRTX 3060 *2RTX 3090 1. 更新基础软件包
查看系统版本信息
# 查看系统版本信息,包括ID(如ubuntu、centos等)、版本号、名称、版本号ID等
cat /etc/os-release
https://i-blog.csdnimg.cn/blog_migrate/8d275c92f4722cbefecb7eda25ebc4b3.png
设置 apt 国内源
# 更新软件包列表
apt-get update
这个命令用于更新当地软件包索引。它会从所有设置的源中检索最新的软件包列表信息,但不会安装或升级任何软件包。这是安装新软件包或举行软件包升级之前的保举步调,由于它确保了您获取的是最新版本的软件包。
# 安装 Vim 编辑器
apt-get install -y vim
这个命令用于安装 Vim 文本编辑器。-y 选项表示自动回答所有的提示为“是”,这样在安装过程中就不需要手动确认。Vim 是一个非常强大的文本编辑器,广泛用于编程和设置文件的编辑。
为了安全起见,先备份当前的 sources.list 文件之后,再举行修改:
# 备份现有的软件源列表
cp /etc/apt/sources.list /etc/apt/sources.list.bak
这个命令将当前的 sources.list 文件复制为一个名为 sources.list.bak 的备份文件。这是一个好习惯,由于编辑 sources.list 文件时可能会出错,导致无法安装或更新软件包。有了备份,假如出现题目,您可以轻松地恢复原始的文件。
# 编辑软件源列表文件
vim /etc/apt/sources.list
这个命令使用 Vim 编辑器打开 sources.list 文件,以便您可以编辑它。这个文件包罗了 APT(Advanced Package Tool)用于安装和更新软件包的软件源列表。通过编辑这个文件,您可以添加新的软件源、更改现有软件源的优先级或禁用某些软件源。
在 Vim 中,您可以使用方向键来移动光标,i 键进入插入模式(可以开始编辑文本),Esc 键退出插入模式,:wq 命令生存更改并退出 Vim,或 :q! 命令不生存更改并退出 Vim。
编辑 sources.list 文件时,请确保您了解自己在做什么,特殊是假如您正在添加新的软件源。错误的源可能会导致软件包安装失败或系统安全题目。假如您不确定,最好先搜刮并找到可靠的源信息,或者咨询有经验的 Linux 用户。
https://i-blog.csdnimg.cn/blog_migrate/1461749011dff7350e80adca2ca05f2c.png
使用 Vim 编辑器打开 sources.list 文件,复制以下代码替换 sources.list内里的全部代码,设置 apt 国内阿里源。
deb http://mirrors.aliyun.com/ubuntu/ jammy main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ jammy main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ jammy-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ jammy-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ jammy-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ jammy-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ jammy-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ jammy-backports main restricted universe multiverse
https://i-blog.csdnimg.cn/blog_migrate/e69fde5527c99967589466f57c754797.png
安装常用软件和工具
# 更新源列表,输入以下命令:
apt-get update
# 更新系统软件包,输入以下命令:
apt-get upgrade
# 安装常用软件和工具,输入以下命令:
apt-get -y install vim wget git git-lfs unzip lsof net-tools gcc cmake build-essential
出现以下页面,阐明国内apt源已替换成功,且能正常安装apt软件和工具
https://i-blog.csdnimg.cn/blog_migrate/ae034d89ec7f133c35e427c02deb9272.png
2. 安装 NVIDIA CUDA Toolkit 12.1
[*]下载 CUDA Keyring :
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/cuda-keyring_1.0-1_all.deb
这个命令用于下载 CUDA 的 GPG 密钥环,它用于验证 CUDA 软件包的签名。这是确保软件包安全性的一个紧张步调。
[*]安装 CUDA Keyring :
dpkg -i cuda-keyring_1.0-1_all.deb
使用 dpkg 安装下载的密钥环。这是须要的,以便 apt 能够验证从 NVIDIA 堆栈下载的软件包的签名。
https://i-blog.csdnimg.cn/blog_migrate/a8382be447943e29856f640ebedb820c.png
[*]删除旧的 apt 密钥(假如须要) :
apt-key del 7fa2af80
这一步可能不是必须的,除非您知道 7fa2af80 是与 CUDA 相关的旧密钥,并且您想从系统中删除它以避免肴杂。通常情况下,假如您只是安装 CUDA 并使用 NVIDIA 提供的最新密钥环,这一步可以跳过。
[*]更新 apt 包列表 :
apt-get update
更新 apt 的软件包列表,以便包括刚刚通过 cuda-keyring 添加的 NVIDIA 堆栈中的软件包。
[*]安装 CUDA Toolkit :
apt-get -y install cuda-toolkit-12-1
https://i-blog.csdnimg.cn/blog_migrate/ce58ba5dab499f6f824c7ca2ea160361.png
出现以下页面,阐明 NVIDIA CUDA Toolkit 12.1 安装成功
https://i-blog.csdnimg.cn/blog_migrate/66b92dadd6aed3b3f80c65b95f3f79c0.png
注意:这里可能有一个题目。NVIDIA 官方 Ubuntu 堆栈中可能不包罗直接名为 cuda-toolkit-12-1 的包。通常,您会安装一个名为 cuda 或 cuda-12-1 的元包,它会作为依赖项拉入 CUDA Toolkit 的所有组件。请检查 NVIDIA 的官方文档或堆栈,以确认正确的包名。
假如您正在寻找安装特定版本的 CUDA Toolkit,您可能需要安装雷同 cuda-12-1的包(假如可用),或者从 NVIDIA 的官方网站下载 CUDA Toolkit 的 .run 安装程序举行手动安装。
请确保您查看 NVIDIA 的官方文档或 Ubuntu 的 NVIDIA CUDA 堆栈以获取最准确的包名和安装指令。
https://i-blog.csdnimg.cn/blog_migrate/285abac8b4a4abf108100afd36f6fb6c.png
[*]出现以上情况,需要设置 NVIDIA CUDA Toolkit 12.1 系统情况变量
编辑 ~/.bashrc 文件
# 编辑 ~/.bashrc 文件
vim ~/.bashrc
插入以下情况变量
# 插入以下环境变量
export PATH=/usr/local/cuda/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH
https://i-blog.csdnimg.cn/blog_migrate/7ff61f5b583b2b52c8ea6e1ec0a5d80f.png
激活 ~/.bashrc 文件
# 激活 ~/.bashrc 文件
source ~/.bashrc
查看cuda系统情况变量
which nvcc
nvcc -V
https://i-blog.csdnimg.cn/blog_migrate/3f084cff918f1c8ad535d93c77328aa0.png
3. 安装 Miniconda
[*]下载 Miniconda 安装脚本 :
[*]使用 wget 命令从 Anaconda 的官方堆栈下载 Miniconda 的安装脚本。Miniconda 是一个更小的 Anaconda 发行版,包罗了 Anaconda 的焦点组件,用于安装和管理 Python 包。
[*]运行 Miniconda 安装脚本 :
[*]使用 bash 命令运行下载的 Miniconda 安装脚本。这将启动 Miniconda 的安装过程。
# 下载 Miniconda 安装脚本
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
# 运行 Miniconda 安装脚本
bash Miniconda3-latest-Linux-x86_64.sh
# 初次安装需要激活 base 环境
source ~/.bashrc
按下回车键(enter)
https://i-blog.csdnimg.cn/blog_migrate/afd6edc86521ba2882ac194b2ee75c84.png
输入yes
https://i-blog.csdnimg.cn/blog_migrate/47eabf5490b94edaf119340d0adb5820.png
输入yes
https://i-blog.csdnimg.cn/blog_migrate/7948c888284be8e2dc20fab40c572c00.png
安装成功如下图所示
https://i-blog.csdnimg.cn/blog_migrate/8dcdc64a836c6b646edb282a441ef142.png
pip设置清华源加快
# 编辑 /etc/pip.conf 文件
vim/etc/pip.conf
加入以下代码
index-url = https://pypi.tuna.tsinghua.edu.cn/simple
注意事项:
[*]请确保您的系统是 Linux x86_64 架构,由于下载的 Miniconda 版本是为该架构设计的。
[*]在运行安装脚本之前,您可能需要使用 chmod +x Miniconda3-latest-Linux-x86_64.sh 命令给予脚本执行权限。
[*]安装过程中,您将被提示是否同意许可协议,以及是否将 Miniconda 初始化。通常选择 "yes" 以完成安装和初始化。
[*]安装完成后,您可以使用 conda 命令来管理 Python 情况和包。
[*]假如链接无法访问或剖析失败,可能是由于网络题目或链接自己的题目。请检查网络连接,并确保链接是最新的和有效的。假如题目仍旧,请访问 Anaconda 的官方网站获取最新的下载链接。
4. 从 github 堆栈克隆项目
[*]克隆存储库:
[*]git clone https://github.com/THUDM/GLM-4
[*]这个命令使用 git clone 从指定的 GitHub 地点克隆 "GLM-4" 项目,默认情况下 Git 会克隆整个项目的所有提交汗青。
[*]切换目次:
[*]cd GLM-4
[*]这个命令使用 cd(change directory)命令切换当前工作目次到刚才克隆的 "GLM-4" 目次中。这意味着接下来执行的所有命令都是在该项目目次下执行。
# 克隆 ChatGLM4 项目
git clone https://github.com/THUDM/GLM-4 ChatGLM4
# 切换到克隆的项目目录中
cd ChatGLM4
https://i-blog.csdnimg.cn/blog_migrate/41a194060a378d44b10ca6f6bbfff6f2.png
出现以上页面即是克隆项目成功!
请注意,假如 git clone https://github.com/THUDM/GLM-4 这个链接不存在或者无效,git clone 命令将不会成功克隆项目,并且会报错。确保链接是有效的,并且您有足够的权限访问该存储库。
5. 创建捏造情况
# 创建一个名为 ChatGLM4 的新虚拟环境,并指定 Python 版本为 3.10.8
conda create --name ChatGLM4 python=3.10.8
https://i-blog.csdnimg.cn/blog_migrate/64ab41871e1eadebb2392b9db9220ccd.png
# 激活新创建的虚拟环境
conda activate ChatGLM4
https://i-blog.csdnimg.cn/blog_migrate/626dd8e06bf7ea1cc44a55d4815018a9.png
6. 安装模子依赖库
[*]切换到项目目次
# 切换到项目工作目录
cd /ChatGLM4
[*]激活 ChatGLM4 捏造情况
conda activate ChatGLM4
[*]安装 requirements.txt 依赖
# 在 ChatGLM3 环境中安装 requirements.txt 依赖
pip install -r requirements.txt
https://i-blog.csdnimg.cn/blog_migrate/900fd103e024019d1e5b99b4e9fc019a.png
依赖安装成功如下图所示:
https://i-blog.csdnimg.cn/blog_migrate/a578a717398de1d1a81755a93b59c683.png
7. 下载预训练模子
# 创建一个THUDM文件夹
mkdir -p /ChatGLM4/basic_demo/THUDM
# 递归复制 GLM-4 这个整体文件夹到数据盘位置(因为模型有点大,系盘无法存放)
cp -r /ChatGLM4 /root/sj-tmp/
# 切换到 GLM-4 项目的 basic_demo 目录
cd /root/sj-tmp/ChatGLM4/basic_demo
安装 modelscope 依赖包
pip install modelscope
https://i-blog.csdnimg.cn/blog_migrate/8d9e6c7f7fed71a324e767104c816a11.png
创建一个Python下载脚本
vim modelscope_download.py
插入以下下载代码
# Python 代码下载模型
from modelscope import snapshot_download
model_dir = snapshot_download('ZhipuAI/glm-4-9b-chat', cache_dir='./', revision='master')
执行 modelscope_download.py 文件举行模子下载
python modelscope_download.py
https://i-blog.csdnimg.cn/blog_migrate/a5fab9b213d089d4248e79e1d65e2a11.png
8. 运行 web_demo_gradio.py 文件
cd /root/sj-tmp/ChatGLM4/basic_demo/
python trans_web_demo.py
https://i-blog.csdnimg.cn/blog_migrate/b320b0cbb361d2515661af6024ef1d47.png
出现以上代码“ModuleNotFoundError: No module named 'peft'”报错,安装 peft 依赖包
# 安装 peft
pip install peft
https://i-blog.csdnimg.cn/blog_migrate/c2dd4110046b12d38bc90c69f0581989.png
https://i-blog.csdnimg.cn/blog_migrate/194a1d8f31830d81fbd77e9ebc0c6b6c.png
出现以上报错,需要修改模子路径
# 编辑 trans_web_demo.py 文件
vim trans_web_demo.py
https://i-blog.csdnimg.cn/blog_migrate/ce2d8a21af72aadbe885761b30af3dd1.png
替换为
MODEL_PATH = os.environ.get('MODEL_PATH', 'ZhipuAI/glm-4-9b')
https://i-blog.csdnimg.cn/blog_migrate/a9a831193257f8abb563fdd8a2d38301.png
出现以上结果,还需要继承修改 web_demo_gradio.py 文件的IP和端口,才能进入 gradio 页面
# 编辑 trans_web_demo.py 文件
vim trans_web_demo.py
https://i-blog.csdnimg.cn/blog_migrate/5487bedf64ee38e971c9f33ce0a654d5.png
替换为
demo.launch(server_name="0.0.0.0", server_port=8080, inbrowser=True, share=True)
替换阐明:server_name 为IP地点, server_port 为端口号,根据访问需求举行替换即可
https://i-blog.csdnimg.cn/blog_migrate/5c8e34ee34acc5f7bd3658d34f2d3b59.png
三、网页演示
出现以下 Gradio 页面,即是模子已搭建完成。
https://i-blog.csdnimg.cn/blog_migrate/c8a2137ceb318b200ff0f0c11e78db49.png
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页:
[1]