langchain-ChatGLM安装
项目地址:https://github.com/imClumsyPanda/langchain-ChatGLM
2023.5.30留言:尚未包含关于使用Vue前端的Node环境安装
Linux 环境安装
测试环境:
- Ubuntu 20.04 LTS (Linux 5.15)
- Intel Core i7-13700K
- NVIDIA GeForce RTX 4090
安装前准备
检查CPU处理器类型,在Linux终端中输入
uname -m
返回x86_64
为兼容x86架构的处理器(部分处理器或Linux版本可能返回amd64
,是一样的意思),非x86类型的处理器在下面下载文件时注意选择处理器的类型。
1. 安装nvidia cuda 11.8 (或者更高版本)
Nvidia CUDA Toolkit Archive:https://developer.nvidia.com/cuda-toolkit-archive
包含了所有版本的CUDA安装包,选择需要的版本进行下载
该网站访问较慢,但下载时会定向到CDN加速下载
以CUDA 11.8为例,访问https://developer.nvidia.com/cuda-11-8-0-download-archive
依次选择(以上文的测试环境为例):
- Operating System(操作系统):Linux
- Architecture(架构):x86_64
- Distribution(发行版):Ubuntu
- Version(版本 指发行版版本):20.04
- Installer Type(安装类型):一般选择deb(local)或runfile(local)
按照提示的代码完成安装
- deb(local)安装
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/cuda-ubuntu2004.pin
sudo mv cuda-ubuntu2004.pin /etc/apt/preferences.d/cuda-repository-pin-600
wget https://developer.download.nvidia.com/compute/cuda/11.8.0/local_installers/cuda-repo-ubuntu2004-11-8-local_11.8.0-520.61.05-1_amd64.deb
sudo dpkg -i cuda-repo-ubuntu2004-11-8-local_11.8.0-520.61.05-1_amd64.deb
sudo cp /var/cuda-repo-ubuntu2004-11-8-local/cuda-*-keyring.gpg /usr/share/keyrings/
sudo apt-get update
sudo apt-get -y install cuda
- runfile(local)安装
# 下载runfile版安装脚本(会自动定向到CDN加速下载)
wget https://developer.download.nvidia.com/compute/cuda/11.8.0/local_installers/cuda_11.8.0_520.61.05_linux.run
# 安装
sudo sh cuda_11.8.0_520.61.05_linux.run
# 测试环境解压大约30秒
# 脚本启动后根据脚本提示安装
runfile(local)安装过程中,wget获取到99%时可能会产生问题,若有图形用户界面,可以直接先下载完整文件再使用终端进入到下载目录安装。
2. 安装anaconda3
有图形用户界面可以从官网或镜像站下载安装包并安装,选择
Linux
下64-Bit(x86) Installer
直接使用终端安装
# 从清华镜像站获取下载
wget https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/Anaconda3-2023.03-1-Linux-x86_64.sh
bash Anaconda3-2023.03-1-Linux-x86_64.sh
# 回车键看完用户协议
# 输入yes同意用户协议
yes
# 选择安装地址 建议默认 直接回车
# 进入安装
3. 安装/激活conda环境
conda安装/激活环境
# 安装python3.9及关键依赖
conda create -n [name] python=3.9
conda activate [name]
-n [name]
其中name为环境名称(唯一)
-p [path]
其中path为安装的路径,不写这一项则默认为anaconda3软件目录下envs
目录中
conda环境卸载
conda env remove -n [name]
4. 获取langchain-ChatGLM项目
# 从git仓库中获取最新的langchain-ChatGLM项目代码
git clone https://github.com/imClumsyPanda/langchain-ChatGLM.git
# 或者拉取特定的版本(例如Tag为0.1.12的版本)
git clone https://github.com/imClumsyPanda/langchain-ChatGLM.git -b v0.1.12
连接较慢时可以多试几次(
ctrl+c
强制打断)
下载好后该目录下会产生名为langchain-ChatGLM
的目录,里面包含工程文件
5. 安装pip依赖
cd [path] # 这里的[path]指的是工程目录 即`cd langchain-ChatGLM`
pip install -r requirement.txt
下载慢,使用镜像源下载参考文章:https://www.idealx.cn/archives/pip-simple
6. 检查是否能正常调用cuda
检查pytorch是否能正常调用cuda,即是否能调用GPU资源
python #进入python解释器
>>> import torch
>>> torch.cuda.is_available() # 检查
# 如果返回True则可以正常使用cuda
>>> exit() # 退出python解释器
7. 首次启动项目(在线下载模型)
按需启动
# 启动WEBUI
python webui.py
如未将模型下载至本地,请执行前检查
$HOME/.cache/huggingface/
文件夹剩余空间,模型文件下载至本地需要 15 GB 存储空间。首次运行会下载必须的模型文件。
Linux 离线环境安装
需要联网安装好后实施。用于部署到无法联网的设备中使用。
1. 准备安装包
- CUDA(对应版本)
- Anaconda3(对应版本)
- langchain-ChatGLM项目源文件
- ChatGLM模型文件(完整和微调)
2. Conda环境打包/解包
打包环境的操作系统必须与目标的操作系统匹配,即在Windows系统上构建的环境不能重新部署到Linux或MacOS。
- 安装conda-pack
常见的使用场景是在一台机器上打包一个环境,分发给可能未安装conda/python的其他机器。
从PyPI安装
pip install conda-pack
或者从conda安装
conda install conda-pack
conda install -c conda-forge conda-pack
- 在源机器上对环境打包
# 根据需求三选一
# 1. 把虚拟环境 my_env 打包为 my_env.tar.gz
conda pack -n my_env
# 2. -o 参数指定打包路径和名称,把虚拟环境 my_env 打包为 out_name.tar.gz
conda pack -n my_env -o out_name.tar.gz
# 3. 把某个特定路径的虚拟环境打包为 my_env.tar.gz
conda pack -p /path/to/my_env
- 在目标机器上对环境解包并激活
# 创建目录 `my_env`,并将环境解压至该目录
mkdir -p my_env
tar -xzvf my_env.tar.gz -C my_env
# 使用python而不激活或修复前缀。
# 大多数 python 库可以正常工作,但需要处理前缀的部分将失败。
./my_env/bin/python
# 激活环境,同时这步操作会将路径 `my_env/bin` 添加到环境变量 path
source my_env/bin/activate
# 在环境中运行python
(my_env) $ python
# 从激活环境中清除前缀。
# 也可以在不激活环境的情况下运行此命令,只要机器上已经安装了某个版本的python。
(my_env) $ conda-unpack
# 此时,环境与在此路径直接使用 conda 安装的环境完全相同。
# 所有脚本都应该工作正常。
(my_env) $ ipython --version
# 停用环境以将其从环境变量 path 中删除
(my_env) $ source my_env/bin/deactivate
执行了以上关于激活环境的代码后,即可在conda环境列表中查找到
# 显示conda的环境列表
conda env list
# 或者 conda info --envs
# 或者缩写参数 conda info -e
# 激活环境
conda activate my_env
# 取消激活环境
conda deactivate my_env
3. 迁移
- (传输到无法联网的设备)使用物理介质传输,到达目标机器后解包
- (Linux)使用FTP/HTTP传输,例如scp命令,到达目标机器后解包
4. 修改相关配置并启动
进入文件目录后,修改关于本地模型的数据,并按需启动
# 启动WEBUI
python webui.py