离线环境安装langchain-ChatGLM
需要联网安装好后实施。用于部署到无法联网的设备中使用。
完整环境安装可以参考我的另一篇文章:https://www.idealx.cn/archives/langchain-ChatGLM-install
1. 准备安装包
- CUDA(对应版本)
Nvidia CUDA 全部版本:https://developer.nvidia.com/cuda-toolkit-archive
- Anaconda3(对应版本)
Anaconda 官网最新版本:https://www.anaconda.com/download#downloads
镜像站(以清华镜像为例):https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/
- 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
- ChatGLM模型文件(联网下载最新或本地准备)
# 需要安装 Git LFS
git clone https://huggingface.co/THUDM/chatglm-6b
注:在新版的langchain-ChatGLM项目加入了Vue构建的前端展示,并使用fastapi构建的后端,本篇文章暂未涉及Vue相关基础环境的安装。
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