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

有图形用户界面可以从官网或镜像站下载安装包并安装,选择Linux64-Bit(x86) Installer

https://www.anaconda.com/download#downloads

直接使用终端安装

# 从清华镜像站获取下载
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。

  1. 安装conda-pack

访问https://conda.github.io/conda-pack/index.html官网获得更多资料

常见的使用场景是在一台机器上打包一个环境,分发给可能未安装conda/python的其他机器。

从PyPI安装

pip install conda-pack

或者从conda安装

conda install conda-pack
conda install -c conda-forge conda-pack
  1. 在源机器上对环境打包
# 根据需求三选一
# 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
  1. 在目标机器上对环境解包并激活
# 创建目录 `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

参考资料